GE Lua Documentation

Press F to search!

loadSignals

Definition


-- @/lua/ge/extensions/core/trafficSignals.lua:1426

local function loadSignals(filePath) -- loads signals json file from given file path or default file path
  if not filePath then -- auto load signals, if they exist
    local levelDir = path.split(getMissionFilename()) or ''
    filePath = levelDir..'signals.json'
  end

  loadControllerDefinitions() -- auto load controller definitions, if they exist

  if FS:fileExists(filePath) then
    local data = jsonReadFile(filePath)
    if data then
      data.instances = data.instances or {}
      for i, v in ipairs(data.instances) do
        local new = SignalInstance:new()
        new:onDeserialized(v)
        data.instances[i] = new
      end
      data.controllers = data.controllers or {}
      for i, v in ipairs(data.controllers) do
        local new = SignalController:new()
        new:onDeserialized(v)
        data.controllers[i] = new
      end
      data.sequences = data.sequences or {}
      for i, v in ipairs(data.sequences) do
        local new = SignalSequence:new()
        new:onDeserialized(v)
        data.sequences[i] = new
      end

      setupSignals(data)
      log('I', logTag, string.format('Traffic signals loaded (%d instances, %d controllers, %d sequences)', #data.instances, #data.controllers, #data.sequences))

      return true
    end
  end

  return false
end

Callers

@/lua/ge/extensions/core/trafficSignals.lua
local function onClientStartMission()
  loadSignals()
end
@/lua/ge/extensions/editor/trafficManager.lua
  if fullReset then
    core_trafficSignals.loadSignals() -- loads original signals of map
    core_trafficSignals.setActive(true, true)
    if data.signals then
      core_trafficSignals.loadSignals() -- load original signals, if applicable
      core_trafficSignals.setActive(true, true) -- this is required to actually run the signals simulation
    else
      core_trafficSignals.loadSignals() -- attempt to load original traffic signals
    end
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/fileTrafficSignals.lua
  if core_trafficSignals then
    core_trafficSignals.loadSignals() -- reload default signals file for the map
  end
    if file then
      core_trafficSignals.loadSignals(file)
    elseif self.data.useDefaultFileFromLevel then
    elseif self.data.useDefaultFileFromLevel then
      core_trafficSignals.loadSignals()
    end