summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2019-07-20 18:41:40 +0200
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2019-07-20 18:41:40 +0200
commitd6de12ded6ec4676c52882411cbb67c6d6979849 (patch)
tree54e2bbd8647f425f88c868f4baecd1ccb7d73024
parent91bb555bc2c0f3f73f733d59fd703471a612e43b (diff)
Added option to modify departure speed and door delay
The door delay is the time between when the doors start closing and the train departs.
-rw-r--r--advtrains_line_automation/stoprail.lua26
1 files changed, 19 insertions, 7 deletions
diff --git a/advtrains_line_automation/stoprail.lua b/advtrains_line_automation/stoprail.lua
index e955d76..d0a8309 100644
--- a/advtrains_line_automation/stoprail.lua
+++ b/advtrains_line_automation/stoprail.lua
@@ -27,19 +27,25 @@ local function show_stoprailform(pos, player)
local stdata = advtrains.lines.stops[pe]
if not stdata then
advtrains.lines.stops[pe] = {
- stn="", track="", doors="R", wait=10, ars={default=true},
+ stn="", track="", doors="R", wait=10, ars={default=true}, ddelay=1,speed="M"
}
stdata = advtrains.lines.stops[pe]
end
local stn = advtrains.lines.stations[stdata.stn]
local stnname = stn and stn.name or ""
+ if not stdata.ddelay then
+ stdata.ddelay = 1
+ end
+ if not stdata.speed then
+ stdata.speed = "M"
+ end
local form = "size[8,7]"
- form = form.."field[0.5,1;7,1;stn;"..attrans("Station Code")..";"..minetest.formspec_escape(stdata.stn).."]"
- form = form.."field[0.5,2;7,1;stnname;"..attrans("Station Name")..";"..minetest.formspec_escape(stnname).."]"
-
-
+ form = form.."field[0.5,0.5;7,1;stn;"..attrans("Station Code")..";"..minetest.formspec_escape(stdata.stn).."]"
+ form = form.."field[0.5,1.5;7,1;stnname;"..attrans("Station Name")..";"..minetest.formspec_escape(stnname).."]"
+ form = form.."field[0.5,2.5;2,1;ddelay;"..attrans("Door Delay")..";"..minetest.formspec_escape(stdata.ddelay).."]"
+ form = form.."field[3,2.5;3,1;speed;"..attrans("Departure Speed")..";"..minetest.formspec_escape(stdata.speed).."]"
form = form.."label[0.5,3;Door side:]"
form = form.."dropdown[0.5,3;2;doors;Left,Right,Closed;"..door_dropdown[stdata.doors].."]"
form = form.."dropdown[3,3;1.5;reverse;---,Reverse;"..(stdata.reverse and 2 or 1).."]"
@@ -112,7 +118,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if fields.ars then
stdata.ars = advtrains.interlocking.text_to_ars(fields.ars)
end
-
+
+ if fields.ddelay then
+ stdata.ddelay = tonumber(fields.wait) or 1
+ end
+ if fields.speed then
+ stdata.speed = tonumber(fields.speed) or "M"
+ end
--TODO: signal
updatemeta(pos)
@@ -172,7 +184,7 @@ local adefunc = function(def, preset, suffix, rotation)
local stnname = stn and stn.name or "Unknown Station"
-- Send ATC command and set text
- advtrains.atc.train_set_command(train, "B0 W O"..stdata.doors.." D"..stdata.wait.." OC D1 "..(stdata.reverse and "R" or "").." SM", true)
+ advtrains.atc.train_set_command(train, "B0 W O"..stdata.doors.." D"..stdata.wait.." OC "..(stdata.reverse and "R" or "").."D"..(stdata.ddelay or 1) .. "S" ..(stdata.speed or "M"), true)
train.text_inside = stnname
if tonumber(stdata.wait) then
minetest.after(tonumber(stdata.wait), function() train.text_inside = "" end)