aboutsummaryrefslogtreecommitdiff
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)
downloadadvtrains-d6de12ded6ec4676c52882411cbb67c6d6979849.tar.gz
advtrains-d6de12ded6ec4676c52882411cbb67c6d6979849.tar.bz2
advtrains-d6de12ded6ec4676c52882411cbb67c6d6979849.zip
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)