summaryrefslogtreecommitdiff
path: root/durt/nodes/(-1511,11,-2590).lua
blob: 9c41623cdf2c03ca119c49c851d728181dc6db0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
__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 == 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 " "
		}
		print("Local Info:")
		print(info)
		print("===========")
		if info.rc ~= "S27_HEADSHUNT S27_AROUND" then
			S.yards.S27['info'] = info
			print("info.rc false --> S.yards.S27: ")
			print(S.yards.S27)
			print("===========")
			split_at_index(2,"BBWR")
			set_rc("S27_HEADSHUNT S27_AROUND")
			set_autocouple()
		else
			info = S.yards.S27['info']
			print("info.rc true --> S.yards.S27: ")
			print(S.yards.S27)
			print("===========")
			set_rc(info.rc)
			set_line(info.ln)
			atc_set_text_inside(info.it)
			atc_set_text_outside(info.ot)
			
			atc_send("BBWD3RD1SM")
		end
		atc_set_ars_disable(false)
		return
	elseif S.yards.S27.shunt_type == false then
	--reverse around loop. player not present to supervise autocouple operation
		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
	end
end