Extract Switch._createTrackConnections method
# Conflicts: # src/model/switch.js
This commit is contained in:
parent
e1d1540f9e
commit
aea4e53760
@ -28,8 +28,10 @@ export default class Switch extends SceneryObject {
|
|||||||
Object.assign(this, {
|
Object.assign(this, {
|
||||||
model,
|
model,
|
||||||
data,
|
data,
|
||||||
id_switch, id_isolation,
|
id_switch,
|
||||||
maxspeed, derailspeed,
|
id_isolation,
|
||||||
|
maxspeed,
|
||||||
|
derailspeed,
|
||||||
track_prefab_name
|
track_prefab_name
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -64,7 +66,7 @@ export default class Switch extends SceneryObject {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let def = DefinedSwitches[this.bare_model] || null;
|
const def = DefinedSwitches[this.bare_model] || null;
|
||||||
|
|
||||||
if (!def) {
|
if (!def) {
|
||||||
SceneryParserLog.warn('switchUndefinedModel', `Switch ${this.id} has an undefined model "${this.bare_model}"`);
|
SceneryParserLog.warn('switchUndefinedModel', `Switch ${this.id} has an undefined model "${this.bare_model}"`);
|
||||||
@ -105,25 +107,16 @@ export default class Switch extends SceneryObject {
|
|||||||
return ids;
|
return ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
_createSwitchTrackFromDef(scenery, switchDef, trackDef, ids) {
|
_createTrackConnections(switchDef, trackDef, ids) {
|
||||||
const rotRad = AngleHelper.rotationDegToRad(this.rot);
|
|
||||||
if (trackDef.dataIndex >= ids.length) {
|
|
||||||
SceneryParserLog.warn(
|
|
||||||
'switchMissingTrackId',
|
|
||||||
`Switch ${this.id} with model ${this.bare_model} is missing an id for the track at index ${trackDef.dataIndex}`,
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
const [trackId, prevId, nextId] = ids[trackDef.dataIndex];
|
|
||||||
|
|
||||||
const connections = [];
|
const connections = [];
|
||||||
|
const [_, prevId, nextId] = ids[trackDef.dataIndex];
|
||||||
trackDef.connections.forEach((connection) => {
|
trackDef.connections.forEach((connection) => {
|
||||||
if (connection.type === SwitchTrackConnectionType.INTERNAL) {
|
if (connection.type === SwitchTrackConnectionType.INTERNAL) {
|
||||||
const otherTrackDef = switchDef.tracks[connection.internalId];
|
const otherTrackDef = switchDef.tracks[connection.internalId];
|
||||||
if (!otherTrackDef) {
|
if (!otherTrackDef) {
|
||||||
SceneryParserLog.warn(
|
SceneryParserLog.warn(
|
||||||
'switchMissingTrackId',
|
'switchMissingTrackId',
|
||||||
`Switch prefab for model with model ${this.bare_model} of track ${this.id} does not have the internal track ${connection.internalId}`,
|
`Switch ${this.id} with model ${this.bare_model} does not have the internal track ${connection.internalId}`,
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -145,6 +138,20 @@ export default class Switch extends SceneryObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
return connections;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createSwitchTrackFromDef(scenery, switchDef, trackDef, ids) {
|
||||||
|
const rotRad = AngleHelper.rotationDegToRad(this.rot);
|
||||||
|
if (trackDef.dataIndex >= ids.length) {
|
||||||
|
SceneryParserLog.warn(
|
||||||
|
'switchMissingTrackId',
|
||||||
|
`Switch ${this.id} with model ${this.bare_model} is missing an id for the track at index ${trackDef.dataIndex}`,
|
||||||
|
);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const trackId = ids[trackDef.dataIndex][0];
|
||||||
|
const connections = this._createTrackConnections(switchDef, trackDef, ids);
|
||||||
|
|
||||||
const localEndPos = CurveHelper
|
const localEndPos = CurveHelper
|
||||||
.calculateCurveEndStandard(trackDef.radius, trackDef.length)
|
.calculateCurveEndStandard(trackDef.radius, trackDef.length)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user