Add derail state & speed to map

Add legend toggle for non-player trains.
v0.6.2 > v0.6.3
This commit is contained in:
Pyro Nicampt committed 2025-07-02 21:59:27 -05:00
1 parent 2f27c35f57
commit 58d9c476c9
4 files changed
+27 -7

No files matched your search

+1 -1
View File
@@ -27,7 +27,7 @@
</div> </div>
<div id="zoomLevelDisplay"></div> <div id="zoomLevelDisplay"></div>
<div id="cursorCoordDisplay"></div> <div id="cursorCoordDisplay"></div>
Map v0.6.4 alpha Map v0.6.5 alpha
<br> <br>
Updated for Game Build 99.5 Updated for Game Build 99.5
<br> <br>
+7 -3
View File
@@ -527,6 +527,7 @@ function redrawDynamics(){
break; break;
case 'car': case 'car':
if(!(MapData.layers.dynamic && MapData.layers.cars)) break; if(!(MapData.layers.dynamic && MapData.layers.cars)) break;
if(!MapData.layers.otherCars && !marker.isPlayer) break;
let scale = MapData.view.pixelRatio * MapData.view.scale; let scale = MapData.view.pixelRatio * MapData.view.scale;
let limitScaleRatio = (MapData.view.pixelRatio * Math.max(MapData.view.scale, 3)) / scale; let limitScaleRatio = (MapData.view.pixelRatio * Math.max(MapData.view.scale, 3)) / scale;
let width = marker.width * scale; let width = marker.width * scale;
@@ -544,14 +545,17 @@ function redrawDynamics(){
dynctx.moveTo(0.5 * width, 0); dynctx.moveTo(0.5 * width, 0);
dynctx.arc(0.5 * width, 0.5 * length, 15, -0.5*Math.PI, 1.5*Math.PI); dynctx.arc(0.5 * width, 0.5 * length, 15, -0.5*Math.PI, 1.5*Math.PI);
dynctx.resetTransform(); dynctx.resetTransform();
dynctx.strokeStyle = '#fff'; dynctx.strokeStyle = marker.derailed ? '#f83' : '#fff';
dynctx.lineWidth = 0.75 * scale * limitScaleRatio; dynctx.lineWidth = 0.75 * scale * limitScaleRatio;
dynctx.miterLimit = 1.5; dynctx.miterLimit = 1.5;
dynctx.stroke(); dynctx.stroke();
dynctx.fillStyle = marker.isLoco ? '#e79830aa' : '#559bd4aa'; if(marker.derailed)
dynctx.fillStyle = marker.isLoco ? '#db4f18aa' : '#9e54d3aa';
else
dynctx.fillStyle = marker.isLoco ? '#e79830aa' : '#559bd4aa';
dynctx.fill(); dynctx.fill();
dynctx.strokeStyle = '#000'; dynctx.strokeStyle = marker.derailed ? '#410' : '#000';
dynctx.lineWidth = 0.3 * scale * limitScaleRatio; dynctx.lineWidth = 0.3 * scale * limitScaleRatio;
dynctx.stroke(); dynctx.stroke();
if(!marker.tooltipHitzone){ if(!marker.tooltipHitzone){
+5 -2
View File
@@ -734,12 +734,15 @@ export function connectPlayerLocation(address, status){
y: car.y, y: car.y,
z: car.z z: car.z
}, },
length: car.length, length: car.length - 0.5,
width: 2.0, width: 2.0,
rotation: car.rotation, rotation: car.rotation,
guid: car.carGuid, guid: car.carGuid,
isLoco: car.isLoco, isLoco: car.isLoco,
tooltip: `<h1>${car.id}</h1>Type: ${car.name}\nLength: ${car.length.toFixed(1)}m`, tooltip: `<h1>${car.id}</h1>Type: ${car.name}\nLength: ${car.length.toFixed(1)}m${car.speed >= 0.1 ? `\nSpeed: ${(car.speed * 3.6).toFixed(1)} km/h` : '' }${car.derailed ? '\nDerailed!' : ''}`,
derailed: car.derailed,
isPlayer: car.isPlayer,
isActive: car.isActive,
}); });
} }
dynamicMarkers.push(playerMarker); dynamicMarkers.push(playerMarker);
+14 -1
View File
@@ -259,7 +259,7 @@ let settingEntries = [
} }
}, },
{ {
label: 'Cars', label: 'Train Cars',
id: 'toggle_cars', id: 'toggle_cars',
saveState: true, saveState: true,
state: true, state: true,
@@ -267,6 +267,19 @@ let settingEntries = [
MapData.layers.cars = state; MapData.layers.cars = state;
MapData.view.dynDirty = true; MapData.view.dynDirty = true;
}, },
children:[
{
label: 'Non-Player Trains',
tooltip: 'Other trains with active locomotives',
id: 'toggle_otherCars',
saveState: true,
state: true,
func: state =>{
MapData.layers.otherCars = state;
MapData.view.dynDirty = true;
},
}
]
}, },
] ]
}, },