-- Automatic bouncer for headshunts, assuming longer headshunt than train length. Arrow points into headshunt -- Modified to bounce all trains. RC Removal still works though local rev_rc = "DLG_HS_N" local rm_rc = true local autocouple = "DLG_HS_N_AC" local rm_cpl_rc = true local departures_busy_indicator = POS(-4107,20,-5795) __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 then if not atc_arrow then --train has bounced if F.has_rc(autocouple) then atc_send("CplS0WD2S1") if rm_cpl_rc then F.remove_rc({autocouple}) end if F.has_rc("DLG_CLASS_DLG_NB") then F.indicator(departures_busy_indicator,true) end end return end -- if not F.has_rc(rev_rc) then --not our train. disregard -- atc_set_ars_disable(false) -- return -- end if rm_rc then F.remove_rc({rev_rc}) 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