aboutsummaryrefslogtreecommitdiff
path: root/advtrains_line_automation/stoprail.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains_line_automation/stoprail.lua')
-rw-r--r--advtrains_line_automation/stoprail.lua13
1 files changed, 9 insertions, 4 deletions
diff --git a/advtrains_line_automation/stoprail.lua b/advtrains_line_automation/stoprail.lua
index 81f103a..77c1dce 100644
--- a/advtrains_line_automation/stoprail.lua
+++ b/advtrains_line_automation/stoprail.lua
@@ -146,7 +146,8 @@ local function show_stoprailform(pos, player)
get_stn_dropdown(player_to_stn_override[pname] or stdata.stn, pname_unless_admin)..
"field[0.5,2.6;1.5,0.8;track;"..S("Track")..";"..minetest.formspec_escape(stdata.track).."]"..
"tooltip[track;"..S("Track number, for informational purposes").."]"..
- (advtrains.lines.open_station_editor ~= nil and "button[3.5,2.3;3.7,1.1;editstn;"..S("Station Editor").."]" or "")
+ (advtrains.lines.open_station_editor ~= nil and "button[2.3,2.6;2.5,0.8;editstn;"..S("Station Editor").."]" or "")..
+ (advtrains.lines.open_line_editor ~= nil and "button[4.8,2.6;2.5,0.8;editlines;"..S("Line Editor").."]" or "")
if stdata.selector_ars then
formspec = formspec .. "textarea[7.5,1.3;4,2.1;selector_ars;"..S("Selector for stop pos (ARS)")..";"..advtrains.interlocking.ars_to_text(stdata.selector_ars).."]"..
"tooltip[selector_ars;"..S("Only trains matching these ARS rules will consider this stop rail as suitable timing point/stop position.\nAffects both timetabled and non-timetabled trains.\nExample: define a stop position for long trains (TL 30) and another for short trains (TL 0-30).").."]"..
@@ -192,7 +193,7 @@ local function show_stoprailform(pos, player)
-- TODO: interval and offset should be defined in the timetable, not here
-- build list of available linevars (it is convenient that linevars are defined in the station)
local avail_linevars = {}
- local sel_linevar = 1
+ local sel_linevar = 0
if stn and stn.linevars then
for k,_ in pairs(stn.linevars) do
table.insert(avail_linevars, k)
@@ -201,7 +202,7 @@ local function show_stoprailform(pos, player)
end
if #avail_linevars > 0 then
formspec = formspec ..
- "dropdown[6.2,6.6;3.8,0.8;tt_begin_linevar;"..table.concat(avail_linevars)..";"..(sel_linevar or 1)..",false]" -- this dropdown NOT using indexing!
+ "dropdown[6.2,6.6;3.8,0.8;tt_begin_linevar;"..table.concat(avail_linevars, ",")..";"..(sel_linevar or 0)..",false]" -- this dropdown NOT using indexing!
else
formspec = formspec .. "label[6.2,6.6;"..S("No linevars\navailable!").."]"
end
@@ -255,7 +256,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
end
- if fields.save or (fields.depmode and not fields.editstn) or fields.selector_ars_enable then -- must resend form when depmode dropdown is updated or the selector enable button is pressed)
+ if fields.save or (fields.depmode and not fields.editstn and not fields.editlines) or fields.selector_ars_enable then -- must resend form when depmode dropdown is updated or the selector enable button is pressed)
local new_index = player_to_stn_override[pname]
if new_index ~= nil then
if new_index == 1 then
@@ -343,6 +344,10 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
minetest.close_formspec(pname, formname)
minetest.after(0.25, advtrains.lines.open_station_editor, player)
return
+ elseif fields.editlines and advtrains.lines.open_line_editor ~= nil then
+ minetest.close_formspec(pname, formname)
+ minetest.after(0.25, advtrains.lines.open_line_editor, player)
+ return
end -- if fields.save
end -- if pos
end)