diff options
author | orwell <orwell@bleipb.de> | 2025-06-24 22:58:02 +0200 |
---|---|---|
committer | orwell <orwell@bleipb.de> | 2025-06-24 22:58:02 +0200 |
commit | 0d1ddb0feb549afbc2e020efb9646f216721a7b8 (patch) | |
tree | 8f570a717bb132db1fcd57a8ca7f024bc7f1d934 /advtrains_interlocking | |
parent | 570acb67c2aea20ce46251e67f394a1e6114dcfb (diff) | |
download | advtrains-0d1ddb0feb549afbc2e020efb9646f216721a7b8.tar.gz advtrains-0d1ddb0feb549afbc2e020efb9646f216721a7b8.tar.bz2 advtrains-0d1ddb0feb549afbc2e020efb9646f216721a7b8.zip |
Diffstat (limited to 'advtrains_interlocking')
-rw-r--r-- | advtrains_interlocking/route_prog.lua | 15 | ||||
-rw-r--r-- | advtrains_interlocking/route_ui.lua | 9 |
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 |