aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSingularis <singularis@volny.cz>2025-04-12 09:45:15 +0200
committerorwell <orwell@bleipb.de>2025-05-27 20:22:01 +0200
commited1e53a0322173b24ee67549c7ba87907682314f (patch)
treec6411b794a325763992937f2643c05642927f952
parent28bd0c88b03be784e825d3d8022f4e5b5f3bc97c (diff)
downloadadvtrains-ed1e53a0322173b24ee67549c7ba87907682314f.tar.gz
advtrains-ed1e53a0322173b24ee67549c7ba87907682314f.tar.bz2
advtrains-ed1e53a0322173b24ee67549c7ba87907682314f.zip
[mail] opraveno formátování času v oknech herní pošty
- [advtrains_line_automation] ze struktury 'linevar' odstraněna položka 'line' - [advtrains_line_automation] jízdní řády nově zobrazují název vlaku - [advtrains_line_automation] umístěný jízdní řád lze nově otevřít v neprivilegovaném režimu (Aux1+pravý klik) - [ch_time] přidána formátovací funkce ch_time.date() komptibilní s os.date()
-rw-r--r--advtrains_line_automation/line_editor.lua1
-rw-r--r--advtrains_line_automation/line_functions.lua9
-rw-r--r--advtrains_line_automation/station_announcement.lua3
-rw-r--r--advtrains_line_automation/station_editor.lua23
-rw-r--r--advtrains_line_automation/structs.md3
-rw-r--r--advtrains_line_automation/time_table.lua7
6 files changed, 30 insertions, 16 deletions
diff --git a/advtrains_line_automation/line_editor.lua b/advtrains_line_automation/line_editor.lua
index d1cab75..54f683d 100644
--- a/advtrains_line_automation/line_editor.lua
+++ b/advtrains_line_automation/line_editor.lua
@@ -517,7 +517,6 @@ local function custom_state_compile_linevar(custom_state)
custom_state.compiled_linevar = {
name = line.."/"..stops[1].stn.."/"..rc,
- line = line,
owner = ch_core.jmeno_na_prihlasovaci(owner),
stops = stops,
continue_line = "",
diff --git a/advtrains_line_automation/line_functions.lua b/advtrains_line_automation/line_functions.lua
index fa50d20..bbd4297 100644
--- a/advtrains_line_automation/line_functions.lua
+++ b/advtrains_line_automation/line_functions.lua
@@ -748,9 +748,11 @@ function al.on_train_enter(pos, train_id, train, index)
al.cancel_linevar(train)
-- vyplnit linevar_past:
if train.line ~= nil and train.line ~= "" then
+ local past_linevar = assert(linevar_def.name)
+ local past_line = al.linevar_decompose(past_linevar)
ls.linevar_past = {
- line = assert(linevar_def.line),
- linevar = assert(linevar_def.name),
+ line = assert(past_line),
+ linevar = past_linevar,
station = stn,
arrival = rwtime,
}
@@ -1276,7 +1278,8 @@ local function vlaky(param, past_trains_too)
if direction_index ~= nil then
direction = get_station_name(direction_stop.stn)
end
- local s = "("..train_id..") ["..linevar_def.line.."] směr „"..direction.."“, poloha: "..
+ local line = al.linevar_decompose(linevar_def.name)
+ local s = "("..train_id..") ["..line.."] směr „"..direction.."“, poloha: "..
get_train_position(ls, linevar_def, rwtime)
if results[train_id] ~= nil then
s = s.." ["..results[train_id].." cestující/ch]"
diff --git a/advtrains_line_automation/station_announcement.lua b/advtrains_line_automation/station_announcement.lua
index b1d3ec8..c4ee162 100644
--- a/advtrains_line_automation/station_announcement.lua
+++ b/advtrains_line_automation/station_announcement.lua
@@ -1039,7 +1039,8 @@ local function update_ann(stn, epos, signs, records, rwtime)
end
local stops = linevar_def.stops
local line = setmetatable({}, {__index = any_line})
- line.LINKA = linevar_def.line or ""
+ line.LINKA = advtrains.lines.linevar_decompose(linevar_def.name)
+ assert(line.LINKA)
if record.start ~= "" then
line.VYCHOZI = record.start
end
diff --git a/advtrains_line_automation/station_editor.lua b/advtrains_line_automation/station_editor.lua
index ca5c280..37afa92 100644
--- a/advtrains_line_automation/station_editor.lua
+++ b/advtrains_line_automation/station_editor.lua
@@ -496,6 +496,7 @@ core.register_chatcommand("zastávky", def)
target_fs = string, -- terminus name for formspec
track_fs = string, -- track info for formspec ("" if not available)
status_fs = string, -- line status for formspec (including color column)
+ train_name_fs = string, -- train name for formspec ("" if not available)
linevar_index = int, -- index of the selected station (stn) in linevar_def.stops of this linevar
}...},
stop = int,
@@ -550,6 +551,9 @@ local function jr_refresh_stops(custom_state, stn_to_select)
end
end
end
+ if index_to_select == 0 and result[1] ~= nil then
+ index_to_select = 1
+ end
custom_state.stop = index_to_select
custom_state.stops = result
custom_state.message = ""
@@ -577,6 +581,7 @@ local function get_all_linevars()
target_fs = target_fs,
track_fs = "",
status_fs = status_fs,
+ train_name_fs = F(linevar_def.train_name or ""),
linevar_index = 1,
})
end
@@ -635,6 +640,7 @@ local function get_linevars_by_filter(stn_filter, track_filter)
target_fs = target_fs,
track_fs = track_fs,
status_fs = status_fs,
+ train_name_fs = F(linevar_def.train_name or ""),
linevar_index = assert(linevar_index),
})
end
@@ -828,10 +834,12 @@ local function get_jr_formspec(custom_state)
stn_owner = (advtrains.lines.stations[custom_state.stns[custom_state.stn].stn] or {}).owner -- may be nil
end
- if ch_core.get_player_role(custom_state.player_name) == "admin" then
- access_level = "admin"
- elseif custom_state.player_name == node_owner or custom_state.player_name == stn_owner then
- access_level = "owner"
+ if not custom_state.force_unprivileged then
+ if ch_core.get_player_role(custom_state.player_name) == "admin" then
+ access_level = "admin"
+ elseif custom_state.player_name == node_owner or custom_state.player_name == stn_owner then
+ access_level = "owner"
+ end
end
if node_owner ~= nil then
@@ -888,13 +896,13 @@ local function get_jr_formspec(custom_state)
table.insert(formspec, "label[0.5,0.6;Příruční jízdní řády (všechny linky)]")
end
- table.insert(formspec, "tablecolumns[text,align=right,tooltip=linka;text,width=12,tooltip=cíl;text,tooltip=kolej;color;text,tooltip=stav]"..
+ table.insert(formspec, "tablecolumns[text,align=right,tooltip=linka;text,width=12,tooltip=cíl;text,tooltip=kolej;color,span=1;text,tooltip=stav;color,span=1;text,tooltip=jméno vlaku]"..
"table[0.5,2.25;11,5;linka;")
for i, r in ipairs(custom_state.linevars) do
if i > 1 then
table.insert(formspec, ",")
end
- table.insert(formspec, r.line_fs..","..r.target_fs..","..r.track_fs..","..r.status_fs)
+ table.insert(formspec, r.line_fs..","..r.target_fs..","..r.track_fs..","..r.status_fs..",#cccccc,"..r.train_name_fs)
end
table.insert(formspec, ifthenelse(custom_state.linevar > 0, ";"..custom_state.linevar.."]", ";]"))
table.insert(formspec, "tablecolumns[text,align=right;text;text]"..
@@ -1013,7 +1021,7 @@ local function jr_formspec_callback(custom_state, player, formname, fields)
end
end
-function advtrains.lines.show_jr_formspec(player, pos, stn, track, linevar, stop_stn)
+function advtrains.lines.show_jr_formspec(player, pos, stn, track, linevar, stop_stn, force_unprivileged)
assert(core.is_player(player))
local custom_state = {
player_name = player:get_player_name(),
@@ -1026,6 +1034,7 @@ function advtrains.lines.show_jr_formspec(player, pos, stn, track, linevar, stop
stop = 0,
stops = {},
message = "",
+ force_unprivileged = force_unprivileged,
}
if pos ~= nil then
custom_state.pos = pos
diff --git a/advtrains_line_automation/structs.md b/advtrains_line_automation/structs.md
index f5a0607..5b2c6c0 100644
--- a/advtrains_line_automation/structs.md
+++ b/advtrains_line_automation/structs.md
@@ -66,9 +66,6 @@ station = {
-- linevar (LINE/STCODE/RC)
name = string,
- -- LINE (první část názvu)
- line = string,
-
-- přihlašovací jméno postavy, která linku spravuje
owner = string,
diff --git a/advtrains_line_automation/time_table.lua b/advtrains_line_automation/time_table.lua
index 975abd3..9e4885e 100644
--- a/advtrains_line_automation/time_table.lua
+++ b/advtrains_line_automation/time_table.lua
@@ -62,7 +62,12 @@ local def = {
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
if clicker ~= nil and core.is_player(clicker) then
local meta = core.get_meta(pos)
- advtrains.lines.show_jr_formspec(clicker, pos, meta:get_string("stn"), meta:get_string("track"))
+ -- show_jr_formspec(player, pos, stn, track, linevar, stop_stn, force_unprivileged)
+ local force_unprivileged = false
+ if clicker:get_player_control().aux1 then
+ force_unprivileged = true
+ end
+ advtrains.lines.show_jr_formspec(clicker, pos, meta:get_string("stn"), meta:get_string("track"), nil, nil, force_unprivileged)
end
end,
}