aboutsummaryrefslogtreecommitdiff
path: root/advtrains_line_automation/structs.md
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains_line_automation/structs.md')
-rw-r--r--advtrains_line_automation/structs.md190
1 files changed, 190 insertions, 0 deletions
diff --git a/advtrains_line_automation/structs.md b/advtrains_line_automation/structs.md
new file mode 100644
index 0000000..5b2c6c0
--- /dev/null
+++ b/advtrains_line_automation/structs.md
@@ -0,0 +1,190 @@
+Datové struktury:
+
+train = {
+ line_status = {
+ -- záznam o posledním zastavení/průjezdu vlaku neanonymní zastávkovou kolejí
+ -- (používá se jako údaj o poloze vlaku)
+ last_enter = {
+ stn = string, -- kód dopravny
+ encpos = string, -- zakódovaná pozice koleje, kde došlo ke kontaktu
+ rwtime = int, -- železniční čas
+ } or nil,
+
+ -- záznam o posledním odjezdu/průjezdu vlaku neanonymní zastávkovou kolejí
+ -- (používá se jako údaj o poloze vlaku)
+ last_leave = {
+ stn = string, -- kód dopravny
+ encpos = string, -- zakódovaná pozice koleje, kde došlo ke kontaktu
+ rwtime = int, -- železniční čas
+ } or nil,
+
+ -- pokud vlak právě stojí na zastávkové koleji, obsahuje její zakódovanou pozici;
+ -- při odjezdu se vynuluje
+ standing_at = string or nil,
+
+ -- nastaví se na 1 v případě, že "bylo dáno znamení", aby vlak zastavil
+ stop_request = 1 or nil,
+
+ -- údaje o poslední skončené jízdě na lince, dokud se nezmění číslo linky a dokud neuplyne 24 žel. hodin (cyklů)
+ -- nevyplní se, pokud vlak skončí jízdu jinak než zastavením na koncové zastávce
+ linevar_past = {
+ -- označení linky (LINE z linevar)
+ line = string,
+ -- linevar poslední jízdy na lince
+ linevar = string,
+ -- kód koncové zastávky, kde vlak skončil jízdu na lince
+ station = string,
+ -- žel. čas příjezdu na koncovou zastávku
+ arrival = int,
+ } or nil,
+
+ -- Následující pole jsou vyplněna jen u linkových vlaků:
+ -- ===========================
+ -- varianta linky LINE/STCODE/RC
+ linevar = string,
+
+ -- prostřední díl z 'linevar' (kód stanice, kde jsou uložena data varianty linky)
+ linevar_station = string,
+
+ -- skutečný železniční čas odjezdu z *výchozí* zastávky spoje
+ linevar_dep = int,
+
+ -- index zastávky spoje (do pole 'stops'), kde vlak naposledy zastavil
+ linevar_index = int,
+
+ -- skutečný železniční čas odjezdu z poslední zastávky spoje, kde vlak zastavil
+ linevar_last_dep = int,
+
+ -- kód zastávky spoje, kde vlak naposledy zastavil
+ linevar_last_stn = string,
+ }
+}
+
+station = {
+ linevars = {
+ [linevar] = {
+ -- linevar (LINE/STCODE/RC)
+ name = string,
+
+ -- přihlašovací jméno postavy, která linku spravuje
+ owner = string,
+
+ -- jméno vlaku pro zobrazení (volitelné)
+ train_name = string or nil,
+
+ -- je-li true, nové vlaky nemohou dostat tuto variantu přidělenu
+ disabled = bool or nil,
+
+ -- je-li neprázdný řetězec, udává označení linky, na kterou bude vlak pravděpodobně pokračovat
+ -- ze zastávky v režimu MODE_FINAL_CONTINUE
+ continue_line = string or nil,
+
+ -- je-li continue_line neprázdný řetězec, udává směrový kód pro pokračování
+ continue_rc = string or nil,
+
+ -- index zobrazované výchozí zastávky v poli 'stops'; nil značí, že taková zastávka nebyla nalezena
+ index_vychozi = int or nil,
+
+ -- index zobrazované cílové zastávky v poli 'stops'; nil značí, že taková zastávka nebyla nalezena
+ index_cil = int or nil,
+
+ -- seznam zastávek na lince, seřazený podle 'dep':
+ stops = {
+ {
+ -- kód dopravny, kde má vlak zastavit
+ stn = string,
+
+ -- plánovaný čas odjezdu, relativně vůči odjezdu z výchozí zastávky (v sekundách)
+ dep = int,
+
+ -- předpokládaný čas stání před časem odjezdu (používá se k zjištění času příjezdu)
+ -- je-li nil, počítá se 10 sekund
+ -- výjimka: pro koncové zastávky udává předpokládanou dobu stání po čase 'dep'
+ wait = int or nil,
+
+ -- režim zastávky (podle konstant ve zdrojovém kódu)
+ -- nil odpovídá 0 (normální zastavení)
+ mode = int or nil,
+
+ -- je-li vyplněna, vlak zastaví jen na koleji na uvedené pozici
+ pos = "X,Y,Z" or nil,
+
+ -- orientační údaj pro cestující, na které koleji má vlak zastavit
+ track = string or nil,
+ }...
+ }
+ }
+ },
+ anns = { -- staniční rozhlasy
+ [encoded_pos] = {
+ cedule = {
+ -- formát prázdné řádky pro danou ceduli
+ empty = string,
+ -- pozice připojené cedule ve tvaru pro použití ve formspecu, nebo "", pokud daná cedule není připojená
+ fs = string,
+ -- pozice připojené cedule ve formě vektoru
+ pos = vector,
+ -- formát řádky s odjezdem pro danou ceduli
+ row = string,
+ -- formát pro sestavení textu cedule z řádků; může používat značky {1} až {9} a může mít víc řádek
+ text = "{1}{2}",
+ -- seznam řádků, které jsou odkazovány v poli 'text', nebo prázdný řetězec, pokud nejsou odkazovány žádné
+ text_rtf = {int, ...} or "",
+ },
+ -- dosah zpráv v četu (>= 0, nil znamená 50):
+ chat_dosah = int or nil,
+
+ -- formát pro kladné zpoždění
+ fmt_delay = string,
+
+ -- formát pro záporné zpoždění
+ fmt_negdelay = string,
+
+ -- formát pro „bez zpoždění“
+ fmt_nodelay = string,
+
+ -- udává, zda na cedulích bude první znak každého řádku s odjezdem (textu dosazeného za značku {1} až {9})
+ -- převeden na velké písmeno:
+ fn_firstupper = bool,
+
+ -- obsah pole "koleje" zformátovaný pro použití ve formspecu; prázdný řetězec "" znamená, že st. rozhlas platí pro všechny koleje
+ -- a na .koleje pak nezáleží
+ fs_koleje = string,
+
+ -- pokud st. rozhlas není omezený na určité koleje, nil nebo ""
+ -- je-li omezen na jednu konkrétní kolej, pak jde o název této koleje
+ -- je-li omezen na více kolejí, pak jde o množinu indexovanou označeními kolejí
+ koleje = {[string] = true, ...} or string or nil,
+
+ -- vlastník/ice staničního rozhlasu
+ owner = string,
+
+ -- režim rozhlasu (RMODE_*)
+ rmode = int,
+
+ -- číslo verze systému staničního rozhlasu (pro detekci zastaralých rozhlasů)
+ version = int,
+
+ -- řetězce pro formátování hlášení v četu; nemusí být uvedeny všechny, nil znamená použít výchozí text
+ tx_* = string or nil,
+ }
+ }
+}
+
+stop = {
+ -- žel. čas posledního odjezdu jakéhokoliv zastavivšího vlaku z této zastávkové koleje;
+ -- používá se v kombinaci s intervalem
+ last_dep = int or nil,
+ -- původně naplánovaná doba stání vlaku vztahující se k last_dep
+ last_wait = int or nil,
+}
+
+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
+ }
+]]}