Actually allow what manual promises (setting IP on non-assigned signals)

This commit is contained in:
orwell96 2018-10-17 17:37:03 +02:00
parent 85d752df6b
commit e04d84cb4c
6 changed files with 14 additions and 5 deletions

View File

@ -69,6 +69,8 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos) local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos)
if sigd then if sigd then
advtrains.interlocking.show_signalling_form(sigd, pname) advtrains.interlocking.show_signalling_form(sigd, pname)
elseif advtrains.interlocking and player:get_player_control().aux1 then
advtrains.interlocking.show_ip_form(pos, pname)
elseif advtrains.check_turnout_signal_protection(pos, player:get_player_name()) then elseif advtrains.check_turnout_signal_protection(pos, player:get_player_name()) then
advtrains.ndb.swap_node(pos, {name = "advtrains:retrosignal_"..f.as..rotation, param2 = node.param2}, true) advtrains.ndb.swap_node(pos, {name = "advtrains:retrosignal_"..f.as..rotation, param2 = node.param2}, true)
end end
@ -124,6 +126,8 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos) local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos)
if sigd then if sigd then
advtrains.interlocking.show_signalling_form(sigd, pname) advtrains.interlocking.show_signalling_form(sigd, pname)
elseif advtrains.interlocking and player:get_player_control().aux1 then
advtrains.interlocking.show_ip_form(pos, pname)
elseif advtrains.check_turnout_signal_protection(pos, player:get_player_name()) then elseif advtrains.check_turnout_signal_protection(pos, player:get_player_name()) then
advtrains.setstate(pos, f.als, node) advtrains.setstate(pos, f.als, node)
end end
@ -190,6 +194,8 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos) local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos)
if sigd then if sigd then
advtrains.interlocking.show_signalling_form(sigd, pname) advtrains.interlocking.show_signalling_form(sigd, pname)
elseif advtrains.interlocking and player:get_player_control().aux1 then
advtrains.interlocking.show_ip_form(pos, pname)
elseif advtrains.check_turnout_signal_protection(pos, player:get_player_name()) then elseif advtrains.check_turnout_signal_protection(pos, player:get_player_name()) then
advtrains.setstate(pos, f.als, node) advtrains.setstate(pos, f.als, node)
end end

View File

@ -239,7 +239,7 @@ end
local function do_advance_route(pname, rp, sigd, tsname) local function do_advance_route(pname, rp, sigd, tsname)
table.insert(rp.route, {next = sigd, locks = rp.tmp_lcks}) table.insert(rp.route, {next = sigd, locks = rp.tmp_lcks})
rp.tmp_lcks = {} rp.tmp_lcks = {}
chat(pname, "Added track section '"..tsname.."' to the route (revert with /at_rp_back)") chat(pname, "Added track section '"..tsname.."' to the route.")
end end
local function finishrpform(pname) local function finishrpform(pname)

View File

@ -230,6 +230,9 @@ local players_assign_ip = {}
-- shows small info form for signal IP state/assignment -- shows small info form for signal IP state/assignment
-- only_notset: show only if it is not set yet (used by signal tcb assignment) -- only_notset: show only if it is not set yet (used by signal tcb assignment)
function advtrains.interlocking.show_ip_form(pos, pname, only_notset) function advtrains.interlocking.show_ip_form(pos, pname, only_notset)
if not minetest.check_player_privs(pname, "interlocking") then
return
end
local form = "size[7,5]label[0.5,0.5;Signal at "..minetest.pos_to_string(pos).."]" local form = "size[7,5]label[0.5,0.5;Signal at "..minetest.pos_to_string(pos).."]"
local pts, connid = advtrains.interlocking.db.get_ip_by_signalpos(pos) local pts, connid = advtrains.interlocking.db.get_ip_by_signalpos(pos)
if pts then if pts then

View File

@ -320,7 +320,7 @@ should the driver (if even there is one) fail to recognize the instructions.
behave as follows: behave as follows:
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize">Static signals and all red-green light signals from core advtrains that are not assigned to a TCB can be configured by <li class="itemize">Static signals and all red-green light signals from core advtrains that are not assigned to a TCB can be configured by
holding the &#8220;Sneak&#8221; key and then right-clicking the signal holding the &#8220;Use&#8221; key and then right-clicking the signal
</li> </li>
<li class="itemize">All signals that are assigned to a TCB can be configured by first right-clicking them, then selecting &#8220;Influence Point&#8221; in <li class="itemize">All signals that are assigned to a TCB can be configured by first right-clicking them, then selecting &#8220;Influence Point&#8221; in
the signalling formspec.</li></ul> the signalling formspec.</li></ul>

View File

@ -692,7 +692,7 @@ Static signals and all red-green light signals from core advtrains that
\begin_inset Quotes eld \begin_inset Quotes eld
\end_inset \end_inset
Sneak Use
\begin_inset Quotes erd \begin_inset Quotes erd
\end_inset \end_inset

View File

@ -615,8 +615,8 @@ Interlocking patterns
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
This section shows some examples on how you should set up track sections This section is supposed to show some examples on how you should set up
on certain track configurations. track sections on certain track configurations.
\end_layout \end_layout
\begin_layout Section \begin_layout Section