summaryrefslogtreecommitdiff
path: root/durt/nodes/(-1514,11,-2590).lua
blob: c76d2cedac81a5ab86d83372d6f4528e6e239376 (plain)
1
__approach_callback_mode = 1

if event.approach and not event.has_entered then
    atc_set_ars_disable(true)
    atc_set_lzb_tsr(1)
end

if event.train and atc_arrow then
	if S.yards.S27.shunt_type == false then
	--reverse around loop. player not present to supervise autocouple
		local rc = get_rc() or ""
		
		local action = 0
		local rc_list = {}
		for token in rc:gmatch("[^%s]+") do
			if token=="S27_LOOP" then
				action = 1
			else
				table.insert(rc_list,token)
			end
		end
		
		if action == 0 then
			rc = rc.." S27_LOOP"
		else
			rc = table.concat(rc_list," ").." S27_EXIT"
		end
		set_rc(rc)
		atc_set_ars_disable(false)
		atc_send("B0WRD1S3")
		return
		
		
	elseif S.yards.S27.shunt_type == true then
	--split and run around properly. player is present to supervise autocouple
		local info = {
			['rc'] = get_rc() or "",
			['ln'] = get_line() or "",
			['it'] = atc_get_text_inside() or "",
			['ot'] = atc_get_text_outside() or ""
		}
		if info.rc == "S27_HEADSHUNT S27_AROUND" then
			info = S.yards.S27.info
			set_rc(info.rc)
			set_line(inf.ln)
			atc_set_text_inside(info.it)
			atc_set_text_outside(info.ot)
			
			atc_send("BBWD3RD1SM")
		else
			S.yards.S27[info] = info
			split_at_index(2,"BBWR")
			set_rc("S27_HEADSHUNT S27_AROUND")
			set_autocouple()
		end
		atc_set_ars_disable(false)
		return
	end
end