From e755e524d3bd7993fff1fc8a854156ec56b3a231 Mon Sep 17 00:00:00 2001 From: Pyro Nicampt <81565698+PyroNicampt@users.noreply.github.com> Date: Fri, 27 Dec 2024 02:08:12 -0600 Subject: [PATCH] Extract yard data from bezier name --- index.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/index.js b/index.js index 35c7ccb..1646dab 100644 --- a/index.js +++ b/index.js @@ -221,6 +221,23 @@ function drawTracks(bezierData){ }else{ 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