aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSingularis <singularis@volny.cz>2024-12-13 08:50:15 +0100
committerorwell <orwell@bleipb.de>2025-06-17 22:43:50 +0200
commitbc3868e33465ae8d545f821266a9e4a3194cee34 (patch)
treed85c48fab181a2f571da3a1db43c40cb0cda7401
parent34324c59b70136f14efe5ebb3a442480a61c354e (diff)
downloadadvtrains-bc3868e33465ae8d545f821266a9e4a3194cee34.tar.gz
advtrains-bc3868e33465ae8d545f821266a9e4a3194cee34.tar.bz2
advtrains-bc3868e33465ae8d545f821266a9e4a3194cee34.zip
[advtrains_line_automation] přidáno tlačítko Nastavit posun na odjezd teď + uložit
- [ch_core/teleportace] přidány příkazy /stavím a /nastavbu
-rw-r--r--advtrains_line_automation/stoprail.lua20
1 files changed, 18 insertions, 2 deletions
diff --git a/advtrains_line_automation/stoprail.lua b/advtrains_line_automation/stoprail.lua
index b89032a..3989fb0 100644
--- a/advtrains_line_automation/stoprail.lua
+++ b/advtrains_line_automation/stoprail.lua
@@ -105,6 +105,7 @@ local function show_stoprailform(pos, player)
"field[4.75,6;2,0.75;routingcode;Sm.kód na odj.;"..minetest.formspec_escape(stdata.routingcode or "").."]"..
"field[0.25,7.25;2,0.75;interval;Interval \\[s\\]:;"..minetest.formspec_escape(stdata.interval or "").."]"..
"field[2.5,7.25;2,0.75;ioffset;Jeho posun:;"..minetest.formspec_escape(stdata.ioffset or "0").."]"..
+ "button[4.75,7;3,1.0;ioffsetnow;Nastavit posun\nna odjezd teď + uložit]"..
"textarea[0.25,8.4;7.5,1.5;ars;"..S("Trains stopping here (ARS rules)")..";"..advtrains.interlocking.ars_to_text(stdata.ars).."]"..
"label[0.3,10.25;Platí jen pro vlaky s]"..
"field[3,10;1,0.5;minparts;;"..minetest.formspec_escape(stdata.minparts or "0").."]"..
@@ -130,7 +131,9 @@ local function show_stoprailform(pos, player)
"následujícího intervalu. Výchozí začátky intervalů stejné délky jsou v celé železniční síti společné.\n"..
"Slouží k nastavení intervalového provozu.]"..
"tooltip[ioffset;Hodnota v sekundách 0 až (interval - 1). Posune začátek intervalů oproti výchozímu stavu\n"..
- "o zadaný počet sekund vpřed. Slouží k detailnímu vyladění času odjezdů relativně vůči ostatním linkám.]"
+ "o zadaný počet sekund vpřed. Slouží k detailnímu vyladění času odjezdů relativně vůči ostatním linkám.]"..
+ "tooltip[ioffsetnow;Nastaví posun intervalu tak\\, aby pro tuto kolej nový interval začínal právě teď.\n"..
+ "Také uloží ostatní provedené změny.]"
minetest.show_formspec(pname, "at_lines_stop_"..pe, formspec)
@@ -169,7 +172,18 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
end
- if fields.save then
+ local set_offset
+
+ if fields.ioffsetnow and fields.interval ~= "" and fields.interval ~= "0" then
+ local interval = to_int(fields.interval)
+ if 0 < interval and interval <= 3600 then
+ local rwt = assert(advtrains.lines.rwt)
+ local rwtime = rwt.to_secs(rwt.get_time())
+ set_offset = rwtime % interval
+ end
+ end
+
+ if fields.save or set_offset ~= nil then
local new_index = player_to_stn_override[pname]
if new_index ~= nil then
if new_index == 1 then
@@ -243,6 +257,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
if stdata.interval == nil then
stdata.ioffset = nil
+ elseif set_offset ~= nil then
+ stdata.ioffset = set_offset
elseif fields.ioffset then
if fields.ioffset == "" or fields.ioffset == "0" then
stdata.ioffset = nil