aboutsummaryrefslogtreecommitdiff
path: root/advtrains_line_automation/structs.md
blob: 1fedcf96d6521b864aec1e838bd31436363d72d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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,

        -- 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,

            -- LINE (první část názvu)
            line = 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,

            -- 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,

                    -- 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,
                }...
            }
        }
    }
}

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
    }
]]}