From 730f8bbac5b2895e9ed285f62c6409151dc8b9d1 Mon Sep 17 00:00:00 2001 From: Singularis Date: Thu, 26 Dec 2024 12:26:58 +0100 Subject: [ch_extras/colorable_pole,moreblocks] přidány tenké tyče MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - [advtrains_line_automation] přidána evidence posledních 10 jízd od každé linevar - [ch_core/shape_selector] do rozhraní přidána položka input_only - [ch_extras/colorable_grate] přidáno spojující se a vystředěné pletivo - [ch_overrides/chisel_regs] přidána podpora dláta pro: osvětlení z Home Decoru, pochodeň a okenní sklo z cottages - [ch_overrides/drawtype_groups] neviditelné cedule a neviditelné fotografie se nově spojují s tyčemi pro umožnění zvláštních efektů - [signs_road] neviditelné cedule mají nově menší výběrový box - [morelights_dim] přidána podpora dláta pro: osvětlení z morelights - [windmill] přidána podpora dláta pro kola větrných mlýnů --- advtrains_line_automation/line_functions.lua | 72 ++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) (limited to 'advtrains_line_automation/line_functions.lua') diff --git a/advtrains_line_automation/line_functions.lua b/advtrains_line_automation/line_functions.lua index 7e050be..b25182d 100644 --- a/advtrains_line_automation/line_functions.lua +++ b/advtrains_line_automation/line_functions.lua @@ -19,6 +19,16 @@ local simple_modes = { [MODE_FINAL_CONTINUE] = MODE_FINAL, } +local current_passages = {--[[ + [train_id] = {[1] = rwtime, ..., [n] = rwtime (časy *odjezdu*, kromě koncových zastávek, kde jde o čas příjezdu)} +]]} + +local last_passages = {--[[ + [linevar] = { + [1..10] = {[1] = rwtime, ...} -- jízdy seřazeny od nejstarší (1) po nejnovější (až 10) podle odjezdu z výchozí zastávky + } +]]} + local debug_print_i = 0 -- LOCAL funkce: @@ -548,6 +558,11 @@ function al.on_train_enter(pos, train_id, train, index) can_start_line = stop_def.mode == MODE_FINAL_CONTINUE debug_print("Vlak "..train_id.." skončil jízdu na lince "..ls.linevar..", může pokračovat na jinou linku: "..(can_start_line and "ihned" or "na příští zastávce")) train.text_inside = al.get_stop_description(linevar_def.stops[next_index]) + local current_passage = current_passages[train_id] + if current_passage ~= nil then + current_passage[next_index] = rwtime + current_passages[train_id] = nil + end al.cancel_linevar(train) end else @@ -629,6 +644,28 @@ function al.on_train_leave(pos, train_id, train, index) train.text_inside = "" if linevar_def ~= nil then -- linkový vlak: + debug_print("Linkový vlak "..train_id.." odjel ze zastávky s indexem "..ls.linevar_index) + if ls.linevar_index == 1 then + -- odjezd z výchozí zastávky: + local new_passage = {rwtime} + current_passages[train_id] = new_passage + local passages_by_linevar = last_passages[ls.linevar] + if passages_by_linevar == nil then + passages_by_linevar = {new_passage} + last_passages[ls.linevar] = passages_by_linevar + else + while #passages_by_linevar >= 10 do + table.remove(passages_by_linevar, 1) + end + table.insert(passages_by_linevar, new_passage) + end + else + -- odjezd z nácestné zastávky + local current_passage = current_passages[train_id] + if current_passage ~= nil then + current_passage[ls.linevar_index] = rwtime + end + end local next_stop_index, next_stop_data = al.get_next_stop(linevar_def, ls.linevar_index) if next_stop_index ~= nil then train.text_inside = al.get_stop_description(nil, next_stop_data) @@ -745,3 +782,38 @@ local def = { end, } core.register_chatcommand("vlaky", def) + + +-- DEBUG: +def = { + -- params = "", + description = "(pro ladění)", + privs = {server = true}, + func = function(player_name, param) + print("----") + for linevar, passages in pairs(last_passages) do + print("LINEVAR "..linevar..":") + local linevar_def = al.try_get_linevar_def(linevar) + if linevar_def ~= nil then + local stops = linevar_def.stops + for i, passage in ipairs(passages) do + print(" Passage #"..i..":") + for j, stop in ipairs(stops) do + local s + if passage[j] ~= nil then + s = tostring(passage[j]) + else + s = "-" + end + print(" - "..stop.stn.." = "..s.." ["..j.."]") + end + end + else + print("ERROR! definition not found") + end + end + print("----") + return true + end, +} +core.register_chatcommand("odjezdy", def) -- cgit v1.2.3