diff options
author | autocommitter <autocommitter@linux-forks.de> | 2024-04-22 14:58:04 +0200 |
---|---|---|
committer | autocommitter <autocommitter@linux-forks.de> | 2024-04-22 14:58:04 +0200 |
commit | 0e74a9a610e823dd7e752a004c735d52cca9a586 (patch) | |
tree | 6b4abdc04f87097dbfe3d0339d885b095a7ac4bb /durt | |
parent | 7b3ac07f3f9b9d92582aceb74050215a36646bc5 (diff) | |
download | luaatc_envs-0e74a9a610e823dd7e752a004c735d52cca9a586.tar.gz luaatc_envs-0e74a9a610e823dd7e752a004c735d52cca9a586.tar.bz2 luaatc_envs-0e74a9a610e823dd7e752a004c735d52cca9a586.zip |
State at 2023-03-27
Diffstat (limited to 'durt')
-rw-r--r-- | durt/nodes/(-1403,11,-2533).lua | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/durt/nodes/(-1403,11,-2533).lua b/durt/nodes/(-1403,11,-2533).lua index 7489acc..898b856 100644 --- a/durt/nodes/(-1403,11,-2533).lua +++ b/durt/nodes/(-1403,11,-2533).lua @@ -1 +1,60 @@ ---
\ No newline at end of file +local rev_rc = "S27_REV_East" +local rm_rc = false + + +__approach_callback_mode = 1 + +if event.approach and not event.has_entered then + atc_set_lzb_tsr(3) + atc_set_ars_disable(true) + return +end + +if event.train and atc_arrow then + if not F.has_rc(rev_rc) then + atc_set_ars_disable(false) + return + end + if rm_rc then F.remove_rc({rev_rc}) end + + if F.has_rc("S27_SHUNTER") then + local stages = { + "S27_EXP_PICKUP", + "S27_EXP_LOAD", + "S27_EXP_DEPART" + } + + for i,v in ipairs(stages) do + if F.has_rc(v) then + unset_autocouple() + F.remove_rc(v) + local next_stage = stages[i == #stages and 1 or i+1] + if next_stage == "S27_EXP_PICKUP" and not section_occupancy("254098")[1] then -- no wagons left to load. store loco + F.add_rc("S27_LOCOSTORE") + break + end + if next_stage ~= "S27_EXP_DEPART" then + set_autocouple() + end + F.add_rc(next_stage) + + break + end + end + end + schedule_in(";01",atc_id) + return +end + +if event.schedule then + if not atc_id then --bounce the train that just passed + atc_send_to_train(event.msg,"B0WRD1A1S3") + else + if atc_id == event.msg then --train hasn't fully passed yet, wait a bit longer + schedule_in(";01",atc_id) + else -- somehow another train crossed the controller before the first one returned. Unlikely but possible + atc_send_to_train(event.msg,"BBOL") + atc_send("BBOL") + end + end +end
\ No newline at end of file |