GE Lua Documentation

Press F to search!

insertTraffic

Definition


-- @/lua/ge/extensions/gameplay/traffic.lua:473

local function insertTraffic(id, ignoreAi, ignoreVehPool) -- inserts a new vehicle into the traffic table
  -- ignoreAi prevents AI and respawn logic from getting applied to the given vehicle
  -- ignoreVehPool prevents the vehicle from becoming deactivated due to the vehicle pooling system (maybe needs another way to handle this)
  local obj = getObjectByID(id)

  if obj and not traffic[id] then
    traffic[id] = trafficVehicle({id = id})
    if not traffic[id] then -- traffic vehicle object creation failed
      return
    end

    if not ignoreAi then
      table.insert(trafficAiVehsList, id)
      gameplay_walk.addVehicleToBlacklist(id)

      obj:setDynDataFieldbyName('isTraffic', 0, 'true') -- this can be used by other systems to quickly check if this vehicle is only meant for traffic
      obj.playerUsable = settings.getValue('trafficEnableSwitching') and true or false

      if not vehPool then
        createTrafficPool()
      end
      if not ignoreVehPool then
        vehPool:insertVeh(id)
      end

      traffic[id]:setAiMode(obj.aiMode or vars.aiMode) -- object ai mode can overwrite traffic default ai mode
    end

    trafficIdsSorted = tableKeysSorted(traffic)
    auxiliaryData.activeChanged = true
    extensions.hook('onTrafficVehicleAdded', id)
  end
end

Callers

@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/addVehicle.lua
  if self.pinIn.vehId.value then
    self.mgr.modules.traffic:insertTraffic(self.pinIn.vehId.value)
  end
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/pursuitMode.lua
    if not gameplay_traffic.getTrafficData()[vehId] then
      gameplay_traffic.insertTraffic(vehId, vehId == be:getPlayerVehicleID(0)) -- assumes that player vehicle is not AI
    end
@/lua/ge/extensions/flowgraph/modules/trafficModule.lua

function C:insertTraffic(id)
  gameplay_traffic.insertTraffic(id)
function C:insertTraffic(id)
  gameplay_traffic.insertTraffic(id)
  self:updateTrafficState()
@/lua/ge/extensions/editor/trafficManager.lua
  if not trafficData[sessionData.id] and aiData.enableTraffic then
    gameplay_traffic.insertTraffic(sessionData.id, false, true)
    local traffic = gameplay_traffic.getTrafficData()
@/lua/ge/extensions/career/modules/playerDriving.lua
  if not career_career.tutorialEnabled and not gameplay_missions_missionManager.getForegroundMissionId() then
    gameplay_traffic.insertTraffic(be:getPlayerVehicleID(0), true) -- assumes that player vehicle is ready
    setPlayerData(be:getPlayerVehicleID(0))
@/lua/ge/extensions/gameplay/police.lua

  gameplay_traffic.insertTraffic(suspectId, suspectId == options.playerId, true) -- the third argument prevents the vehicle from becoming deactivated due to the vehicle pooling system
  local veh = gameplay_traffic.getTrafficData()[suspectId]
    for _, id in ipairs(policeIds) do
      gameplay_traffic.insertTraffic(id, id == options.playerId, true)
      veh = gameplay_traffic.getTrafficData()[id]
    if not traffic[newId] then
      gameplay_traffic.insertTraffic(newId, true)
    end
@/lua/ge/extensions/gameplay/traffic.lua
      else
        insertTraffic(id, true)
      end
      map.request(id, -1) -- force mapmgr to read map (performance optimization)
      insertTraffic(id, getObjectByID(id):isPlayerControlled())
    end
    for _, veh in pairs(data.traffic) do
      insertTraffic(veh.id, not veh.isAi)
      if traffic[veh.id] then