76 lines
2.5 KiB
Lua

--[[ Copyright (c) 2017 Optera
* Part of Logistics Train Network
*
* See LICENSE.md in the project directory for license information.
--]]
MOD_NAME = "LogisticTrainNetwork"
ISDEPOT = "ltn-depot"
DEPOT_PRIORITY = "ltn-depot-priority"
NETWORKID = "ltn-network-id"
MINTRAINLENGTH = "ltn-min-train-length"
MAXTRAINLENGTH = "ltn-max-train-length"
MAXTRAINS = "ltn-max-trains"
REQUESTED_THRESHOLD = "ltn-requester-threshold"
REQUESTED_STACK_THRESHOLD = "ltn-requester-stack-threshold"
REQUESTED_PRIORITY = "ltn-requester-priority"
NOWARN = "ltn-disable-warnings"
PROVIDED_THRESHOLD = "ltn-provider-threshold"
PROVIDED_STACK_THRESHOLD = "ltn-provider-stack-threshold"
PROVIDED_PRIORITY = "ltn-provider-priority"
LOCKEDSLOTS = "ltn-locked-slots"
ControlSignals = {
[ISDEPOT] = {type="virtual", name=ISDEPOT},
[DEPOT_PRIORITY] = {type="virtual", name=DEPOT_PRIORITY},
[NETWORKID] = {type="virtual", name=NETWORKID},
[MINTRAINLENGTH] = {type="virtual", name=MINTRAINLENGTH},
[MAXTRAINLENGTH] = {type="virtual", name=MAXTRAINLENGTH},
[MAXTRAINS] = {type="virtual", name=MAXTRAINS},
[REQUESTED_THRESHOLD] = {type="virtual", name=REQUESTED_THRESHOLD},
[REQUESTED_STACK_THRESHOLD] = {type="virtual", name=REQUESTED_STACK_THRESHOLD},
[REQUESTED_PRIORITY] = {type="virtual", name=REQUESTED_PRIORITY},
[NOWARN] = {type="virtual", name=NOWARN},
[PROVIDED_THRESHOLD] = {type="virtual", name=PROVIDED_THRESHOLD},
[PROVIDED_STACK_THRESHOLD] = {type="virtual", name=PROVIDED_STACK_THRESHOLD},
[PROVIDED_PRIORITY] = {type="virtual", name=PROVIDED_PRIORITY},
[LOCKEDSLOTS] = {type="virtual", name=LOCKEDSLOTS},
}
ltn_stop_entity_names = { -- ltn stop entity.name with I/O entity offset away from tracks in tiles
["logistic-train-stop"] = 0,
["ltn-port"] = 1,
}
ltn_stop_input = "logistic-train-stop-input"
ltn_stop_output = "logistic-train-stop-output"
ltn_stop_output_controller = "logistic-train-stop-lamp-control"
ErrorCodes = {
[-1] = "white", -- not initialized
[1] = "red", -- short circuit / disabled
[2] = "pink", -- duplicate stop name
}
ColorLookup = {
red = "signal-red",
green = "signal-green",
blue = "signal-blue",
yellow = "signal-yellow",
pink = "signal-pink",
cyan = "signal-cyan",
white = "signal-white",
grey = "signal-grey",
black = "signal-black"
}
-- cache often used strings and functions
format = string.format
match = string.match
match_string = "([^,]+),([^,]+)"
btest = bit32.btest
band = bit32.band
min = math.min
ceil = math.ceil
sort = table.sort