Remove TrackSource.BEZIER and create TrackShape enum
This commit is contained in:
parent
f52800c81d
commit
1f806005aa
@ -42,7 +42,7 @@ const ObjectRendererQueue = [
|
|||||||
{
|
{
|
||||||
'name': 'isolations-ids',
|
'name': 'isolations-ids',
|
||||||
'category': ['tracks', 'switches'],
|
'category': ['tracks', 'switches'],
|
||||||
'trackSources': [TrackSource.STANDARD, TrackSource.BEZIER],
|
'trackSources': [TrackSource.STANDARD],
|
||||||
'renderer': IsolationIdRenderer,
|
'renderer': IsolationIdRenderer,
|
||||||
'cond': (layers) => layers['isolations-ids']
|
'cond': (layers) => layers['isolations-ids']
|
||||||
},
|
},
|
||||||
|
|||||||
@ -141,13 +141,14 @@ function getTrackColor(object, trackColorMode, gradientDef) {
|
|||||||
case "type":
|
case "type":
|
||||||
switch (object.source) {
|
switch (object.source) {
|
||||||
case TrackSource.STANDARD:
|
case TrackSource.STANDARD:
|
||||||
|
if (object.type === 'BezierTrack') {
|
||||||
|
return modeDef.options['bezier-track'][0];
|
||||||
|
}
|
||||||
return modeDef.options['standard-track'][0];
|
return modeDef.options['standard-track'][0];
|
||||||
case TrackSource.SWITCH:
|
case TrackSource.SWITCH:
|
||||||
return modeDef.options['point-track'][0];
|
return modeDef.options['point-track'][0];
|
||||||
case TrackSource.ROUTE:
|
case TrackSource.ROUTE:
|
||||||
return modeDef.options['route-track'][0];
|
return modeDef.options['route-track'][0];
|
||||||
case TrackSource.BEZIER:
|
|
||||||
return modeDef.options['bezier-track'][0];
|
|
||||||
default:
|
default:
|
||||||
return modeDef.options[modeDef.optionDefault][0];
|
return modeDef.options[modeDef.optionDefault][0];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { ElectrificationStatus } from "../../../model/electrification-status";
|
import { ElectrificationStatus } from "../../../model/electrification-status";
|
||||||
import {TrackSource} from "../../../model/tracks/track";
|
import {TrackShape, TrackSource} from "../../../model/tracks/track";
|
||||||
|
|
||||||
const TrackHoverInfoConsts = {
|
const TrackHoverInfoConsts = {
|
||||||
electrification: {
|
electrification: {
|
||||||
@ -11,8 +11,12 @@ const TrackHoverInfoConsts = {
|
|||||||
source: {
|
source: {
|
||||||
[TrackSource.STANDARD]: 'Standard track',
|
[TrackSource.STANDARD]: 'Standard track',
|
||||||
[TrackSource.SWITCH]: 'Switch track',
|
[TrackSource.SWITCH]: 'Switch track',
|
||||||
[TrackSource.BEZIER]: 'Bezier track',
|
|
||||||
[TrackSource.ROUTE]: 'Route track',
|
[TrackSource.ROUTE]: 'Route track',
|
||||||
|
},
|
||||||
|
shape: {
|
||||||
|
[TrackShape.STRAIGHT]: 'Straight',
|
||||||
|
[TrackShape.ARC]: 'Circle arc',
|
||||||
|
[TrackShape.BEZIER]: 'Bézier curve',
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -21,6 +21,7 @@ export default function TrackHoverInfoPopup(props) {
|
|||||||
<InfoPopupItem value={track['electrificationStatus']} label="Electrification" options={{translationConstKey: 'electrification'}} />
|
<InfoPopupItem value={track['electrificationStatus']} label="Electrification" options={{translationConstKey: 'electrification'}} />
|
||||||
<InfoPopupItem value={track['source']} label="Type" options={{translationConstKey: 'source'}} />
|
<InfoPopupItem value={track['source']} label="Type" options={{translationConstKey: 'source'}} />
|
||||||
<InfoPopupSwitchItems track={track} />
|
<InfoPopupSwitchItems track={track} />
|
||||||
|
<InfoPopupItem value={track['shape']} label="Shape" options={{translationConstKey: 'shape'}} />
|
||||||
<InfoPopupShapeItems track={track} />
|
<InfoPopupShapeItems track={track} />
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -36,8 +37,8 @@ function InfoPopupSwitchItems(props) {
|
|||||||
if (!track.switch) return null;
|
if (!track.switch) return null;
|
||||||
|
|
||||||
return <>
|
return <>
|
||||||
<InfoPopupItem value={track.switch.id_switch} label="Switch ID" />
|
<InfoPopupItem value={track.createSwitchTrack.id_switch} label="Switch ID" />
|
||||||
<InfoPopupItem value={track.switch.bare_model} label="Switch model" />
|
<InfoPopupItem value={track.createSwitchTrack.bare_model} label="Switch model" />
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -152,7 +152,7 @@ const Constants = {
|
|||||||
options: {
|
options: {
|
||||||
'standard-track': ['#00a', 'Standard track'],
|
'standard-track': ['#00a', 'Standard track'],
|
||||||
'point-track': ['#0a0', 'Switch track'],
|
'point-track': ['#0a0', 'Switch track'],
|
||||||
'bezier-track': ['#aa8', 'Bezier track'],
|
'bezier-track': ['#aa8', 'Bézier track'],
|
||||||
'route-track': ['#a6d', 'Route track'],
|
'route-track': ['#a6d', 'Route track'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -68,7 +68,7 @@ export default class Route extends SceneryObject {
|
|||||||
trackLength *= (trackRadius / radius);
|
trackLength *= (trackRadius / radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
return StandardTrack.route(
|
return StandardTrack.createRouteTrack(
|
||||||
trackIds[index],
|
trackIds[index],
|
||||||
startPoint,
|
startPoint,
|
||||||
rotDeg,
|
rotDeg,
|
||||||
|
|||||||
@ -153,7 +153,7 @@ export default class Switch extends SceneryObject {
|
|||||||
const connections = this._createTrackConnections(switchDef, trackDef, ids);
|
const connections = this._createTrackConnections(switchDef, trackDef, ids);
|
||||||
const { startPos, rotationDeg } = CurveHelper.transformStart(this.pos, this.rot, trackDef.pos, trackDef.rot);
|
const { startPos, rotationDeg } = CurveHelper.transformStart(this.pos, this.rot, trackDef.pos, trackDef.rot);
|
||||||
|
|
||||||
const track = StandardTrack.switch(
|
const track = StandardTrack.createSwitchTrack(
|
||||||
trackId,
|
trackId,
|
||||||
startPos,
|
startPos,
|
||||||
rotationDeg,
|
rotationDeg,
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import Track, {TrackSource} from "./track";
|
import Track, {TrackShape, TrackSource} from "./track";
|
||||||
import Vector3 from "../vector3";
|
import Vector3 from "../vector3";
|
||||||
import TrackConnection, {TrackConnectionEnd} from "../track-connection";
|
import TrackConnection, {TrackConnectionEnd} from "../track-connection";
|
||||||
|
|
||||||
@ -20,7 +20,9 @@ export default class BezierTrack extends Track
|
|||||||
Vector3.zero(), // rotation
|
Vector3.zero(), // rotation
|
||||||
length,
|
length,
|
||||||
0, // radius
|
0, // radius
|
||||||
connections, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed, TrackSource.BEZIER,
|
connections, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed,
|
||||||
|
TrackSource.STANDARD,
|
||||||
|
TrackShape.BEZIER,
|
||||||
);
|
);
|
||||||
|
|
||||||
Object.assign(this.points, {
|
Object.assign(this.points, {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import AngleHelper from "../../helpers/angleHelper";
|
import AngleHelper from "../../helpers/angleHelper";
|
||||||
import Track, {TrackSource} from "./track";
|
import Track, {TrackShape, TrackSource} from "./track";
|
||||||
import Vector3 from "../vector3";
|
import Vector3 from "../vector3";
|
||||||
import TrackConnection, {TrackConnectionEnd} from "../track-connection";
|
import TrackConnection, {TrackConnectionEnd} from "../track-connection";
|
||||||
import {ElectrificationStatus} from "../electrification-status";
|
import {ElectrificationStatus} from "../electrification-status";
|
||||||
@ -14,7 +14,8 @@ export default class StandardTrack extends Track {
|
|||||||
};
|
};
|
||||||
|
|
||||||
constructor(id, start, rot, len, r, connections, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed, source) {
|
constructor(id, start, rot, len, r, connections, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed, source) {
|
||||||
super(id, start, rot, len, r, connections, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed, source);
|
const shape = r === 0 ? TrackShape.STRAIGHT : TrackShape.ARC;
|
||||||
|
super(id, start, rot, len, r, connections, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed, source, shape);
|
||||||
this._calcPoints();
|
this._calcPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +81,7 @@ export default class StandardTrack extends Track {
|
|||||||
super.applyObject(scenery);
|
super.applyObject(scenery);
|
||||||
}
|
}
|
||||||
|
|
||||||
static route(id, start, rot, len, r, connections, electrified, route) {
|
static createRouteTrack(id, start, rot, len, r, connections, electrified, route) {
|
||||||
const track = new StandardTrack(
|
const track = new StandardTrack(
|
||||||
id, start, rot, len, r,
|
id, start, rot, len, r,
|
||||||
connections,
|
connections,
|
||||||
@ -98,7 +99,7 @@ export default class StandardTrack extends Track {
|
|||||||
return track;
|
return track;
|
||||||
}
|
}
|
||||||
|
|
||||||
static switch(id, start, rot, len, r, connections, start_slope, end_slope, object) {
|
static createSwitchTrack(id, start, rot, len, r, connections, start_slope, end_slope, object) {
|
||||||
const track = new StandardTrack(
|
const track = new StandardTrack(
|
||||||
id, start, rot, len, r,
|
id, start, rot, len, r,
|
||||||
connections,
|
connections,
|
||||||
|
|||||||
@ -4,11 +4,16 @@ import {TrackConnectionEnd} from "../track-connection";
|
|||||||
|
|
||||||
export const TrackSource = {
|
export const TrackSource = {
|
||||||
STANDARD: Symbol("TrackSource.STANDARD"),
|
STANDARD: Symbol("TrackSource.STANDARD"),
|
||||||
BEZIER: Symbol("TrackSource.BEZIER"),
|
|
||||||
SWITCH: Symbol("TrackSource.SWITCH"),
|
SWITCH: Symbol("TrackSource.SWITCH"),
|
||||||
ROUTE: Symbol("TrackSource.ROUTE"),
|
ROUTE: Symbol("TrackSource.ROUTE"),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const TrackShape = {
|
||||||
|
STRAIGHT: Symbol("TrackShape.STRAIGHT"),
|
||||||
|
ARC: Symbol("TrackShape.ARC"),
|
||||||
|
BEZIER: Symbol("TrackShape.BEZIER"),
|
||||||
|
};
|
||||||
|
|
||||||
export default class Track extends SceneryObject {
|
export default class Track extends SceneryObject {
|
||||||
len;
|
len;
|
||||||
r;
|
r;
|
||||||
@ -27,8 +32,9 @@ export default class Track extends SceneryObject {
|
|||||||
electrificationStatus = ElectrificationStatus.NOT_CHECKED;
|
electrificationStatus = ElectrificationStatus.NOT_CHECKED;
|
||||||
hasNEVP = false;
|
hasNEVP = false;
|
||||||
source;
|
source;
|
||||||
|
shape;
|
||||||
|
|
||||||
constructor(id, pos, rot, len, r, connections, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed, source) {
|
constructor(id, pos, rot, len, r, connections, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed, source, shape) {
|
||||||
super(id, pos, rot);
|
super(id, pos, rot);
|
||||||
Object.assign(this, {
|
Object.assign(this, {
|
||||||
len, r,
|
len, r,
|
||||||
@ -39,6 +45,7 @@ export default class Track extends SceneryObject {
|
|||||||
prefab_name,
|
prefab_name,
|
||||||
maxspeed, derailspeed,
|
maxspeed, derailspeed,
|
||||||
source,
|
source,
|
||||||
|
shape,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user