Extract yard data from bezier name

This commit is contained in:
Pyro Nicampt committed 2024-12-27 02:13:21 -06:00
1 parent e116db4520
commit e755e524d3
1 file changed
+17
+17
View File
@@ -221,6 +221,23 @@ function drawTracks(bezierData){
}else{ }else{
trackNameCounting[bezierData.name]++; trackNameCounting[bezierData.name]++;
} }
let yardData = /\[(#)\]|\[(Y)\]_\[(.*?)\]_\[((.*?)-(.*?)-(.*?))\]/.exec(bezierData.name);
if(yardData){
if(yardData[1]){ // track is [#], thus in yard limits, but not a specific designated yard.
bezierData.isYard = true;
}else if(yardData[2]){ // track is [Y], and is a specific yard.
bezierData.isYard = true;
bezierData.yardStation = yardData[3]; // Which station the track belongs to
bezierData.yardDesignation = yardData[4]; // Full yard designation, used on signs
bezierData.yardName = yardData[5]; // A yard, B yard, C yard, etc.
bezierData.yardSidingNumber = yardData[6]; // Which siding within the yard
bezierData.yardUsage = yardData[7]; // Outbound? Parking? Inbound? Loading? That's this.
}
}else if(/Turntable Track/.test(bezierData.name)){
bezierData.isTurntable = true;
}else if(/\[track (diverging|through)\]/.test(bezierData.name)){
bezierData.isPoint = true;
}
for(let i=0; i+1<bezierData.points.length; i++){ for(let i=0; i+1<bezierData.points.length; i++){
const bezStart = bezierData.points[i][0]; const bezStart = bezierData.points[i][0];
const bezHandle1 = bezierData.points[i][2]; const bezHandle1 = bezierData.points[i][2];