diff options
Diffstat (limited to 'advtrains/signals.lua')
-rw-r--r-- | advtrains/signals.lua | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/advtrains/signals.lua b/advtrains/signals.lua index e3d75c3..35e118c 100644 --- a/advtrains/signals.lua +++ b/advtrains/signals.lua @@ -83,7 +83,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", on_rightclick=function(pos, node, player) local pname = player:get_player_name() local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos) - if sigd then + if sigd and not player:get_player_control().aux1 then advtrains.interlocking.show_signalling_form(sigd, pname) elseif advtrains.interlocking and player:get_player_control().aux1 then advtrains.interlocking.show_ip_form(pos, pname) @@ -102,6 +102,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", main_aspects = main_aspects, apply_aspect = simple_apply_aspect("advtrains:retrosignal_off"..rotation, "advtrains:retrosignal_on"..rotation), get_aspect_info = function() return aspect(r=="on") end, + route_role = "main", }, can_dig = can_dig_func, after_dig_node = after_dig_func, @@ -140,7 +141,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", on_rightclick=function(pos, node, player) local pname = player:get_player_name() local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos) - if sigd then + if sigd and not player:get_player_control().aux1 then advtrains.interlocking.show_signalling_form(sigd, pname) elseif advtrains.interlocking and player:get_player_control().aux1 then advtrains.interlocking.show_ip_form(pos, pname) @@ -153,6 +154,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", main_aspects = main_aspects, apply_aspect = simple_apply_aspect("advtrains:signal_off"..rotation, "advtrains:signal_on"..rotation), get_aspect_info = function() return aspect(r=="on") end, + route_role = "main", node_state = f.ls, node_state_map = { red = "advtrains:signal_off"..rotation, green = "advtrains:signal_on"..rotation}, node_on_switch_state = function(pos, new_node, old_state, new_state) @@ -211,7 +213,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", on_rightclick=function(pos, node, player) local pname = player:get_player_name() local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos) - if sigd then + if sigd and not player:get_player_control().aux1 then advtrains.interlocking.show_signalling_form(sigd, pname) elseif advtrains.interlocking and player:get_player_control().aux1 then advtrains.interlocking.show_ip_form(pos, pname) @@ -224,6 +226,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", main_aspects = main_aspects, apply_aspect = simple_apply_aspect("advtrains:signal_wall_"..loc.."_off", "advtrains:signal_wall_"..loc.."_on"), get_aspect_info = function() return aspect(r=="on") end, + route_role = "main", node_state = f.ls, node_state_map = { red = "advtrains:signal_wall_"..loc.."_off", green = "advtrains:signal_wall_"..loc.."_on" }, node_on_switch_state = function(pos, new_node, old_state, new_state) |