diff options
Diffstat (limited to 'durt')
-rw-r--r-- | durt/init_code.lua | 2 | ||||
-rw-r--r-- | durt/nodes/(-3530,8,-2267).lua | 7 | ||||
-rw-r--r-- | durt/nodes/(-3544,8,-2277).lua | 2 | ||||
-rw-r--r-- | durt/nodes/(-3588,8,-2277).lua | 2 | ||||
-rw-r--r-- | durt/nodes/(-73,2,-1984).lua | 2 | ||||
-rw-r--r-- | durt/nodes/(430,17,19).lua | 1 | ||||
-rw-r--r-- | durt/nodes/(430,17,7).lua | 1 | ||||
-rw-r--r-- | durt/nodes/(839,6,-1864).lua | 2 |
8 files changed, 8 insertions, 11 deletions
diff --git a/durt/init_code.lua b/durt/init_code.lua index b9ec142..2ecf27d 100644 --- a/durt/init_code.lua +++ b/durt/init_code.lua @@ -1 +1 @@ -S.termini = {
E = "Tro",
W = "Dbl"
}
S.stations = {
Dbl = "Dubulti",
Pav = "Pence Avenue",
Ghd = "Greenhat Mountain",
Acm = "Acacia Mountains",
Ghb = "Green Hill Beach",
Ged = "Green Edge",
Dri = "Dry Island",
Gcl = "Green Cliffs",
Sfs = "South Forest",
Jms = "Jude Milhon Street",
Bam = "Bamboo Hills",
Cli = "Clown Island",
Wat = "Something in the Water",
Duf = "Duff Rd",
Tro = "Turtle Rock"
}
S.next_station = {
E = {
Dbl = "Pav",
Pav = "Ghd",
Ghd = "Acm",
Acm = "Ghb",
Ghb = "Ged",
Ged = "Dri",
Dri = "Gcl",
Gcl = "Sfs",
Sfs = "Jms",
Jms = "Bam",
Bam = "Cli",
Cli = "Wat",
Wat = "Duf",
Duf = "Tro"
},
W = {
Tro = "Duf",
Duf = "Wat",
Wat = "Cli",
Cli = "Bam",
Bam = "Jms",
Jms = "Sfs",
Sfs = "Gcl",
Gcl = "Dri",
Dri = "Ged",
Ged = "Ghb",
Ghb = "Acm",
Acm = "Ghd",
Ghd = "Dbl",
}
}
S.doors = {
Tro = "L",
Duf = "R",
Wat = "L",
Cli = "R",
Bam = "R",
Jms = "R",
Sfs = "R",
Gcl = "R",
Dri = "L",
Ged = "L",
Ghb = "L",
Acm = "L",
Ghd = "L",
Dbl = "R",
Pav = "L"
}
F.arrive = function(stn_code)
atc_send("B0 W O"..S.doors[stn_code])
atc_set_text_inside(S.stations[stn_code])
end
F.leave = function(stn_code, dir)
-- Try to set departure route e.g. StaW->Stb
local pos = stn_code .. dir
local route = stn_code .. "->" .. S.next_station[dir][stn_code]
if can_set_route(pos, route) then
set_route(pos, route)
atc_set_text_inside("Next stop:\n" .. S.stations[S.next_station[dir][stn_code]])
atc_send("OC D1 SM")
return
end
-- Wait another 5s before trying again
atc_set_text_inside("Waiting to depart...")
interrupt(5, "depart")
end
F.set_desto = function(dir, line)
atc_set_text_outside("LINE " .. line ..
"\n---> " .. S.stations[S.termini[dir]])
end
F.station = function(stn_code, dir)
if event.train then
F.arrive(stn_code)
interrupt(10, "depart")
end
if event.int and event.msg == "depart" then
F.leave(stn_code, dir)
end
end
F.terminus = function(stn_code, newdir, line)
if event.train then
atc_set_text_inside(S.stations[stn_code])
atc_send("B0 W R O"..S.doors[stn_code])
F.set_desto(newdir, line)
interrupt(10, "depart")
end
if event.int and event.msg == "depart" then
F.leave(stn_code, newdir)
end
end
\ No newline at end of file +S.lines = {
S23 = {
termini = {
N = "Arc",
S = "Rew"
},
stations = {
Rew = {
name = "Redwood",
doors = "L",
next_station = {
N = "Thc",
S = false
},
},
Thc = {
name = "Tanh Cliffs",
doors = "L",
next_station = {
N = "Noi",
S = "Rew"
},
},
Noi = {
name = "No Idea",
doors = "L",
next_station = {
N = "Lzf",
S = "Thc"
},
},
Lzf = {
name = "Laza's Field",
doors = "L",
next_station = {
N = "Bbh",
S = "Noi"
},
},
Bbh = {
name = "Bamboo Hills",
doors = "L",
next_station = {
N = "Arc",
S = "Lzf"
},
},
Arc = {
name = "Arcadius",
doors = "L",
next_station = {
N = false,
S = "Bbh"
},
}
},
monitoring = {
N = {},
S = {}
}
},
U21 = {
termini = {
E = "Tro",
W = "Dbl"
},
stations = {
Dbl = {
name = "Dubulti",
doors = "R",
next_station = {
E = "Pav",
W = "Ghd"
}
},
Pav = {
name = "Pence Avenue",
doors = "L",
next_station = {
E = "Ghd",
W = "Dbl"
}
},
Ghd = {
name = "Greenhat Mountain",
doors = "L",
next_station = {
E = "Acm",
W = "Dbl"
}
},
Acm = {
name = "Acacia Mountains",
doors = "L",
next_station = {
E = "Ghb",
W = "Ghd"
}
},
Ghb = {
name = "Green Hill Beach",
doors = "L",
next_station = {
E = "Ged",
W = "Acm"
}
},
Ged = {
name = "Green Edge",
doors = "L",
next_station = {
E = "Dri",
W = "Ghb"
}
},
Dri = {
name = "Dry Island",
doors = "L",
next_station = {
E = "Gcl",
W = "Ged"
}
},
Gcl = {
name = "Green Cliffs",
doors = "R",
next_station = {
E ="Sfs",
W = "Dri"
}
},
Sfs = {
name = "South Forest",
doors = "R",
next_station = {
E = "Jms",
W = "Gcl"
}
},
Jms = {
name = "Jude Milhon Street",
doors = "R",
next_station = {
E = "Bam",
W = "Sfs"
}
},
Bam = {
name = "Bamboo Hills",
doors = "R",
next_station = {
E = "Cli",
W = "Jms"
}
},
Cli = {
name = "Clown Island",
doors = "R",
next_station = {
E = "Wat",
W = "Bam"
}
},
Wat = {
name = "Something in the Water",
doors = "L",
next_station = {
E = "Duf",
W = "Cli"
}
},
Duf = {
name = "Duff Rd",
doors = "R",
next_station = {
E = "Tro",
W = "Wat"
}
},
Tro = {
name = "Turtle Rock",
doors = "L",
next_station = {
E = false,
W = "Duf"
},
}
},
monitoring = {
E = {},
W = {},
S = {},
N = {}
}
}
}
---------------------------------------------------------------------
--defining the functions
F.arrive = function(stn_code,dir,line)
S.lines[line].monitoring[dir][stn_code] = atc_id
atc_send("B0 W O"..S.lines[line].stations[stn_code].doors)
atc_set_text_inside("Arrived at:\n"..S.lines[line].stations[stn_code].name.."\n \nNext Station:\n"..S.lines[line].stations[S.lines[line].stations[stn_code].next_station[dir]].name)
end
F.depart = function(stn_code,dir,line)
local pos = stn_code..dir
local inside_text = "Next Stop:\n"..S.lines[line].stations[S.lines[line].stations[stn_code].next_station[dir]].name
if can_set_route(pos,stn_code.."->"..S.lines[line].stations[stn_code].next_station[dir]) then
set_route(pos,stn_code.."->"..S.lines[line].stations[stn_code].next_station[dir])
atc_send("OC SM")
S.lines[line].monitoring[dir][stn_code] = nil
S.lines[line].monitoring[dir][S.lines[line].stations[stn_code].next_station[dir]] = atc_id
else
-- Wait another 5s before trying again
inside_text = inside_text.."\nWaiting to depart..."
interrupt(5, "depart")
end
atc_set_text_inside(inside_text)
end
F.set_desto = function(dir, line)
atc_set_text_outside("LINE " .. line .."\n---> " .. S.lines[line].stations[S.lines[line].termini[dir]].name)
end
---------------------------------------------------------------------
--LuaATC track functions
F.station = function(stn_code,dir,line)
-- temp until all SF LuaAtc tracks are changed-------------------------
if line == nil or line == "1" then
line = "U21"
end
---------------------------------------------------------------------
if event.train then
F.arrive(stn_code,dir,line)
interrupt(10,"depart")
elseif event.int and event.msg=="depart" then
F.depart(stn_code,dir,line)
end
end
F.terminus = function(stn_code, newdir, line)
if event.train then
S.lines[line].monitoring[newdir][stn_code] = atc_id
atc_send("B0 W R O"..S.lines[line].stations[stn_code].doors)
atc_set_text_inside("Arrived at:\n"..S.lines[line].stations[stn_code].name.."\n \nNext Station:\n"..S.lines[line].stations[S.lines[line].stations[stn_code].next_station[newdir]].name)
atc_set_text_outside("LINE " .. line .."\n---> " .. S.lines[line].stations[S.lines[line].termini[newdir]].name)
interrupt(10, "depart")
end
if event.int and event.msg == "depart" then
F.depart(stn_code, newdir,line)
end
end
\ No newline at end of file diff --git a/durt/nodes/(-3530,8,-2267).lua b/durt/nodes/(-3530,8,-2267).lua index cef1cec..40c32b6 100644 --- a/durt/nodes/(-3530,8,-2267).lua +++ b/durt/nodes/(-3530,8,-2267).lua @@ -1,6 +1 @@ ---control interface
loading_road_control_track = POS(-3544,8,-2277)
entry_exit_road_control = nil --still need to add a track for traffic balancing
if event.ext_int then
digiline_send("train_control_screen",event.message)
return
end
if event.digiline then
if event.channel ~= "train_control" then return end
if event.msg=="rehead" then
digiline_send("train_control_screen","Loco Change Ends")
interrupt_pos(loading_road_control_track,"split_around")
return
end
if event.msg=="depart" then
digiline_send("train_control_screen","Depart via Accelerator")
interrupt_pos(loading_road_control_track,"depart")
return
end
if event.msg=="shuffle_loading" then
digiline_send("train_control_screen","Loading Shuffle")
interrupt_pos(loading_road_control_track,"shuffle")
return
end - -if event.msg=="emergency_ext_int" then
interrupt_pos(POS(-73,2,-1984),"go")
return
end - - -
return
end
\ No newline at end of file +--control interface
loading_road_control_track = POS(-3544,8,-2277)
entry_exit_road_control = nil --still need to add a track for traffic balancing
if event.ext_int then
digiline_send("train_control_screen",event.message)
return
end
if event.digiline then
if event.channel ~= "train_control" then return end
if event.msg=="rehead" then
digiline_send("train_control_screen","Loco Change Ends")
interrupt_pos(loading_road_control_track,"split_around")
return
end
if event.msg=="depart" then
digiline_send("train_control_screen","Depart via Accelerator")
interrupt_pos(loading_road_control_track,"depart")
return
end
if event.msg=="shuffle_loading" then
digiline_send("train_control_screen","Loading Shuffle")
interrupt_pos(loading_road_control_track,"shuffle")
return
end
return
end
\ No newline at end of file diff --git a/durt/nodes/(-3544,8,-2277).lua b/durt/nodes/(-3544,8,-2277).lua index ba6c2bf..20c7298 100644 --- a/durt/nodes/(-3544,8,-2277).lua +++ b/durt/nodes/(-3544,8,-2277).lua @@ -1 +1 @@ --- Loading Road Control
info = {
line = "Maverick2797_diamonds",
rc = "autorun FREIGHT",
outside = "DURT Logs to Diamonds Conversion Train",
inside = "Cargo: Logs and Leaves\nOrigin: Auto Logging Plantation\nDestination: Icebreaker Factory",
}
accelerator_loop_diverge_sig = POS(-3602,9,-2282)
loading_exit_sig = POS(-3539,9,-2279)
control_interface = POS(-3530,8,-2267)
depart = function()
if not atc_arrow then atc_send("R") end
if can_set_route(loading_exit_sig,"Train Accelerator Loop") then
set_route(loading_exit_sig,"Train Accelerator Loop")
atc_send("SM")
set_line(info.line)
set_rc(info.rc)
atc_set_text_inside(info.inside)
atc_set_text_outside(info.outside)
return
else
interrupt(2,"depart")
return
end
end
if event.type=="ext_int" then
if not atc_id then
interrupt_pos(control_interface,"No Train at Signal")
return
elseif atc_speed ~= 0 then
interrupt_pos(control_interface,"Train Still Moving")
return
end
if event.message == "split_around" then
set_rc("split_around")
if atc_arrow == true then atc_send("S0WR") end
atc_send("S0WS3")
return
end
if event.message == "depart" then
depart()
return
end
if event.message=="shuffle" then
if can_set_route(loading_exit_sig,"Loop Around") then
set_route(loading_exit_sig,"Loop Around")
set_route(accelerator_loop_diverge_sig,"Loading Road")
atc_send("S8D30S5")
return
else
interrupt_pos(control_interface,"Unable to set routes")
return
end
return
end
return
end
if event.type=="int" then
if event.message=="depart" then depart() return end
return
end
\ No newline at end of file +-- Loading Road Control
info = {
line = "Maverick2797_diamonds",
rc = "autorun FREIGHT",
outside = "DURT Logs to Diamonds Conversion Train",
inside = "Cargo: Logs and Leaves\nOrigin: Auto Logging Plantation\nDestination: Icebreaker Factory",
}
accelerator_loop_diverge_sig = POS(-3602,9,-2282)
loading_exit_sig = POS(-3539,9,-2279)
control_interface = POS(-3530,8,-2267)
depart = function()
if not atc_arrow then atc_send("R") end
if can_set_route(loading_exit_sig,"Train Accelerator Loop") then
set_route(loading_exit_sig,"Train Accelerator Loop")
atc_send("SM")
set_line(info.line)
set_rc(info.rc)
atc_set_text_inside(info.inside)
atc_set_text_outside(info.outside)
return
else
interrupt(2,"depart")
return
end
end
if event.type=="ext_int" then
if not atc_id then
interrupt_pos(control_interface,"No Train at Signal")
return
elseif atc_speed ~= 0 then
interrupt_pos(control_interface,"Train Still Moving")
return
end
if event.message == "split_around" then
atc_send("I+S0B0WRS3 E S3;")
set_rc("split_around")
return
end
if event.message == "depart" then
depart()
return
end
if event.message=="shuffle" then
if can_set_route(loading_exit_sig,"Loop Around") then
set_route(loading_exit_sig,"Loop Around")
set_route(accelerator_loop_diverge_sig,"Loading Road")
atc_send("S8D30S5")
return
else
interrupt_pos(control_interface,"Unable to set routes")
return
end
return
end
return
end
if event.type=="int" then
if event.message=="depart" then depart() return end
return
end
\ No newline at end of file diff --git a/durt/nodes/(-3588,8,-2277).lua b/durt/nodes/(-3588,8,-2277).lua index 9077f3c..0858265 100644 --- a/durt/nodes/(-3588,8,-2277).lua +++ b/durt/nodes/(-3588,8,-2277).lua @@ -1 +1 @@ ---train splitter track
mainline_line = "Maverick2797_diamonds"
mainline_rc = "autorun FREIGHT"
text_outside = "DURT Logs to Diamonds Conversion Train"
loading_stopper_sig = POS(-3594,9,-2277)
split_around = function()
if ((atc_speed==0) and can_set_route(loading_stopper_sig,"Shunt Around Via Loop")) then
split_at_index(2,"")
atc_send("S4")
set_route(loading_stopper_sig,"Shunt Around Via Loop")
return
else
interrupt(2,"split_around")
return
end
end
if event.train then
if not atc_arrow then atc_send("B1S1") return end
if get_rc() == "split_around" then
atc_send("B0")
split_around()
return
else --rejoined from splitting or arriving train
atc_send("S0WRS1")
set_line(mainline_line)
set_rc(mainline_rc)
atc_set_text_outside(text_outside)
atc_set_text_inside("Loading Cargo")
return
end
end
if event.type=="int" then
if event.message=="split_around" then split_around() return end
return
end
\ No newline at end of file +--train splitter track
mainline_line = "Maverick2797_diamonds"
mainline_rc = "autorun FREIGHT"
text_outside = "DURT Logs to Diamonds Conversion Train"
loading_stopper_sig = POS(-3594,9,-2277)
split_around = function()
if ((atc_speed==0) and can_set_route(loading_stopper_sig,"Shunt Around Via Loop")) then
split_at_index(2,"")
atc_send("S4")
set_route(loading_stopper_sig,"Shunt Around Via Loop")
return
else
interrupt(2,"split_around")
return
end
end
if event.train then
if not atc_arrow then atc_send("B1S1") return end
if get_rc() == "split_around" then
atc_send("B0")
split_around()
return
else --rejoined from splitting or arriving train
atc_send("B0S0WD2RS1")
set_line(mainline_line)
set_rc(mainline_rc)
atc_set_text_outside(text_outside)
atc_set_text_inside("Loading Cargo")
return
end
end
if event.type=="int" then
if event.message=="split_around" then split_around() return end
return
end
\ No newline at end of file diff --git a/durt/nodes/(-73,2,-1984).lua b/durt/nodes/(-73,2,-1984).lua index 569eab1..8c67c6d 100644 --- a/durt/nodes/(-73,2,-1984).lua +++ b/durt/nodes/(-73,2,-1984).lua @@ -1,2 +1,2 @@ -F.set_desto("E", 21) +F.set_desto("E", "U21") F.station("Dbl", "E")
\ No newline at end of file diff --git a/durt/nodes/(430,17,19).lua b/durt/nodes/(430,17,19).lua new file mode 100644 index 0000000..ed65c79 --- /dev/null +++ b/durt/nodes/(430,17,19).lua @@ -0,0 +1 @@ +local line = "S23"
if event.punch or (event.channel=="clock" and event.msg=="pulse")then
digiline_send("status_update",S.lines[line].monitoring)
end
\ No newline at end of file diff --git a/durt/nodes/(430,17,7).lua b/durt/nodes/(430,17,7).lua new file mode 100644 index 0000000..07c8260 --- /dev/null +++ b/durt/nodes/(430,17,7).lua @@ -0,0 +1 @@ +local line = "U21"
if event.punch or (event.channel=="clock" and event.msg=="pulse")then
digiline_send("status_update",S.lines[line].monitoring)
end
\ No newline at end of file diff --git a/durt/nodes/(839,6,-1864).lua b/durt/nodes/(839,6,-1864).lua index 85f60e1..6029c42 100644 --- a/durt/nodes/(839,6,-1864).lua +++ b/durt/nodes/(839,6,-1864).lua @@ -1 +1 @@ -F.terminus("Tro", "W", 21)
\ No newline at end of file +F.terminus("Tro", "W", "U21")
\ No newline at end of file |