summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--auto_yards/init_code.lua18
-rw-r--r--auto_yards/nodes/(-2004,3,-1099).lua3
-rw-r--r--auto_yards/nodes/(-2006,3,-1099).lua2
-rw-r--r--durt/nodes/(-1512,8,-2613).lua7
-rw-r--r--durt/nodes/(-1515,7,-2625).lua2
5 files changed, 26 insertions, 6 deletions
diff --git a/auto_yards/init_code.lua b/auto_yards/init_code.lua
index 689b7e3..ebab6e2 100644
--- a/auto_yards/init_code.lua
+++ b/auto_yards/init_code.lua
@@ -9,7 +9,8 @@ if event.init then
dir_indicator_pos = POS(),
error_indicator_pos = POS(),
headshunt_max = number,
-
+ notify = empty table,
+ notify_pos = pos,
},
]]--
TY = {
@@ -23,6 +24,8 @@ if event.init then
dir_indicator_pos = POS(-2009,3,-1101),
error_indicator_pos = POS(-1999,3,-1099),
headshunt_max = 5,
+ notify = {},
+ notify_pos = POS(-2006,3,-1099)
},
IP = {
active_indicator_pos = POS(1179,16,3848),
@@ -164,6 +167,7 @@ F.yard_arrival = function(yard_id,this_dir) -- arrow points towards yard
atc_set_ars_disable(false)
atc_send("S6")
print("YARD: "..yard_id..": Train "..atc_id.." enters from the "..tostring(this_dir).." direction and "..((rts and "will") or "won't").." return in the same direction")
+ print("YARD: "..yard_id..": Length "..train_length())
return
end
@@ -352,6 +356,13 @@ F.headshunt_exit = function(yard_id,this_dir) -- arrow points out of yard
F.remove_rc({yard_id.."_FINAL_COLLECT",yard_id.."_DEPART"})
F.remove_rc_match(yard_id.."_LOCOS_%d+")
F.remove_rc_match(yard_id.."_WAGONS_%d+")
+
+ if yard.notify_pos and yard.notify then
+ if #yard.notify > 0 then
+ interrupt_pos(yard.notify_pos,"notify")
+ end
+ end
+
if F.has_rc(yard_id.."_HAS_RTS") then --reinsert the RTS flag to fully return RC list to starting
F.remove_rc(yard_id.."_HAS_RTS")
F.add_rc({yard_id.."_RTS"})
@@ -406,6 +417,11 @@ F.lane_EOL = function(yard_id,this_dir) -- arrow points towards headshunt
else
if F.indicator(yard.dir_indicator_pos) == this_dir then
F.remove_rc_match(yard_id.."_CLASS_%S+")
+ local fc = F.get_rc_safe():match(yard_id.."_CLASS_(%S+)")
+ if not fc then return end
+ if fc == "*" then return end
+ if F.has_rc(yard_id.."_COLLECT_"..fc) then return end
+ S.yards[yard_id].notify[fc] = true
else --this should never come into play as it means the train has entered from the wrong end somehow
atc_send("BBOL") --stop the train and open the doors (if available) to signify assistance required
F.indicator(yard.error_indicator_pos,true)
diff --git a/auto_yards/nodes/(-2004,3,-1099).lua b/auto_yards/nodes/(-2004,3,-1099).lua
new file mode 100644
index 0000000..bc283b9
--- /dev/null
+++ b/auto_yards/nodes/(-2004,3,-1099).lua
@@ -0,0 +1,3 @@
+local s = rwt.to_string(rwt.now()).."\n--"..table.concat(S.yards.BY.notify,", ").."--"
+print(s)
+digiline_send("",s) \ No newline at end of file
diff --git a/auto_yards/nodes/(-2006,3,-1099).lua b/auto_yards/nodes/(-2006,3,-1099).lua
new file mode 100644
index 0000000..4109711
--- /dev/null
+++ b/auto_yards/nodes/(-2006,3,-1099).lua
@@ -0,0 +1,2 @@
+if event.digiline then return end
+print(event) \ No newline at end of file
diff --git a/durt/nodes/(-1512,8,-2613).lua b/durt/nodes/(-1512,8,-2613).lua
index ecf8060..b38ec43 100644
--- a/durt/nodes/(-1512,8,-2613).lua
+++ b/durt/nodes/(-1512,8,-2613).lua
@@ -2,17 +2,16 @@ local ind = POS(-1513,8,-2613)
local loco_track = POS(-1515,7,-2625)
if event.ext_int then
- local m = event.message
- if m.command == "NOTIFY" and m.msg == "S27" then
+ if event.message == "S27" then
if F.indicator(ind) then return end
interrupt_pos(loco_track,"SEND")
- F.indicator(ind,"on")
+ F.indicator(ind,false)
return
end
end
if event.punch then
- F.indicator(ind,"on")
+ F.indicator(ind,true)
interrupt_pos(loco_track,"SEND")
return
end \ No newline at end of file
diff --git a/durt/nodes/(-1515,7,-2625).lua b/durt/nodes/(-1515,7,-2625).lua
index d29e92c..c12db21 100644
--- a/durt/nodes/(-1515,7,-2625).lua
+++ b/durt/nodes/(-1515,7,-2625).lua
@@ -3,7 +3,7 @@ local function send_train()
set_rc("FREIGHT S23 TanhX_NBS23toE3 BYARD BY_COLLECT_S27 MGGRatHYARD S27 S27_UNLOAD S27_Overburden BY_RTS S27_EXIT")
atc_send("S0WRD2A1S4")
set_route(POS(-1504,8,-2622),"Through to Lead")
- F.indicator(ind,"off")
+ F.indicator(ind,false)
end
if event.ext_int and atc_id then
send_train()