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