Track max speed tweaks

*In the "Max speed" track coloring mode, tracks with a maximum speed or derail speed of 0 are now displayed in red
*Fixed an issue where max_speed and derailspeed of Track objects could sometimes be NaN
This commit is contained in:
izawartka 2025-06-18 21:44:57 +02:00
parent ba0440862a
commit c29208b217
5 changed files with 10 additions and 7 deletions

View File

@ -60,7 +60,7 @@ const ObjectRendererQueue = [
'renderer': TrackObjectRenderer, 'renderer': TrackObjectRenderer,
'cond': (layers) => layers['track-objects'], 'cond': (layers) => layers['track-objects'],
'pointerEvents': true 'pointerEvents': true
}, }
] ]
export default ObjectRendererQueue; export default ObjectRendererQueue;

View File

@ -84,6 +84,9 @@ function getTrackColor(object, trackColorMode) {
case "slope": case "slope":
return `url(#track-slope-${object.id})`; return `url(#track-slope-${object.id})`;
case "max-speed": case "max-speed":
if(!object.maxspeed || !object.derailspeed) {
return "#f22";
}
return `rgb(128, ${Math.min(255, Math.max(0, object.maxspeed * Constants.map.trackMaxSpeedScale))}, 128)`; return `rgb(128, ${Math.min(255, Math.max(0, object.maxspeed * Constants.map.trackMaxSpeedScale))}, 128)`;
} }
} }

View File

@ -40,8 +40,8 @@ export default class BezierTrack extends Track
...Track.slopesFromText(values[18]), // start_slope, end_slope ...Track.slopesFromText(values[18]), // start_slope, end_slope
values[21], // id_isolation values[21], // id_isolation
values[23], // prefab_name values[23], // prefab_name
parseFloat(values[24]), // maxspeed parseFloat(values[24]) || 0, // maxspeed
parseFloat(values[25]) // derailspeed parseFloat(values[25]) || 0 // derailspeed
); );
return track; return track;

View File

@ -30,8 +30,8 @@ export default class StandardTrack extends Track
...Track.slopesFromText(values[14]), // start_slope, end_slope ...Track.slopesFromText(values[14]), // start_slope, end_slope
values[17], // id_isolation values[17], // id_isolation
values[19], // prefab_name values[19], // prefab_name
parseFloat(values[20]), // maxspeed parseFloat(values[20]) || 0, // maxspeed
parseFloat(values[21]) // derailspeed parseFloat(values[21]) || 0 // derailspeed
); );
return track; return track;

View File

@ -44,8 +44,8 @@ export default class Switch extends SceneryObject {
values[9], // data values[9], // data
values[10], // id_isolation values[10], // id_isolation
values[11], // id_switch values[11], // id_switch
parseFloat(values[13]), // maxspeed parseFloat(values[13]) || 0, // maxspeed
parseFloat(values[14]), // derailspeed parseFloat(values[14]) || 0, // derailspeed
values[15] // track_prefab_name values[15] // track_prefab_name
); );