summaryrefslogtreecommitdiff
path: root/durt/nodes/(-1973,16,800).lua
diff options
context:
space:
mode:
Diffstat (limited to 'durt/nodes/(-1973,16,800).lua')
-rw-r--r--durt/nodes/(-1973,16,800).lua71
1 files changed, 71 insertions, 0 deletions
diff --git a/durt/nodes/(-1973,16,800).lua b/durt/nodes/(-1973,16,800).lua
new file mode 100644
index 0000000..e6166e8
--- /dev/null
+++ b/durt/nodes/(-1973,16,800).lua
@@ -0,0 +1,71 @@
+local notification_id = "ARC"
+local ind = POS(-1954,16,840)
+local print_notification = true
+local sections ={
+ store_4 = "032832" -- Destined for Arcadius Basement Loading Dock
+}
+local function send_train()
+ atc_send("S0WRD2A1S4")
+ local cmd = { -- collect wagons from BYARD, and park loco in loco siding if no departures at ARC
+ "FREIGHT",
+ "ARC_LOCOSTORE",
+ "ARC_AUTO",
+ "ARC_RTS",
+ "ARC_COLLECT_ARC_SB",
+ "ARC_AUTO_S23S",
+ "S23E3N",
+ "BYARD",
+ "BY_RTS",
+ "BY_COLLECT_ARC",
+ "E3S23N",
+ "ARC_LIGHT_EXIT"
+ }
+ if #section_occupancy(sections.store_4) ~= 0 then
+ if print_notification then print(rwt.to_string(rwt.now()).. " "..notification_id.." send_train() has local job from STORE_4") end
+ -- perform local job to Arcadius Basement Loading Dock before taking wagons to BYARD
+ cmd = {
+ "FREIGHT", --because it's freight
+ "ARC_LOCOSTORE", --technically the loco identifier until we have wagon ID. will be ignored by yard_headshunt because no "ARC_DEPART" etc
+ "ARC_YARD_REENTRY", --redirect back into the yard from yard_exit controller. will be checked by yard_exit before ARS triggers
+ "ARC_RTS", --basic yard call
+ "ARC_COLLECT_ARC_LOAD_DOCK", -- collect req wagons. can be left in place, if train_length == 1 then will return to siding anyway
+ "ARC_AUTO_LOCAL_LOADING", --direct to ARC Basement Loading Dock
+ "ARC_LOAD", --trigger the loading track
+ }
+ end
+ set_rc(table.concat(cmd," "))
+ atc_send("S0WRD2A1S4")
+ F.indicator(ind,false) -- will be reenabled by returning the wagons from the local job
+end
+if event.ext_int then
+ if event.message == "notify" then
+ if print_notification then print(rwt.to_string(rwt.now()).. " "..notification_id.." RX Notification") end
+ if F.indicator(ind) then return end
+ if atc_id then
+ send_train()
+ return
+ else
+ F.indicator(ind,true)
+ return
+ end
+ end
+ if event.message == "notify_local" then
+ if print_notification then print(rwt.to_string(rwt.now()).. " "..notification_id.." RX Notification - Local Job") end
+ if F.indicator(ind) then return end
+ if atc_id then
+ send_train()
+ return
+ else
+ F.indicator(ind,true)
+ return
+ end
+ end
+end
+if event.train then
+ if F.indicator(ind) then
+ send_train()
+ return
+ end
+ atc_send("B0")
+ return
+end \ No newline at end of file