summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Crossroads/init_code.lua53
-rw-r--r--Crossroads/nodes/(1083,19,3028).lua2
-rw-r--r--Crossroads/nodes/(1219,9,1549).lua2
-rw-r--r--Crossroads/nodes/(1232,9,1547).lua2
-rw-r--r--Crossroads/nodes/(1702,12,914).lua3
-rw-r--r--Crossroads/nodes/(1709,17,914).lua3
-rw-r--r--Crossroads/nodes/(1755,27,943).lua2
-rw-r--r--Crossroads/nodes/(1767,27,946).lua2
-rw-r--r--Crossroads/nodes/(1773,5,994).lua2
-rw-r--r--Crossroads/nodes/(1795,5,1000).lua2
-rw-r--r--Crossroads/nodes/(1890,6,946).lua37
-rw-r--r--durt/init_code.lua2
-rw-r--r--durt/nodes/(-131,2,-2018).lua2
-rw-r--r--durt/nodes/(-149,8,-2208).lua1
-rw-r--r--durt/nodes/(-151,8,-2197).lua1
-rw-r--r--durt/nodes/(-168,7,-2052).lua1
-rw-r--r--durt/nodes/(-170,7,-2041).lua1
-rw-r--r--durt/nodes/(-1728,10,-1823).lua6
-rw-r--r--durt/nodes/(-1924,13,-1692).lua1
-rw-r--r--durt/nodes/(-2011,21,822).lua1
-rw-r--r--durt/nodes/(-2084,21,851).lua9
-rw-r--r--durt/nodes/(-21,8,-2319).lua1
-rw-r--r--durt/nodes/(-33,8,-2323).lua1
-rw-r--r--durt/nodes/(-3525,8,-2281).lua3
-rw-r--r--durt/nodes/(-3530,8,-2267).lua6
-rw-r--r--durt/nodes/(-3544,8,-2277).lua1
-rw-r--r--durt/nodes/(-3588,8,-2277).lua1
-rw-r--r--durt/nodes/(-3596,8,-2281).lua1
-rw-r--r--durt/nodes/(-716,3,1894).lua1
-rw-r--r--durt/nodes/(-736,3,1857).lua1
-rw-r--r--durt/nodes/(-743,3,1888).lua1
-rw-r--r--durt/nodes/(-759,3,1861).lua6
-rw-r--r--durt/nodes/(-799,3,1863).lua1
-rw-r--r--durt/nodes/(140,8,-2054).lua1
-rw-r--r--durt/nodes/(148,8,-2046).lua1
-rw-r--r--durt/nodes/(260,2,-2054).lua1
-rw-r--r--durt/nodes/(272,2,-2046).lua1
-rw-r--r--durt/nodes/(364,-3,-2026).lua1
-rw-r--r--durt/nodes/(376,-3,-2018).lua1
-rw-r--r--durt/nodes/(502,-3,-2026).lua1
-rw-r--r--durt/nodes/(514,-3,-2018).lua1
-rw-r--r--durt/nodes/(597,-3,-1963).lua1
-rw-r--r--durt/nodes/(607,-3,-1957).lua1
-rw-r--r--durt/nodes/(687,-3,-1961).lua1
-rw-r--r--durt/nodes/(697,-3,-1959).lua1
-rw-r--r--durt/nodes/(74,8,-2126).lua1
-rw-r--r--durt/nodes/(74,8,-2298).lua1
-rw-r--r--durt/nodes/(771,6,-1938).lua1
-rw-r--r--durt/nodes/(78,8,-2137).lua1
-rw-r--r--durt/nodes/(78,8,-2310).lua1
-rw-r--r--durt/nodes/(781,6,-1930).lua1
-rw-r--r--il_timetable/nodes/(-4248,20,-3107).lua2
-rw-r--r--il_timetable/nodes/(1734,26,2921).lua2
-rw-r--r--il_timetable/nodes/(241,13,-2039).lua3
-rw-r--r--nlvcross/init_code.lua1
-rw-r--r--nlvcross/nodes/(-144,8,-1980).lua5
-rw-r--r--nlvcross/nodes/(-2411,19,-1503).lua1
-rw-r--r--nlvcross/nodes/(-2442,19,-1525).lua1
-rw-r--r--nlvcross/nodes/(-2460,19,-1525).lua5
-rw-r--r--nlvcross/nodes/(-2481,19,-1522).lua1
-rw-r--r--nlvcross/nodes/(-362,19,-326).lua1
-rw-r--r--nlvcross/nodes/(-367,19,-325).lua1
-rw-r--r--nlvcross/nodes/(-88,2,-1984).lua6
-rw-r--r--nlvcross/nodes/(205,8,-2052).lua4
-rw-r--r--nlvcross/nodes/(255,2,-2054).lua1
-rw-r--r--subway/init_code.lua1
-rw-r--r--subway/nodes/(-107,16,-472).lua2
-rw-r--r--subway/nodes/(-1415,19,98).lua2
-rw-r--r--subway/nodes/(-1422,19,85).lua2
-rw-r--r--subway/nodes/(-1759,10,-1823).lua1
-rw-r--r--subway/nodes/(-254,16,-474).lua1
-rw-r--r--subway/nodes/(158,0,675).lua3
-rw-r--r--subway/nodes/(29,16,-470).lua1
-rw-r--r--subway/nodes/(799,8,-103).lua2
74 files changed, 185 insertions, 41 deletions
diff --git a/Crossroads/init_code.lua b/Crossroads/init_code.lua
index aa4e66d..185eef7 100644
--- a/Crossroads/init_code.lua
+++ b/Crossroads/init_code.lua
@@ -7,6 +7,9 @@ III) ATL/CRT Bronze Line
-- I) Common Functions
if S.trains == nil then S.trains = {} end
+if S.corrratio == nil then S.corrratio = 1 end
+if S.corrratio > 1 then S.corrratio = 1 end
+if S.corrratio <= 0 then S.corrratio = 1 end
-- F.dst - Get summer time
function F.dst()
@@ -32,19 +35,24 @@ next = Next stop
function F.stnbasic(stn, side, optime, reverse, acc, out, reventry, predepart, postdepart, next,track)
if event.train then
if atc_arrow then
+ local t_start = os.clock()
local cmdstr=""
+ local corr = S.corrratio
+ local t_sched = ((optime or 15)+1)-- commented out due to trouble *corr
if out~=nil then atc_set_text_outside(out) end
- if stn==nil then atc_set_text_inside("Unknown Station")
- else atc_set_text_inside(F.stnlist[stn]) end
+ local intext = "Unknown Station"
+ if stn and F.stnlist[stn] then intext = F.stnlist[stn] end
+ --intext = intext .. "\nCorrection: " .. S.corrratio
+ atc_set_text_inside(intext)
cmdstr="BBWO"..(side or "R")
if predepart~=nil then predepart() end
S.trains[atc_id] = "P "..stn.." "..(track or "x")
- cmdstr=cmdstr.."D"..(optime or 15)
- cmdstr=cmdstr.."OCD2"
+ cmdstr=cmdstr.."D"..math.floor((optime or 15))-- comment out due to trouble *S.corrratio)
+ cmdstr=cmdstr.."OCD1"
if reverse then cmdstr=cmdstr.."R" end
cmdstr=cmdstr.."S"..(acc or "M")
atc_send(cmdstr)
- interrupt((optime or 15)+2)
+ interrupt(t_sched,{sched=t_sched,start=t_start,corr=corr})
else
if reventry==nil then F.error("wrong_direction")
else
@@ -54,8 +62,18 @@ function F.stnbasic(stn, side, optime, reverse, acc, out, reventry, predepart, p
end
if event.int then
if atc_id ~= nil then
- if next == nil then atc_set_text_inside("") else atc_set_text_inside("Next stop: "..F.stnlist[next]) end
+ local intext = ""
+ if next ~= nil then intext = "Next stop: "..(F.stnlist[next] or "???") end
if postdepart~=nil then postdepart() end
+ --[[
+ if event.msg and event.msg.start and event.msg.sched and event.msg.corr then
+ local t_end = os.clock()
+ S.corrratio = event.msg.sched/event.msg.corr/(t_end-event.msg.start)
+ if S.corrratio > 1 then S.corrratio = 1 end
+ end
+ ]]
+ --atc_set_text_inside(intext.."\nCorrection: "..S.corrratio)
+ atc_set_text_inside(intext)
end
end
end
@@ -78,10 +96,9 @@ end
-- F.timing - station with timing
function F.timing(d_off, d_int, cur, nxt, side, spd, out, trk, term, pre, post)
local timenow = os.time()
- local timerdy = timenow + 8
- local wait = d_int - ((timerdy-d_off) % d_int)
- local waitcorr = math.floor(wait*0.66)
- F.stnbasic(cur, side, waitcorr, term, spd, out, true, pre, post, nxt, trk)
+ local timesincelast = (timenow+d_off) % d_int
+ local wait = d_int - timesincelast
+ F.stnbasic(cur, side, wait, term, spd, out, true, pre, post, nxt, trk)
end
-- F.brk(direction) - sends ATC B2 command
@@ -130,15 +147,14 @@ F.stnlist = {
crch = "Crossroads City Hall",
crchs = "Crossroads City Hall South",
crmtrail = "Crossroads Mountain Railway Termius",
- crnsw = "CR-North Station St. Ferry (W.)",
+ crnsw = "CR-North Station St. 9th Alley",
crrathaus = "Crossroads City Hall",
crsmacker = "Crossroads Smacker's Station",
crwm = "Crossroads-West Mountains",
crzn = "Crossroads-Zentrum/Nordstadt",
- el = "Erstaziland",
- elchateau = "Chateau d'Erstazi",
- elgp = "Erstaziland Greener Pastures",
- elsf = "Erstaziland Salt Factory",
+ elchateau = "Erstaziland-Chateau d'Erstazi",
+ elgp = "Erstaziland-Greener Pastures",
+ elsf = "Erstaziland-Salt Factory",
evo = "EVO",
mushroom = "Mushroom Land",
neverbuild = "Neverbuild",
@@ -154,6 +170,7 @@ F.stnlist = {
scc = "Silver Coast Central",
scn = "Silver Coast North",
scs = "Silver Coast South",
+ thecube = "The Cube",
}
F.errlist = {
["runaway_train"] = "Runaway train found!",
@@ -172,7 +189,6 @@ F.depint = {
-- Colored Grasses
F.ab_cgw="--:-- "..F.dst()
F.ab_cge="--:-- "..F.dst()
-
F.ab_status = "Irregular operation"
F.cg_disp = function()
@@ -180,14 +196,13 @@ F.cg_disp = function()
if event.digiline then if not event.channel=="upd" then return end end
local t=os.date()
local cg="Colored Grasses\nATL/CRT Bronze Line\n"
- local str = string.format("%s\n"..F.ab_status.." \n", os.date("%d %b %Y %H:%M %z",os.time()))
- local abf = os.date("%H:%M %z",os.time()+60)
+ local str = string.format("%26s\n%26s\n",os.date("%Y-%m-%d %H:%M %z",os.time()),F.ab_status)
digiline_send("bstg1-1",cg.."<-- Personhood West\n[1] via The Cube")
digiline_send("bstg1-2",string.format("%s%27s\n%27s",str,"Crossroads City Hall -->","via Silver Coast [2]"))
digiline_send("bstg2-1",cg.."<-- Crossroads City Hall\n[2] via Silver Coast")
digiline_send("bstg2-2",string.format("%s%27s\n%27s",str,"Personhood West -->","via The Cube [1]"))
digiline_send("bstg3","Scheduled departure (Track\nScheduled departure (Track")
- digiline_send("bstg4","1): "..abf.."\n2): "..abf)
+ digiline_send("bstg4",os.date("1): %H:%M %z%n2): %H:%M %z",os.time()+60))
return
end
return
diff --git a/Crossroads/nodes/(1083,19,3028).lua b/Crossroads/nodes/(1083,19,3028).lua
index 0e5b482..20ba94c 100644
--- a/Crossroads/nodes/(1083,19,3028).lua
+++ b/Crossroads/nodes/(1083,19,3028).lua
@@ -1,5 +1,5 @@
if event.train then
if not atc_arrow then return end
- atc_set_text_outside("ATL/CRT Bronze Line - Crossroads City Hall")
+ atc_set_text_outside("ATL Bronze Line - Crossroads City Hall")
set_line("AB")
end \ No newline at end of file
diff --git a/Crossroads/nodes/(1219,9,1549).lua b/Crossroads/nodes/(1219,9,1549).lua
index e08cb42..c54106a 100644
--- a/Crossroads/nodes/(1219,9,1549).lua
+++ b/Crossroads/nodes/(1219,9,1549).lua
@@ -1 +1 @@
-F.cg_stn(1) \ No newline at end of file
+F.timing(0,F.depint["AG"],"cg","thecube","R","M",nil,"1") \ No newline at end of file
diff --git a/Crossroads/nodes/(1232,9,1547).lua b/Crossroads/nodes/(1232,9,1547).lua
index 4e4a905..32a814b 100644
--- a/Crossroads/nodes/(1232,9,1547).lua
+++ b/Crossroads/nodes/(1232,9,1547).lua
@@ -1 +1 @@
-F.cg_stn(2) \ No newline at end of file
+F.timing(0,F.depint["AG"],"cg","scn","R","M",nil,"1") \ No newline at end of file
diff --git a/Crossroads/nodes/(1702,12,914).lua b/Crossroads/nodes/(1702,12,914).lua
index 27def93..4ce5b54 100644
--- a/Crossroads/nodes/(1702,12,914).lua
+++ b/Crossroads/nodes/(1702,12,914).lua
@@ -1 +1,2 @@
-F.hst("cras","crsmacker","L","M",nil,"1") \ No newline at end of file
+--F.hst("cras","crsmacker","L","M",nil,"1")
+atc_send("SM") \ No newline at end of file
diff --git a/Crossroads/nodes/(1709,17,914).lua b/Crossroads/nodes/(1709,17,914).lua
index 1375bd7..4b17b62 100644
--- a/Crossroads/nodes/(1709,17,914).lua
+++ b/Crossroads/nodes/(1709,17,914).lua
@@ -1 +1,2 @@
-F.hst("cras","crchs","R","M",nil,"2") \ No newline at end of file
+--F.hst("cras","crchs","R","M",nil,"2")
+atc_send("SM") \ No newline at end of file
diff --git a/Crossroads/nodes/(1755,27,943).lua b/Crossroads/nodes/(1755,27,943).lua
index 01ed586..eeaa266 100644
--- a/Crossroads/nodes/(1755,27,943).lua
+++ b/Crossroads/nodes/(1755,27,943).lua
@@ -51,7 +51,7 @@ if event.type=="digiline" then
lagavg = lagavg + v
end
lagavg = lagavg / #S.lagrec
- digiline_send("lag1", "DEBUG\nTRAINS: " .. counter .. "\nDISPS: " .. length .. "\nTIME: " .. os.date("%d %b %Y %X"))
+ digiline_send("lag1", "DEBUG\nTRAINS: " .. counter .. "\nDISPS: " .. length .. "\nTS: " .. os.time())
digiline_send("lag2", "CUR " .. (end_t - start_t) .. "\nMIN " .. S.lagrec[1] .. "\nMAX " .. S.lagrec[#S.lagrec] .. "\nAVG " .. lagavg)
end
end \ No newline at end of file
diff --git a/Crossroads/nodes/(1767,27,946).lua b/Crossroads/nodes/(1767,27,946).lua
index 27d996d..f30bb31 100644
--- a/Crossroads/nodes/(1767,27,946).lua
+++ b/Crossroads/nodes/(1767,27,946).lua
@@ -1,2 +1,2 @@
S.trains = {}
-S.lagavg = {} \ No newline at end of file
+S.lagrec = {} \ No newline at end of file
diff --git a/Crossroads/nodes/(1773,5,994).lua b/Crossroads/nodes/(1773,5,994).lua
index 575cb88..a44cbcf 100644
--- a/Crossroads/nodes/(1773,5,994).lua
+++ b/Crossroads/nodes/(1773,5,994).lua
@@ -1 +1 @@
-F.timing(0, F.depint["AB"], "crch", "crwm", "R", "M", "ATL/CRT Bronze Line - Personhood West", "1", true) \ No newline at end of file
+F.timing(0, F.depint["AB"], "crch", "crwm", "R", "M", "ATL Bronze Line - Personhood West", "1", true) \ No newline at end of file
diff --git a/Crossroads/nodes/(1795,5,1000).lua b/Crossroads/nodes/(1795,5,1000).lua
index ccf3e26..d5beb66 100644
--- a/Crossroads/nodes/(1795,5,1000).lua
+++ b/Crossroads/nodes/(1795,5,1000).lua
@@ -1,5 +1,5 @@
if event.type == "train" then
if atc_arrow then
- atc_set_text_inside("Next stop: CR-North Station St. Ferry (West)")
+ atc_set_text_inside("Next stop: CR-North Station St. 9th Alley")
end
end \ No newline at end of file
diff --git a/Crossroads/nodes/(1890,6,946).lua b/Crossroads/nodes/(1890,6,946).lua
new file mode 100644
index 0000000..7f023d4
--- /dev/null
+++ b/Crossroads/nodes/(1890,6,946).lua
@@ -0,0 +1,37 @@
+local atdiff = 5
+if not S.corrcalc then S.corrcalc = {} end
+if S.corrcalc.lasttime then S.corrcalc.lasttime = nil end
+if event.type == "punch" then
+ S.corrcalc.lastrlt = os.time()
+ S.corrcalc.lastrwt = rwt.to_secs(rwt.now())
+ digiline_send("name","1SE | Time calculation")
+end
+if event.type == "digiline" and event.msg == "recalc" then
+ if not (S.corrcalc.lastrlt and S.corrcalc.lastrwt) then
+ S.corrcalc.lastrlt = os.time()
+ S.corrcalc.lastrwt = rwt.to_secs(rwt.now())
+ else
+ local nowrlt = os.time()
+ local nowrwt = rwt.to_secs(rwt.now())
+ local nowtbl = rwt.now()
+ local rltdiff = nowrlt - S.corrcalc.lastrlt
+ local rwtdiff = nowrwt - S.corrcalc.lastrwt
+ digiline_send("disp0", string.format("RLT: %d | RWT: %d %d;%02d;%02d", nowrlt, nowrwt, nowtbl.c, nowtbl.m, nowtbl.s))
+ digiline_send("disp1", string.format("DIFF: %d/%d | RLT/RWT: %.4f | RWT/RLT: %.4f", rltdiff, rwtdiff, rltdiff/rwtdiff, rwtdiff/rltdiff))
+ S.corrcalc.lastrlt = nowrlt
+ S.corrcalc.lastrwt = nowrwt
+ interrupt(atdiff, {os.clock(), nowrwt})
+ end
+end
+if event.type == "int" then
+ local nowrlt = os.clock()
+ local nowrwt = rwt.to_secs(rwt.now())
+ local lastrlt = (event.msg and event.msg[1]) or S.corrcalc.lastrlt
+ local lastrwt = (event.msg and event.msg[2]) or S.corrcalc.lastrwt
+ local rltdiff = nowrlt - lastrlt
+ local rwtdiff = nowrwt - lastrwt
+ digiline_send("disp2", string.format("CPU: %.4f ------------ | RWT: | %d", nowrlt, nowrwt))
+ digiline_send("disp3", string.format("RLT Diff: | %.4f | RWT Diff: | %d | AT Diff: %d", rltdiff, rwtdiff, atdiff))
+ digiline_send("disp4", string.format("RLT/AT | %.4f | AT/RLT | %.4f", rltdiff/atdiff, atdiff/rltdiff))
+ digiline_send("disp5", string.format("RWT/AT | %.4f | AT/RWT | %.4f", rwtdiff/atdiff, atdiff/rwtdiff))
+end \ No newline at end of file
diff --git a/durt/init_code.lua b/durt/init_code.lua
index 6e97a28..b9ec142 100644
--- a/durt/init_code.lua
+++ b/durt/init_code.lua
@@ -1 +1 @@
-S.termini = { E = "Tro", W = "Dbl" } S.stations = { Dbl = "Dubulti", Pav = "Pence Avenue", Ghd = "Greenhat Mountain", Acm = "Acacia Mountains", Ghb = "Green Hill Beach", Ged = "Green Edge", Dri = "Dry Island", Gcl = "Green Cliffs", Sfs = "South Forest", Jms = "Jude Milhon Street", Bam = "Bamboo Hills", Cli = "Clown Island", Wat = "Something in the Water", Duf = "Duff Rd", Tro = "Turtle Rock" } S.next_station = { E = { Dbl = "Pav", Pav = "Ghd", Ghd = "Acm", Acm = "Ghb", Ghb = "Ged", Ged = "Dri", Dri = "Gcl", Gcl = "Sfs", Sfs = "Jms", Jms = "Bam", Bam = "Cli", Cli = "Wat", Wat = "Duf", Duf = "Tro" }, W = { Tro = "Duf", Duf = "Wat", Wat = "Cli", Cli = "Bam", Bam = "Jms", Jms = "Sfs", Sfs = "Gcl", Gcl = "Dri", Dri = "Ged", Ged = "Ghb", Ghb = "Acm", Acm = "Ghd", Ghd = "Dbl", } } S.doors = { Tro = "L", Duf = "R", Wat = "L", Cli = "R", Bam = "R", Jms = "R", Sfs = "R", Gcl = "R", Dri = "L", Ged = "L", Ghb = "L", Acm = "L", Ghd = "L", Dbl = "R", Pav = "L" } F.arrive = function(stn_code) atc_send("B0 W O"..S.doors[stn_code]) atc_set_text_inside(S.stations[stn_code]) end F.leave = function(stn_code, dir) -- Try to set departure route e.g. StaW->Stb local pos = stn_code .. dir local route = stn_code .. "->" .. S.next_station[dir][stn_code] if can_set_route(pos, route) then set_route(pos, route) atc_set_text_inside("Next stop:\n" .. S.stations[S.next_station[dir][stn_code]]) atc_send("OC SM") return end -- Wait another 5s before trying again atc_set_text_inside("Waiting to depart...") interrupt(5, "depart") end F.set_desto = function(dir, line) atc_set_text_outside("LINE " .. line .. "\n---> " .. S.stations[S.termini[dir]]) end F.station = function(stn_code, dir) if event.train then F.arrive(stn_code) interrupt(10, "depart") end if event.int and event.msg == "depart" then F.leave(stn_code, dir) end end F.terminus = function(stn_code, newdir, line) if event.train then atc_set_text_inside(S.stations[stn_code]) atc_send("B0 W R O"..S.doors[stn_code]) F.set_desto(newdir, line) interrupt(10, "depart") end if event.int and event.msg == "depart" then F.leave(stn_code, newdir) end end \ No newline at end of file
+S.termini = { E = "Tro", W = "Dbl" } S.stations = { Dbl = "Dubulti", Pav = "Pence Avenue", Ghd = "Greenhat Mountain", Acm = "Acacia Mountains", Ghb = "Green Hill Beach", Ged = "Green Edge", Dri = "Dry Island", Gcl = "Green Cliffs", Sfs = "South Forest", Jms = "Jude Milhon Street", Bam = "Bamboo Hills", Cli = "Clown Island", Wat = "Something in the Water", Duf = "Duff Rd", Tro = "Turtle Rock" } S.next_station = { E = { Dbl = "Pav", Pav = "Ghd", Ghd = "Acm", Acm = "Ghb", Ghb = "Ged", Ged = "Dri", Dri = "Gcl", Gcl = "Sfs", Sfs = "Jms", Jms = "Bam", Bam = "Cli", Cli = "Wat", Wat = "Duf", Duf = "Tro" }, W = { Tro = "Duf", Duf = "Wat", Wat = "Cli", Cli = "Bam", Bam = "Jms", Jms = "Sfs", Sfs = "Gcl", Gcl = "Dri", Dri = "Ged", Ged = "Ghb", Ghb = "Acm", Acm = "Ghd", Ghd = "Dbl", } } S.doors = { Tro = "L", Duf = "R", Wat = "L", Cli = "R", Bam = "R", Jms = "R", Sfs = "R", Gcl = "R", Dri = "L", Ged = "L", Ghb = "L", Acm = "L", Ghd = "L", Dbl = "R", Pav = "L" } F.arrive = function(stn_code) atc_send("B0 W O"..S.doors[stn_code]) atc_set_text_inside(S.stations[stn_code]) end F.leave = function(stn_code, dir) -- Try to set departure route e.g. StaW->Stb local pos = stn_code .. dir local route = stn_code .. "->" .. S.next_station[dir][stn_code] if can_set_route(pos, route) then set_route(pos, route) atc_set_text_inside("Next stop:\n" .. S.stations[S.next_station[dir][stn_code]]) atc_send("OC D1 SM") return end -- Wait another 5s before trying again atc_set_text_inside("Waiting to depart...") interrupt(5, "depart") end F.set_desto = function(dir, line) atc_set_text_outside("LINE " .. line .. "\n---> " .. S.stations[S.termini[dir]]) end F.station = function(stn_code, dir) if event.train then F.arrive(stn_code) interrupt(10, "depart") end if event.int and event.msg == "depart" then F.leave(stn_code, dir) end end F.terminus = function(stn_code, newdir, line) if event.train then atc_set_text_inside(S.stations[stn_code]) atc_send("B0 W R O"..S.doors[stn_code]) F.set_desto(newdir, line) interrupt(10, "depart") end if event.int and event.msg == "depart" then F.leave(stn_code, newdir) end end \ No newline at end of file
diff --git a/durt/nodes/(-131,2,-2018).lua b/durt/nodes/(-131,2,-2018).lua
index 90da6e2..3e7c695 100644
--- a/durt/nodes/(-131,2,-2018).lua
+++ b/durt/nodes/(-131,2,-2018).lua
@@ -1 +1 @@
-F.station("Pav","E") \ No newline at end of file
+F.station("Pav", "E") \ No newline at end of file
diff --git a/durt/nodes/(-149,8,-2208).lua b/durt/nodes/(-149,8,-2208).lua
new file mode 100644
index 0000000..88ef73d
--- /dev/null
+++ b/durt/nodes/(-149,8,-2208).lua
@@ -0,0 +1 @@
+F.station("Acm", "E") \ No newline at end of file
diff --git a/durt/nodes/(-151,8,-2197).lua b/durt/nodes/(-151,8,-2197).lua
new file mode 100644
index 0000000..9513009
--- /dev/null
+++ b/durt/nodes/(-151,8,-2197).lua
@@ -0,0 +1 @@
+F.station("Acm", "W") \ No newline at end of file
diff --git a/durt/nodes/(-168,7,-2052).lua b/durt/nodes/(-168,7,-2052).lua
new file mode 100644
index 0000000..2e38bb4
--- /dev/null
+++ b/durt/nodes/(-168,7,-2052).lua
@@ -0,0 +1 @@
+F.station("Ghd", "E") \ No newline at end of file
diff --git a/durt/nodes/(-170,7,-2041).lua b/durt/nodes/(-170,7,-2041).lua
new file mode 100644
index 0000000..c578b1d
--- /dev/null
+++ b/durt/nodes/(-170,7,-2041).lua
@@ -0,0 +1 @@
+F.station("Ghd", "W") \ No newline at end of file
diff --git a/durt/nodes/(-1728,10,-1823).lua b/durt/nodes/(-1728,10,-1823).lua
index cb8727f..0e7dc6d 100644
--- a/durt/nodes/(-1728,10,-1823).lua
+++ b/durt/nodes/(-1728,10,-1823).lua
@@ -1,2 +1,4 @@
-atc_set_text_inside("S23 -> Bamboo Hills")
-atc_set_text_outside("S23 -> Bamboo Hills") \ No newline at end of file
+if get_line() == "S23" or get_line() == "BH" then
+ atc_set_text_inside("S23 -> Arcadius")
+ atc_set_text_outside("S23 -> Arcadius")
+end \ No newline at end of file
diff --git a/durt/nodes/(-1924,13,-1692).lua b/durt/nodes/(-1924,13,-1692).lua
new file mode 100644
index 0000000..88ad8a6
--- /dev/null
+++ b/durt/nodes/(-1924,13,-1692).lua
@@ -0,0 +1 @@
+signal = "foundry_roads_sorting" if (event.train and atc_arrow) or (event.int and event.message == "check_signal") then if can_set_route(signal,"In Road") then set_route(signal,"In Road") elseif can_set_route(signal,"Out Road") then set_route(signal,"Out Road") else if atc_speed > 0 then atc_send("S0") else atc_send("B0") end interrupt(5,"check_signal") return end atc_send("S1") return end \ No newline at end of file
diff --git a/durt/nodes/(-2011,21,822).lua b/durt/nodes/(-2011,21,822).lua
new file mode 100644
index 0000000..ed65c79
--- /dev/null
+++ b/durt/nodes/(-2011,21,822).lua
@@ -0,0 +1 @@
+local line = "S23" if event.punch or (event.channel=="clock" and event.msg=="pulse")then digiline_send("status_update",S.lines[line].monitoring) end \ No newline at end of file
diff --git a/durt/nodes/(-2084,21,851).lua b/durt/nodes/(-2084,21,851).lua
new file mode 100644
index 0000000..18e9eef
--- /dev/null
+++ b/durt/nodes/(-2084,21,851).lua
@@ -0,0 +1,9 @@
+if get_line() == "S23" or get_line() == "BH" then
+ if atc_arrow then
+ atc_set_text_inside("S23 -> Redwood")
+ atc_set_text_outside("S23 -> Redwood")
+ else
+ atc_set_text_inside("Terminus: Arcadius/nChange here for S20")
+ atc_set_text_outside("S23")
+ end
+end \ No newline at end of file
diff --git a/durt/nodes/(-21,8,-2319).lua b/durt/nodes/(-21,8,-2319).lua
new file mode 100644
index 0000000..27c0fe5
--- /dev/null
+++ b/durt/nodes/(-21,8,-2319).lua
@@ -0,0 +1 @@
+F.station("Ghb", "E") \ No newline at end of file
diff --git a/durt/nodes/(-33,8,-2323).lua b/durt/nodes/(-33,8,-2323).lua
new file mode 100644
index 0000000..d71b456
--- /dev/null
+++ b/durt/nodes/(-33,8,-2323).lua
@@ -0,0 +1 @@
+F.station("Ghb", "W") \ No newline at end of file
diff --git a/durt/nodes/(-3525,8,-2281).lua b/durt/nodes/(-3525,8,-2281).lua
new file mode 100644
index 0000000..6bb5ea1
--- /dev/null
+++ b/durt/nodes/(-3525,8,-2281).lua
@@ -0,0 +1,3 @@
+if event.train then
+ if not atc_arrow then atc_send("S1B1") end
+end \ No newline at end of file
diff --git a/durt/nodes/(-3530,8,-2267).lua b/durt/nodes/(-3530,8,-2267).lua
new file mode 100644
index 0000000..cef1cec
--- /dev/null
+++ b/durt/nodes/(-3530,8,-2267).lua
@@ -0,0 +1,6 @@
+--control interface loading_road_control_track = POS(-3544,8,-2277) entry_exit_road_control = nil --still need to add a track for traffic balancing if event.ext_int then digiline_send("train_control_screen",event.message) return end if event.digiline then if event.channel ~= "train_control" then return end if event.msg=="rehead" then digiline_send("train_control_screen","Loco Change Ends") interrupt_pos(loading_road_control_track,"split_around") return end if event.msg=="depart" then digiline_send("train_control_screen","Depart via Accelerator") interrupt_pos(loading_road_control_track,"depart") return end if event.msg=="shuffle_loading" then digiline_send("train_control_screen","Loading Shuffle") interrupt_pos(loading_road_control_track,"shuffle") return end
+
+if event.msg=="emergency_ext_int" then interrupt_pos(POS(-73,2,-1984),"go") return end
+
+
+ return end \ No newline at end of file
diff --git a/durt/nodes/(-3544,8,-2277).lua b/durt/nodes/(-3544,8,-2277).lua
new file mode 100644
index 0000000..ba6c2bf
--- /dev/null
+++ b/durt/nodes/(-3544,8,-2277).lua
@@ -0,0 +1 @@
+-- Loading Road Control info = { line = "Maverick2797_diamonds", rc = "autorun FREIGHT", outside = "DURT Logs to Diamonds Conversion Train", inside = "Cargo: Logs and Leaves\nOrigin: Auto Logging Plantation\nDestination: Icebreaker Factory", } accelerator_loop_diverge_sig = POS(-3602,9,-2282) loading_exit_sig = POS(-3539,9,-2279) control_interface = POS(-3530,8,-2267) depart = function() if not atc_arrow then atc_send("R") end if can_set_route(loading_exit_sig,"Train Accelerator Loop") then set_route(loading_exit_sig,"Train Accelerator Loop") atc_send("SM") set_line(info.line) set_rc(info.rc) atc_set_text_inside(info.inside) atc_set_text_outside(info.outside) return else interrupt(2,"depart") return end end if event.type=="ext_int" then if not atc_id then interrupt_pos(control_interface,"No Train at Signal") return elseif atc_speed ~= 0 then interrupt_pos(control_interface,"Train Still Moving") return end if event.message == "split_around" then set_rc("split_around") if atc_arrow == true then atc_send("S0WR") end atc_send("S0WS3") return end if event.message == "depart" then depart() return end if event.message=="shuffle" then if can_set_route(loading_exit_sig,"Loop Around") then set_route(loading_exit_sig,"Loop Around") set_route(accelerator_loop_diverge_sig,"Loading Road") atc_send("S8D30S5") return else interrupt_pos(control_interface,"Unable to set routes") return end return end return end if event.type=="int" then if event.message=="depart" then depart() return end return end \ No newline at end of file
diff --git a/durt/nodes/(-3588,8,-2277).lua b/durt/nodes/(-3588,8,-2277).lua
new file mode 100644
index 0000000..9077f3c
--- /dev/null
+++ b/durt/nodes/(-3588,8,-2277).lua
@@ -0,0 +1 @@
+--train splitter track mainline_line = "Maverick2797_diamonds" mainline_rc = "autorun FREIGHT" text_outside = "DURT Logs to Diamonds Conversion Train" loading_stopper_sig = POS(-3594,9,-2277) split_around = function() if ((atc_speed==0) and can_set_route(loading_stopper_sig,"Shunt Around Via Loop")) then split_at_index(2,"") atc_send("S4") set_route(loading_stopper_sig,"Shunt Around Via Loop") return else interrupt(2,"split_around") return end end if event.train then if not atc_arrow then atc_send("B1S1") return end if get_rc() == "split_around" then atc_send("B0") split_around() return else --rejoined from splitting or arriving train atc_send("S0WRS1") set_line(mainline_line) set_rc(mainline_rc) atc_set_text_outside(text_outside) atc_set_text_inside("Loading Cargo") return end end if event.type=="int" then if event.message=="split_around" then split_around() return end return end \ No newline at end of file
diff --git a/durt/nodes/(-3596,8,-2281).lua b/durt/nodes/(-3596,8,-2281).lua
new file mode 100644
index 0000000..230fdd4
--- /dev/null
+++ b/durt/nodes/(-3596,8,-2281).lua
@@ -0,0 +1 @@
+control_interface = POS(-3530,8,-2267) exit_road_signal = POS(-3538,9,-2282) if event.train then if not atc_arrow then return end if atc_speed > 13 then if can_set_route(exit_road_signal,"Exit to Mainline") then set_route(exit_road_signal,"Exit to Mainline") interrupt_pos(control_interface,"Train Merging to Mainline") return else set_route(exit_road_signal,"Train Accelerator Loop") interrupt_pos(control_interface,"Waiting for Mainline||Unable to set edxit route") return end else set_route(exit_road_signal,"Train Accelerator Loop") interrupt_pos(control_interface,"Train too slow to merge||Looping back around") return end end \ No newline at end of file
diff --git a/durt/nodes/(-716,3,1894).lua b/durt/nodes/(-716,3,1894).lua
new file mode 100644
index 0000000..0cdb8fd
--- /dev/null
+++ b/durt/nodes/(-716,3,1894).lua
@@ -0,0 +1 @@
+factory_exit_sig = "icebreaker_factory_exit" inside_maniest = "Cargo: Empty\nOrigin: Icebreaker Factory\nDestination: Auto Plantation" outside_naming = "DURT Logs to Diamond Conversion Train" mainline_rc = "autorun FREIGHT" mainline_ln = "Maverick2797_diamonds" if event.train then digiline_send("train_response","Train "..atc_id.." ready||Entered factory:||Speed: "..atc_speed) set_line(mainline_ln) set_rc(mainline_rc) atc_set_text_outside(outside_naming) atc_set_text_inside(inside_maniest) end if event.digiline then if event.channel=="train_control" then if not atc_id then digiline_send("train_response","No Train Detected") return end if event.msg=="shuffle" then if atc_speed > 0 then digiline_send("train_response","Please wait:||train still moving||Speed: "..atc_speed) return elseif not can_set_route(factory_exit_sig,"Reverse to Breaker-side Siding") then digiline_send("train_response","Unable to set route to:||Breaker-side Siding") return else set_route(factory_exit_sig,"Reverse to Breaker-side Siding") atc_send("R S1 D5 SM D13 S0 W R S1") digiline_send("train_response","Refilling Input Chests||Shuffling Train") return end return elseif event.msg=="exit" then if atc_speed > 0 then digiline_send("train_response","Please wait:||train still moving||Speed: "..atc_speed) return elseif not can_set_route(factory_exit_sig,"Exit to Mainline South") then digiline_send("train_response","Unable to set route to:||Mainline South") return else set_route(factory_exit_sig,"Exit to Mainline South") atc_send("R SM") digiline_send("train_response","Train Departing") return end return elseif event.msg=="rehead" then if atc_speed > 0 then digiline_send("train_response","Please wait:||train still moving||Speed: "..atc_speed) return elseif not can_set_route(factory_exit_sig,"Reverse for loco run-around") then digiline_send("train_response","Unable to set route to:||Loco Run Around Sequence") return else set_route(factory_exit_sig,"Reverse for loco run-around") set_rc("split_around") atc_send("R SM D15 S0 W R S1") digiline_send("train_response","Loco Changind Ends") return end return end return end return end \ No newline at end of file
diff --git a/durt/nodes/(-736,3,1857).lua b/durt/nodes/(-736,3,1857).lua
new file mode 100644
index 0000000..b40529e
--- /dev/null
+++ b/durt/nodes/(-736,3,1857).lua
@@ -0,0 +1 @@
+mainline_rc = "autorun FREIGHT" mainline_ln = "Maverick2797_diamonds" function speed_check() if atc_speed > 0 then interrupt(1,"speed_check") return else interrupt(1,"split_train") return end end if event.train then if atc_arrow then if get_rc()=="split_around" then if atc_speed > 0 then speed_check() end return else set_rc(mainline_rc) set_line(mainline_ln) set_route("icebreaker_shunt1","return to factory") atc_send("S3") return end return end return end if event.int then if event.message == "speed_check" then speed_check() end if event.message=="split_train" then atc_send("S0") split_at_index(2,"") set_route("icebreaker_shunt1","split->headhunt") atc_send("S3") return end return end \ No newline at end of file
diff --git a/durt/nodes/(-743,3,1888).lua b/durt/nodes/(-743,3,1888).lua
new file mode 100644
index 0000000..7489acc
--- /dev/null
+++ b/durt/nodes/(-743,3,1888).lua
@@ -0,0 +1 @@
+-- \ No newline at end of file
diff --git a/durt/nodes/(-759,3,1861).lua b/durt/nodes/(-759,3,1861).lua
new file mode 100644
index 0000000..117ee31
--- /dev/null
+++ b/durt/nodes/(-759,3,1861).lua
@@ -0,0 +1,6 @@
+if (event.train and atc_arrow) then
+ set_rc("merge_from_shunt")
+ atc_set_text_inside("merge_from_shunt")
+ atc_send("S0WRS3")
+ return
+end \ No newline at end of file
diff --git a/durt/nodes/(-799,3,1863).lua b/durt/nodes/(-799,3,1863).lua
new file mode 100644
index 0000000..77cc579
--- /dev/null
+++ b/durt/nodes/(-799,3,1863).lua
@@ -0,0 +1 @@
+if event.train then if get_rc() ~= "mainline_running_code" then set_rc("mainline_running_code") atc_set_text_inside("mainline_running_code") atc_send("S0WRS3") return end return end if event.digiline then if event.msg=="switch_ends" then if not atc_id then return end if atc_speed > 0 then return end atc_send("S0") interrupt(1,"braking delay") return end return end if event.int then if event.message=="braking delay" then split_at_index(2,"") set_route(POS(-802,4,1864),"to wye") interrupt(1,"split delay") return end if event.message=="split delay" then atc_set_text_inside("engine") atc_send("S3") return end return end \ No newline at end of file
diff --git a/durt/nodes/(140,8,-2054).lua b/durt/nodes/(140,8,-2054).lua
new file mode 100644
index 0000000..46b75b9
--- /dev/null
+++ b/durt/nodes/(140,8,-2054).lua
@@ -0,0 +1 @@
+F.station("Gcl", "W") \ No newline at end of file
diff --git a/durt/nodes/(148,8,-2046).lua b/durt/nodes/(148,8,-2046).lua
new file mode 100644
index 0000000..89d0ac7
--- /dev/null
+++ b/durt/nodes/(148,8,-2046).lua
@@ -0,0 +1 @@
+F.station("Gcl", "E") \ No newline at end of file
diff --git a/durt/nodes/(260,2,-2054).lua b/durt/nodes/(260,2,-2054).lua
new file mode 100644
index 0000000..92477c0
--- /dev/null
+++ b/durt/nodes/(260,2,-2054).lua
@@ -0,0 +1 @@
+F.station("Sfs", "W") \ No newline at end of file
diff --git a/durt/nodes/(272,2,-2046).lua b/durt/nodes/(272,2,-2046).lua
new file mode 100644
index 0000000..d97324c
--- /dev/null
+++ b/durt/nodes/(272,2,-2046).lua
@@ -0,0 +1 @@
+F.station("Sfs", "E") \ No newline at end of file
diff --git a/durt/nodes/(364,-3,-2026).lua b/durt/nodes/(364,-3,-2026).lua
new file mode 100644
index 0000000..d1268c1
--- /dev/null
+++ b/durt/nodes/(364,-3,-2026).lua
@@ -0,0 +1 @@
+F.station("Jms", "W") \ No newline at end of file
diff --git a/durt/nodes/(376,-3,-2018).lua b/durt/nodes/(376,-3,-2018).lua
new file mode 100644
index 0000000..0e6dcc4
--- /dev/null
+++ b/durt/nodes/(376,-3,-2018).lua
@@ -0,0 +1 @@
+F.station("Jms", "E") \ No newline at end of file
diff --git a/durt/nodes/(502,-3,-2026).lua b/durt/nodes/(502,-3,-2026).lua
new file mode 100644
index 0000000..d8143fb
--- /dev/null
+++ b/durt/nodes/(502,-3,-2026).lua
@@ -0,0 +1 @@
+F.station("Bam", "W") \ No newline at end of file
diff --git a/durt/nodes/(514,-3,-2018).lua b/durt/nodes/(514,-3,-2018).lua
new file mode 100644
index 0000000..a724067
--- /dev/null
+++ b/durt/nodes/(514,-3,-2018).lua
@@ -0,0 +1 @@
+F.station("Bam", "E") \ No newline at end of file
diff --git a/durt/nodes/(597,-3,-1963).lua b/durt/nodes/(597,-3,-1963).lua
new file mode 100644
index 0000000..5090d96
--- /dev/null
+++ b/durt/nodes/(597,-3,-1963).lua
@@ -0,0 +1 @@
+F.station("Cli", "W") \ No newline at end of file
diff --git a/durt/nodes/(607,-3,-1957).lua b/durt/nodes/(607,-3,-1957).lua
new file mode 100644
index 0000000..f926c02
--- /dev/null
+++ b/durt/nodes/(607,-3,-1957).lua
@@ -0,0 +1 @@
+F.station("Cli", "E") \ No newline at end of file
diff --git a/durt/nodes/(687,-3,-1961).lua b/durt/nodes/(687,-3,-1961).lua
new file mode 100644
index 0000000..33be55d
--- /dev/null
+++ b/durt/nodes/(687,-3,-1961).lua
@@ -0,0 +1 @@
+F.station("Wat", "W") \ No newline at end of file
diff --git a/durt/nodes/(697,-3,-1959).lua b/durt/nodes/(697,-3,-1959).lua
new file mode 100644
index 0000000..b2ab845
--- /dev/null
+++ b/durt/nodes/(697,-3,-1959).lua
@@ -0,0 +1 @@
+F.station("Wat", "E") \ No newline at end of file
diff --git a/durt/nodes/(74,8,-2126).lua b/durt/nodes/(74,8,-2126).lua
new file mode 100644
index 0000000..7c77493
--- /dev/null
+++ b/durt/nodes/(74,8,-2126).lua
@@ -0,0 +1 @@
+F.station("Dri", "E") \ No newline at end of file
diff --git a/durt/nodes/(74,8,-2298).lua b/durt/nodes/(74,8,-2298).lua
new file mode 100644
index 0000000..456aca5
--- /dev/null
+++ b/durt/nodes/(74,8,-2298).lua
@@ -0,0 +1 @@
+F.station("Ged", "E") \ No newline at end of file
diff --git a/durt/nodes/(771,6,-1938).lua b/durt/nodes/(771,6,-1938).lua
new file mode 100644
index 0000000..af2e64f
--- /dev/null
+++ b/durt/nodes/(771,6,-1938).lua
@@ -0,0 +1 @@
+F.station("Duf", "W") \ No newline at end of file
diff --git a/durt/nodes/(78,8,-2137).lua b/durt/nodes/(78,8,-2137).lua
new file mode 100644
index 0000000..6ccaa01
--- /dev/null
+++ b/durt/nodes/(78,8,-2137).lua
@@ -0,0 +1 @@
+F.station("Dri", "W") \ No newline at end of file
diff --git a/durt/nodes/(78,8,-2310).lua b/durt/nodes/(78,8,-2310).lua
new file mode 100644
index 0000000..dbe33c5
--- /dev/null
+++ b/durt/nodes/(78,8,-2310).lua
@@ -0,0 +1 @@
+F.station("Ged", "W") \ No newline at end of file
diff --git a/durt/nodes/(781,6,-1930).lua b/durt/nodes/(781,6,-1930).lua
new file mode 100644
index 0000000..44dcd56
--- /dev/null
+++ b/durt/nodes/(781,6,-1930).lua
@@ -0,0 +1 @@
+F.station("Duf", "E") \ No newline at end of file
diff --git a/il_timetable/nodes/(-4248,20,-3107).lua b/il_timetable/nodes/(-4248,20,-3107).lua
index 2a723ae..75b9c20 100644
--- a/il_timetable/nodes/(-4248,20,-3107).lua
+++ b/il_timetable/nodes/(-4248,20,-3107).lua
@@ -1 +1 @@
-atc_set_text_outside("E35 - Personhood West <> South Forest <> Trisiston") \ No newline at end of file
+atc_set_text_outside("Noob Express: Trisiston <-> South Forest <-> Personhood") \ No newline at end of file
diff --git a/il_timetable/nodes/(1734,26,2921).lua b/il_timetable/nodes/(1734,26,2921).lua
index 35358e3..323fc1d 100644
--- a/il_timetable/nodes/(1734,26,2921).lua
+++ b/il_timetable/nodes/(1734,26,2921).lua
@@ -2,4 +2,4 @@
-- d_off: Departure time offset
-- function F.stop_sd(st_name, doors, departcommand, minstoptime, d_int, d_off)
F.stop_sd_sched("Ehlodex", "R", "RSM", 10, 120, 70)
-atc_set_text_outside("E1 - Melinka Town") \ No newline at end of file
+atc_set_text_outside("E1: Personhood <-> Spawn <-> Melinka Town") \ No newline at end of file
diff --git a/il_timetable/nodes/(241,13,-2039).lua b/il_timetable/nodes/(241,13,-2039).lua
index b3dd9f7..a6c5cb6 100644
--- a/il_timetable/nodes/(241,13,-2039).lua
+++ b/il_timetable/nodes/(241,13,-2039).lua
@@ -1 +1,2 @@
-set_line("E35") \ No newline at end of file
+set_line("E35")
+atc_set_text_outside("Noob Express -> Melinka Town") \ No newline at end of file
diff --git a/nlvcross/init_code.lua b/nlvcross/init_code.lua
index 465ce8f..0dd9c0e 100644
--- a/nlvcross/init_code.lua
+++ b/nlvcross/init_code.lua
@@ -16,6 +16,7 @@ F.crossings={
PH_West = 4,
PH_WestS = 2,
gardonst = 4,
+ Trs_Church = 3,
}
--[[ Setting up level crossings:
1. choose a name
diff --git a/nlvcross/nodes/(-144,8,-1980).lua b/nlvcross/nodes/(-144,8,-1980).lua
new file mode 100644
index 0000000..5bf45a6
--- /dev/null
+++ b/nlvcross/nodes/(-144,8,-1980).lua
@@ -0,0 +1,5 @@
+if atc_arrow then
+ F.off("SF1SouthWest", 1, true)
+else
+ F.on("SF1SouthWest", 1, true)
+end \ No newline at end of file
diff --git a/nlvcross/nodes/(-2411,19,-1503).lua b/nlvcross/nodes/(-2411,19,-1503).lua
new file mode 100644
index 0000000..373194e
--- /dev/null
+++ b/nlvcross/nodes/(-2411,19,-1503).lua
@@ -0,0 +1 @@
+F.on("Trs_Church",1) \ No newline at end of file
diff --git a/nlvcross/nodes/(-2442,19,-1525).lua b/nlvcross/nodes/(-2442,19,-1525).lua
new file mode 100644
index 0000000..c9d812b
--- /dev/null
+++ b/nlvcross/nodes/(-2442,19,-1525).lua
@@ -0,0 +1 @@
+F.off("Trs_Church",2) \ No newline at end of file
diff --git a/nlvcross/nodes/(-2460,19,-1525).lua b/nlvcross/nodes/(-2460,19,-1525).lua
new file mode 100644
index 0000000..d895d20
--- /dev/null
+++ b/nlvcross/nodes/(-2460,19,-1525).lua
@@ -0,0 +1,5 @@
+if event.train then
+interrupt(5,"lvon")
+elseif event.int then
+F.on("Trs_Church",2)
+end \ No newline at end of file
diff --git a/nlvcross/nodes/(-2481,19,-1522).lua b/nlvcross/nodes/(-2481,19,-1522).lua
new file mode 100644
index 0000000..0a66851
--- /dev/null
+++ b/nlvcross/nodes/(-2481,19,-1522).lua
@@ -0,0 +1 @@
+F.off("Trs_Church",1) \ No newline at end of file
diff --git a/nlvcross/nodes/(-362,19,-326).lua b/nlvcross/nodes/(-362,19,-326).lua
new file mode 100644
index 0000000..65b69f9
--- /dev/null
+++ b/nlvcross/nodes/(-362,19,-326).lua
@@ -0,0 +1 @@
+F.off("MOriStn", "R1")
diff --git a/nlvcross/nodes/(-367,19,-325).lua b/nlvcross/nodes/(-367,19,-325).lua
new file mode 100644
index 0000000..d2a3e7e
--- /dev/null
+++ b/nlvcross/nodes/(-367,19,-325).lua
@@ -0,0 +1 @@
+F.on("LovelaceAve", 1) \ No newline at end of file
diff --git a/nlvcross/nodes/(-88,2,-1984).lua b/nlvcross/nodes/(-88,2,-1984).lua
index c9658a4..cdcec9a 100644
--- a/nlvcross/nodes/(-88,2,-1984).lua
+++ b/nlvcross/nodes/(-88,2,-1984).lua
@@ -1 +1,5 @@
-F.off("SF1SouthWest", 1) \ No newline at end of file
+if atc_arrow then
+ F.on("SF1SouthWest", 1)
+else
+ F.off("SF1SouthWest", 1, true)
+end \ No newline at end of file
diff --git a/nlvcross/nodes/(205,8,-2052).lua b/nlvcross/nodes/(205,8,-2052).lua
index 2f59d53..eb78097 100644
--- a/nlvcross/nodes/(205,8,-2052).lua
+++ b/nlvcross/nodes/(205,8,-2052).lua
@@ -1 +1,3 @@
-F.off("SF1Station", 2) \ No newline at end of file
+if atc_arrow then
+ F.off("SF1Station", 2)
+end \ No newline at end of file
diff --git a/nlvcross/nodes/(255,2,-2054).lua b/nlvcross/nodes/(255,2,-2054).lua
new file mode 100644
index 0000000..b42d779
--- /dev/null
+++ b/nlvcross/nodes/(255,2,-2054).lua
@@ -0,0 +1 @@
+F.on("SF1Station", 2) \ No newline at end of file
diff --git a/subway/init_code.lua b/subway/init_code.lua
index aaf84a4..2eb400e 100644
--- a/subway/init_code.lua
+++ b/subway/init_code.lua
@@ -1,5 +1,6 @@
--F.stn_union=function(line1, prev1, prev2, this, next, doors, dps, osig, ret_sw, ret_st, nohalt, waittime)
F.stationnames={
+Ewb="Edenwood Beach",
Ban="Bananame",
ctr="Coulomb Street Triangle",
Cht="Churchill Street",
diff --git a/subway/nodes/(-107,16,-472).lua b/subway/nodes/(-107,16,-472).lua
new file mode 100644
index 0000000..e7c10f5
--- /dev/null
+++ b/subway/nodes/(-107,16,-472).lua
@@ -0,0 +1,2 @@
+F.stn_return_free("Ppo8W", "Uic8SW", "st")
+F.stn("Uic8E", "Ppo8E", "Ctd8E", "R") \ No newline at end of file
diff --git a/subway/nodes/(-1415,19,98).lua b/subway/nodes/(-1415,19,98).lua
index 11ecce9..7b70d57 100644
--- a/subway/nodes/(-1415,19,98).lua
+++ b/subway/nodes/(-1415,19,98).lua
@@ -1 +1 @@
-F.stn_nohalt("Gho4W", "Lvc4W", "Dev4W") \ No newline at end of file
+F.stn("Gho4W", "Lvc4W", "Dev4W", "L") \ No newline at end of file
diff --git a/subway/nodes/(-1422,19,85).lua b/subway/nodes/(-1422,19,85).lua
index f757ca3..9651671 100644
--- a/subway/nodes/(-1422,19,85).lua
+++ b/subway/nodes/(-1422,19,85).lua
@@ -1 +1 @@
-F.stn_nohalt("Dev4E", "Lvc4E", "Gho4E") \ No newline at end of file
+F.stn("Dev4E", "Lvc4E", "Gho4E","L") \ No newline at end of file
diff --git a/subway/nodes/(-1759,10,-1823).lua b/subway/nodes/(-1759,10,-1823).lua
new file mode 100644
index 0000000..d06f09c
--- /dev/null
+++ b/subway/nodes/(-1759,10,-1823).lua
@@ -0,0 +1 @@
+F.stat("S23") \ No newline at end of file
diff --git a/subway/nodes/(-254,16,-474).lua b/subway/nodes/(-254,16,-474).lua
new file mode 100644
index 0000000..458aefe
--- /dev/null
+++ b/subway/nodes/(-254,16,-474).lua
@@ -0,0 +1 @@
+F.stn_return("Ppo8W", "Uic8E", "Ppo8E", "R", "Uic8SW", "cr") \ No newline at end of file
diff --git a/subway/nodes/(158,0,675).lua b/subway/nodes/(158,0,675).lua
index 3816a94..36ca8fa 100644
--- a/subway/nodes/(158,0,675).lua
+++ b/subway/nodes/(158,0,675).lua
@@ -1 +1,2 @@
---setstate("mcfg1s1","on") \ No newline at end of file
+--setstate("mcfg1s1","on")
+atc_set_text_outside("Line 4 - Ice Mountain") \ No newline at end of file
diff --git a/subway/nodes/(29,16,-470).lua b/subway/nodes/(29,16,-470).lua
new file mode 100644
index 0000000..f961cdd
--- /dev/null
+++ b/subway/nodes/(29,16,-470).lua
@@ -0,0 +1 @@
+F.stn("Smp8W", "Ctd8W", "Ppo8W", "R") \ No newline at end of file
diff --git a/subway/nodes/(799,8,-103).lua b/subway/nodes/(799,8,-103).lua
index 47d2ef3..a6dc8b1 100644
--- a/subway/nodes/(799,8,-103).lua
+++ b/subway/nodes/(799,8,-103).lua
@@ -1,3 +1,3 @@
-F.stn_return_nohalt("Dam2N", "Dam2R", "Dam2S", "Dam2ES", "cr", 6)
+F.stn_return("Dam2N", "Dam2R", "Dam2S", "C", "Dam2ES", "cr", 6, nil, 20)
F.stat("Line 2", false)
atc_set_text_outside("Line 2 - Chasm of Segfault") \ No newline at end of file