Skip to content

arrival_tracker

Source: base/tealdef/mission/arrival_tracker.d.tl

Notes

Client of the arrival-tracker game script, which counts passengers and cargo delivered between two places.

ArrivalTracker

record global base/tealdef/mission/arrival_tracker.d.tl:3

global record ArrivalTracker

Load: local arrival_tracker = ug_require "/mission/arrival_tracker.tl"

Notes

Counts passengers and cargo that arrive by line between two places, through the ::/game_mechanics/arrival_tracker/arrivaltracker.gs game script. Used by the transport-cargo tasks.

Example

-- mission/tasks/transport_cargo/transport_cargo.tl
arrival_tracker.track(id, { cargotype = ctx.params.cargoTypeRes, to = target, from = source })
local delivered = arrival_tracker.get(id)
arrival_tracker.track(id) -- stop tracking

Functions

initStateIfEmpty(trackerState : TrackerState) : TrackerState base/tealdef/mission/arrival_tracker.d.tl:21

Call as arrival_tracker.initStateIfEmpty

Notes

Returns an empty tracker state if the given one is not initialised.

Parameter Type Description
trackerState TrackerState Current state.

Returns TrackerState: The state, or a new empty one.

Used in the base game: 4 times in 1 file

base/content/game_mechanics/game_mechanics/arrival_tracker/arrivaltracker.script.tl:80

trackerState = arrival_tracker.initStateIfEmpty(trackerState)

track(filtername : string, options? : ArrivalTracker.FilterData) base/tealdef/mission/arrival_tracker.d.tl:22

Call as arrival_tracker.track

Notes

Starts counting arrivals under a filter name, or stops and deletes it when no options are given.

Parameter Type Description
filtername string Name of the filter.
options? ArrivalTracker.FilterData What to count; nil deletes the filter.
Used in the base game: 5 times in 3 files

base/content/mission/mission/tasks/transport_cargo/transport_cargo.tl:47

arrival_tracker.track(id, { cargotype = ctx.params.cargoTypeRes, to = targetAndSource[1], from = targetAndSource[2] })
base/content/mission/mission/tasks/transport_cargo/transport_cargo_faster.tl:38
arrival_tracker.track(ctx.genericState.uid, { cargotype = ctx.params.cargoTypeRes, to = ctx.params.target })
base/content/game_mechanics/game_mechanics/arrival_tracker/arrivaltracker.script.tl:84
arrival_tracker.track(filtername, options)

get(filtertname : string) : integer base/tealdef/mission/arrival_tracker.d.tl:23

Call as arrival_tracker.get

Notes

Returns the number of arrivals counted for a filter.

Parameter Type Description
filtertname string Name of the filter.

Returns integer: Count, or nil for an unknown filter.

Used in the base game: 2 times in 2 files

base/content/mission/mission/tasks/transport_cargo/transport_cargo.tl:69

local c = arrival_tracker.get(id)
base/content/mission/mission/tasks/transport_cargo/transport_cargo_faster.tl:56
local c = arrival_tracker.get(ctx.genericState.uid)

ArrivalTracker.FilterData

record base/tealdef/mission/arrival_tracker.d.tl:5

record FilterData

Notes

What a tracking filter counts.

Used in the base game: 3 times in 2 files

base/content/mission/mission/arrival_tracker.tl:17

arrival_tracker.track = function(filtername : string, options? : ArrivalTracker.FilterData)
base/content/game_mechanics/game_mechanics/arrival_tracker/arrivaltracker.script.tl:103
trackerState.filterdata[filterName] = param.options as ArrivalTracker.FilterData

Fields

Name Type Description
to integer Destination entity (a town, a construction or the target entity); nil matches any.
from integer Source entity (for persons the source town or building, for cargo the source entity); nil matches any.
cargotype string Cargo type resource; "::/cargos/passengers/passengers.cargo" tracks persons, anything else cargo.

ArrivalTracker.TrackerState

record base/tealdef/mission/arrival_tracker.d.tl:11

record TrackerState

Notes

State of the arrival-tracker game script.

Used in the base game: 12 times in 2 files

base/content/mission/mission/arrival_tracker.tl:3

arrival_tracker.initStateIfEmpty = function(trackerState : ArrivalTracker.TrackerState) : ArrivalTracker.TrackerState
base/content/game_mechanics/game_mechanics/arrival_tracker/arrivaltracker.script.tl:36
local handlePerson = function(arrivalState : ArrivalTracker.TrackerState, simPersonEntity : Engine.Entity, filterName : string)

Fields

Name Type Description
filterdata {string : FilterData} Filter name -> filter.
data {string : integer} Filter name -> number of arrivals counted.
filters Filters Filter names by kind.

ArrivalTracker.TrackerState.Filters

record base/tealdef/mission/arrival_tracker.d.tl:12

record Filters

Notes

Filter names by kind.

Fields

Name Type Description
cargo {string : boolean} Names of cargo filters.
person {string : boolean} Names of person filters.