setupSignals
Definition
-- @/lua/ge/extensions/core/trafficSignals.lua:1337
local function setupSignals(data, merge) -- processes and enables the signals system; can merge with existing ones
if not be then return end
loaded = false
active = false
table.clear(instancesByName)
table.clear(controllersByName)
table.clear(sequencesByName)
table.clear(elementsById)
if data then
setupSignalObjects()
if merge then -- merges existing and new data
arrayConcat(instances, data.instances or {})
arrayConcat(controllers, data.controllers or {})
arrayConcat(sequences, data.sequences or {})
else
instances = data.instances or {}
controllers = data.controllers or {}
sequences = data.sequences or {}
end
local delInstances, delControllers, delSequences = {}, {}, {}
for i, v in ipairs(instances) do
if not elementsById[v.id] then
instancesByName[v.name] = v
elementsById[v.id] = v
else
table.insert(delInstances, i)
end
end
for i, v in ipairs(controllers) do
if not elementsById[v.id] then
controllersByName[v.name] = v
elementsById[v.id] = v
else
table.insert(delControllers, i)
end
end
for i, v in ipairs(sequences) do
if not elementsById[v.id] then
sequencesByName[v.name] = v
elementsById[v.id] = v
else
table.insert(delSequences, i)
end
end
-- remove invalid elements
for i = #delInstances, 1, -1 do
table.remove(instances, delInstances[i])
end
for i = #delControllers, 1, -1 do
table.remove(controllers, delControllers[i])
end
for i = #delSequences, 1, -1 do
table.remove(sequences, delSequences[i])
end
setActive(true)
else
table.clear(instances)
table.clear(controllers)
table.clear(sequences)
end
end
Callers
@/lua/ge/extensions/editor/trafficManager.lua
if data.instances[1] then
core_trafficSignals.setupSignals(data, options.signalsKeepOriginal[0])
core_trafficSignals.setActive(true, true)
@/lua/ge/extensions/editor/trafficSignalsEditor.lua
trafficSignals.setupSignals(getCurrentSignals())
trafficSignals.debugLevel = 2
@/lua/ge/extensions/core/trafficSignals.lua
local function resetSignals() -- clears signals
setupSignals()
end
setupSignals(data)
log('I', logTag, string.format('Traffic signals loaded (%d instances, %d controllers, %d sequences)', #data.instances, #data.controllers, #data.sequences))