aboutsummaryrefslogtreecommitdiff
path: root/advtrains_interlocking/tcb_ts_ui.lua
diff options
context:
space:
mode:
authororwell96 <orwell@bleipb.de>2018-07-21 16:31:00 +0200
committerorwell96 <orwell@bleipb.de>2018-07-21 16:31:00 +0200
commitc34794e8a1a28826a7e8443b46fa76e0de238978 (patch)
treec4b424764498f14dad06640607e557280f715c7c /advtrains_interlocking/tcb_ts_ui.lua
parent5fc5eb9c2abd1cc30277cfda953b4696274ecd31 (diff)
downloadadvtrains-c34794e8a1a28826a7e8443b46fa76e0de238978.tar.gz
advtrains-c34794e8a1a28826a7e8443b46fa76e0de238978.tar.bz2
advtrains-c34794e8a1a28826a7e8443b46fa76e0de238978.zip
Implement routesetting
Missing things: signal aspect updating, waiting routes handling, management /info tool
Diffstat (limited to 'advtrains_interlocking/tcb_ts_ui.lua')
-rw-r--r--advtrains_interlocking/tcb_ts_ui.lua25
1 files changed, 20 insertions, 5 deletions
diff --git a/advtrains_interlocking/tcb_ts_ui.lua b/advtrains_interlocking/tcb_ts_ui.lua
index 8745626..e35e5b9 100644
--- a/advtrains_interlocking/tcb_ts_ui.lua
+++ b/advtrains_interlocking/tcb_ts_ui.lua
@@ -457,12 +457,12 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte)
form = form.."label[0.5,2.5;A route is requested from this signal:]"
form = form.."label[0.5,3.0;"..rte.name.."]"
if tcbs.route_committed then
- form = form.."label[0.5,2.5;Route has been set.]"
+ form = form.."label[0.5,3.5;Route has been set.]"
else
- form = form.."label[0.5,2.5;Waiting for route to be set...]"
+ form = form.."label[0.5,3.5;Waiting for route to be set...]"
end
- form = form.."button[0.5,6.5;1,6;cancelroute;Cancel Route]"
+ form = form.."button[0.5,6; 5,1;cancelroute;Cancel Route]"
else
local strtab = {}
for idx, route in ipairs(tcbs.routes) do
@@ -515,7 +515,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
tcbs.signal_name = fields.name
end
if tcbs.routeset and fields.cancelroute then
- --TODO
+ -- if route committed, cancel route ts info
+ if tcbs.route_committed then
+ advtrains.interlocking.route.cancel_route_from(sigd)
+ end
+ -- then clear own routeset state
+ --TODO callbacks
+ tcbs.routeset = nil
+ tcbs.route_committed = nil
end
if not tcbs.routeset then
if fields.newroute then
@@ -525,7 +532,15 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
if sel_rte and tcbs.routes[sel_rte] then
if fields.setroute then
- --TODO
+ tcbs.routeset = sel_rte
+ local succ, rsn = advtrains.interlocking.route.set_route(sigd, tcbs.routes[sel_rte])
+ if not succ then
+ atwarn("Setting route failed:")
+ atwarn(rsn)
+ tcbs.routeset = nil
+ else
+ tcbs.route_committed = true
+ end
end
if fields.dsproute then
local t = os.clock()