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