aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--advtrains_interlocking/route_prog.lua15
-rw-r--r--advtrains_interlocking/route_ui.lua9
2 files changed, 20 insertions, 4 deletions
diff --git a/advtrains_interlocking/route_prog.lua b/advtrains_interlocking/route_prog.lua
index b080945..96bd211 100644
--- a/advtrains_interlocking/route_prog.lua
+++ b/advtrains_interlocking/route_prog.lua
@@ -267,6 +267,8 @@ local function finishrpform(pname)
local rp = player_rte_prog[pname]
if not rp then return end
+ rp.route.use_rscache = true
+
local form = "size[7,6]label[0.5,0.5;"..S("Finish programming route").."]"
local terminal = get_last_route_item(rp.origin, rp.route)
if terminal then
@@ -286,8 +288,8 @@ local function finishrpform(pname)
form = form .. "label[0.5,2 ;"..S("non-interlocked area").."]"
end
form = form.."field[0.8,3.5;5.2,1;name;"..S("Enter Route Name")..";]"
- form = form.."button_exit[0.5,4.5; 5,1;save;"..S("Save Route").."]"
-
+ form = form.."checkbox[0.8,4.0;use_rscache;"..S("Auto lock turnouts")..";true]"
+ form = form.."button_exit[0.5,5.0; 5,1;save;"..S("Save Route").."]"
minetest.show_formspec(pname, "at_il_routepf", form)
end
@@ -484,6 +486,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
if formname == "at_il_routepf" then
+ -- if it's the checkbox that changed handle before returning (stupid checkboxes)
+ if fields.use_rscache then
+ local rp = player_rte_prog[pname]
+ if rp then
+ rp.route.use_rscache = core.is_yes(fields.use_rscache)
+ end
+ end
if not fields.save or not fields.name then return end
if fields.name == "" then
-- show form again
@@ -507,8 +516,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local terminal = get_last_route_item(rp.origin, rp.route)
rp.route.terminal = terminal
rp.route.name = fields.name
- -- new routes now always use the rscache
- rp.route.use_rscache = true
table.insert(tcbs.routes, rp.route)
diff --git a/advtrains_interlocking/route_ui.lua b/advtrains_interlocking/route_ui.lua
index d1bae63..9ecc947 100644
--- a/advtrains_interlocking/route_ui.lua
+++ b/advtrains_interlocking/route_ui.lua
@@ -106,6 +106,8 @@ function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx)
itab(i, "E (none)", "end", nil)
end
+ itab(i, S("(More Options)"), "advanced", nil)
+
if not sel_rpartidx then sel_rpartidx = 1 end
form = form.."textlist[0.5,2;3.5,3.9;routelog;"..table.concat(tab, ",")..";"..(sel_rpartidx or 1)..";false]"
@@ -153,6 +155,10 @@ function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx)
-- checkbox for call-on
form = form..string.format("checkbox[4.5,4.0;se_callon;"..S("Call-on (section may be occupied)")..";%s]", rseg.call_on)
end
+ elseif sel_rpart and sel_rpart.advanced then
+ form = form..F.label(4.5, 2, S("Advanced Options:"))
+ -- checkbox for call-on
+ form = form..string.format("checkbox[4.5,4.0;ad_use_rscache;"..S("Auto lock turnouts")..";%s]", route.use_rscache)
elseif sel_rpart and sel_rpart.err then
form = form.."textarea[4.5,2.5;4,4;errorta;"..S("Error:")..";"..tab[sel_rpartidx].."]"
else
@@ -253,6 +259,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
return
end
end
+ if fields.ad_use_rscache then
+ route.use_rscache = minetest.is_yes(fields.ad_use_rscache)
+ end
--if fields.noautogen then
-- route.smartroute_generated = nil