aboutsummaryrefslogtreecommitdiff
path: root/advtrains_interlocking/tcb_ts_ui.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains_interlocking/tcb_ts_ui.lua')
-rwxr-xr-xadvtrains_interlocking/tcb_ts_ui.lua15
1 files changed, 14 insertions, 1 deletions
diff --git a/advtrains_interlocking/tcb_ts_ui.lua b/advtrains_interlocking/tcb_ts_ui.lua
index 2425bf2..f00016b 100755
--- a/advtrains_interlocking/tcb_ts_ui.lua
+++ b/advtrains_interlocking/tcb_ts_ui.lua
@@ -608,7 +608,7 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, calle
if not tcbs.signal_name then tcbs.signal_name = "Signal at "..minetest.pos_to_string(sigd.p) end
if not tcbs.routes then tcbs.routes = {} end
- local form = "size[7,10]label[0.5,0.5;Signal at "..minetest.pos_to_string(sigd.p).."]"
+ local form = "size[7,11.5]label[0.5,0.5;Signal at "..minetest.pos_to_string(sigd.p).."]"
form = form.."field[0.8,1.5;5.2,1;name;Signal name;"..minetest.formspec_escape(tcbs.signal_name).."]"
form = form.."button[5.5,1.2;1,1;setname;Set]"
@@ -675,6 +675,8 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, calle
else
form = form.."button[0.5,9;2.5,1;arsdisable;Disable ARS]"
end
+ form = form.."checkbox[0.5,10;dstsignal;Enable distant signalling;"..(tcbs.distant_mode~=nil and "true" or "false").."]"
+ form = form.."checkbox[0.5,10.5;dstsetroute;Set route for the next signal;"..(tcbs.distant_mode and "true" or "false").."]"
elseif sigd_equal(tcbs.route_origin, sigd) then
-- something has gone wrong: tcbs.routeset should have been set...
form = form.."label[0.5,2.5;Inconsistent state: route_origin is same TCBS but no route set. Try again.]"
@@ -804,6 +806,17 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if fields.noauto then
tcbs.route_auto = false
end
+
+ if fields.dstsignal then
+ if minetest.is_yes(fields.dstsignal) then
+ tcbs.distant_mode = false
+ else
+ tcbs.distant_mode = nil
+ end
+ end
+ if fields.dstsetroute then
+ tcbs.distant_mode = not tcbs.distant_mode
+ end
advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, true)
return