diff options
author | Singularis <singularis@volny.cz> | 2025-04-12 09:45:15 +0200 |
---|---|---|
committer | orwell <orwell@bleipb.de> | 2025-05-27 20:22:01 +0200 |
commit | ed1e53a0322173b24ee67549c7ba87907682314f (patch) | |
tree | c6411b794a325763992937f2643c05642927f952 | |
parent | 28bd0c88b03be784e825d3d8022f4e5b5f3bc97c (diff) | |
download | advtrains-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.lua | 1 | ||||
-rw-r--r-- | advtrains_line_automation/line_functions.lua | 9 | ||||
-rw-r--r-- | advtrains_line_automation/station_announcement.lua | 3 | ||||
-rw-r--r-- | advtrains_line_automation/station_editor.lua | 23 | ||||
-rw-r--r-- | advtrains_line_automation/structs.md | 3 | ||||
-rw-r--r-- | advtrains_line_automation/time_table.lua | 7 |
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, } |