setTrafficVars
Definition
-- @/lua/ge/extensions/gameplay/traffic.lua:410
local function setTrafficVars(data, reset) -- sets various traffic variables
if reset then resetTrafficVars() end
if type(data) ~= 'table' then return end
for k, v in pairs(data) do
if k == 'aiMode' or k == 'aiDebug' or k == 'aiAware' then
data[k] = type(v) == 'string' and string.lower(v) or v
end
end
vars = tableMerge(vars, data)
for _, id in ipairs(trafficAiVehsList) do
local veh = traffic[id]
if data.aiMode then
veh:setAiMode(data.aiMode)
end
if data.aiAware or data.speedLimit or data.baseAggression then
veh:setAiParameters(data)
end
if data.spawnValue then
veh.respawn.spawnValue = data.spawnValue
auxiliaryData.dynamicSpawnDist = 0 -- resets distance scattering
end
if data.spawnDirBias then
veh.respawn.spawnDirBias = data.spawnDirBias
auxiliaryData.dynamicSpawnDir = 0 -- resets direction scattering
end
if data.aiMode then
-- here is special logic that sets or unsets roles if a different AI mode is set
-- in other words, this enables modes such as 'flee' or 'chase' to work seamlessly for all vehicles
if data.aiMode == 'traffic' and veh.roleName == 'empty' then
veh:setRole(veh._tempRole) -- restores the previous role (or auto role if no previous role was set)
veh._tempRole = nil
elseif data.aiMode ~= 'traffic' and veh.roleName ~= 'empty' then
veh._tempRole = veh.roleName
veh:setRole('empty') -- prevents role logic from changing AI mode internally
end
end
end
if data.aiDebug then
M.debugMode = data.aiDebug == 'traffic'
gameplay_traffic_trafficUtils.debugMode = M.debugMode
refreshVehicles()
end
if data.activeAmount and vehPool and state == 'on' then -- state needs to be on (not loading) for this to work
updateTrafficPool()
end
end
Callers
@/lua/ge/extensions/gameplay/traffic.lua
value = value and 'traffic' or 'off'
setTrafficVars({aiDebug = value})
end
amount = amount or math.huge
setTrafficVars({activeAmount = amount})
end
setTrafficVars({aiMode = 'traffic', activeAmount = activeAmount})
else
spawnProcess.waitForUi = true
setTrafficVars({aiMode = 'traffic', enableRandomEvents = true})
guihooks.trigger('menuHide')
mode = mode or 'traffic'
setTrafficVars({aiMode = string.lower(mode)})
end
if vars.aiMode ~= 'traffic' then -- forces vehicles to refresh their AI modes and roles
setTrafficVars({aiMode = vars.aiMode})
end
@/lua/ge/extensions/gameplay/missions/missionManager.lua
gameplay_traffic.setTrafficVars() -- resets variables
gameplay_police.setPursuitVars()
if step.activated then -- runs after the traffic step spawned traffic, or if previous traffic is used
gameplay_traffic.setTrafficVars({spawnValue = trafficSetup.respawnRate, enableRandomEvents = false})
if step.validTraffic then -- only if new traffic was created
@/lua/ge/extensions/core/quickAccess.lua
extensions.gameplay_traffic.activate()
extensions.gameplay_traffic.setTrafficVars({aiMode = "traffic", enableRandomEvents = true})
extensions.telemetry_core.startActivity("trafficEnabled")
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficParams.lua
if next(self.vars) then
gameplay_traffic.setTrafficVars(self.vars)
end
@/lua/ge/extensions/flowgraph/modules/trafficModule.lua
if self.trafficActive then
gameplay_traffic.setTrafficVars()
gameplay_police.setPursuitVars()
@/ui/modules/apps/Traffic/app.js
this.setAiMode = function () {
bngApi.engineLua(`extensions.gameplay_traffic.setTrafficVars( ${bngApi.serializeToLua({aiMode: this.aiModeOptions})} )`)
bngApi.engineLua(`extensions.hook("trackAIAllVeh", ${bngApi.serializeToLua(this.aiModeOptions)} )`)
this.setDebugMode = function () {
bngApi.engineLua(`extensions.gameplay_traffic.setTrafficVars( ${bngApi.serializeToLua({aiDebug: this.debugOptions})} )`)
}
this.setAwareMode = function () {
bngApi.engineLua(`extensions.gameplay_traffic.setTrafficVars( ${bngApi.serializeToLua({aiAware: this.awareOptions})} )`)
}
var value = !$scope.legalSpeed ? this.speedLimit / $scope.conversions[Number($scope.metric)] : -1
bngApi.engineLua(`extensions.gameplay_traffic.setTrafficVars( ${bngApi.serializeToLua({speedLimit: value})} )`)
}
this.setSpawnValue = function () {
bngApi.engineLua(`extensions.gameplay_traffic.setTrafficVars( ${bngApi.serializeToLua({spawnValue: this.spawnValue})} )`)
}
this.setAggression = function () {
bngApi.engineLua(`extensions.gameplay_traffic.setTrafficVars( ${bngApi.serializeToLua({baseAggression: this.aggression})} )`)
}
bngApi.engineLua(`extensions.gameplay_traffic.activate()`)
bngApi.engineLua(`extensions.gameplay_traffic.setTrafficVars({enableRandomEvents = true})`)
if (bngApi.engineLua(`gameplay_traffic.getNumOfTraffic()`) > 0) {
@/lua/ge/extensions/editor/trafficDebug.lua
if im.InputInt("Active Traffic Amount", var, 1) then
gameplay_traffic.setTrafficVars({activeAmount = math.max(0, var[0])})
end
if im.InputFloat("Respawn Rate", var, 0.1, nil, "%.1f") then
gameplay_traffic.setTrafficVars({spawnValue = clamp(var[0], 0, 3)})
end
if im.InputFloat("Respawn Direction Bias", var, 0.1, nil, "%.1f") then
gameplay_traffic.setTrafficVars({spawnDirBias = clamp(var[0], -1, 1)})
end
if im.InputFloat("AI Aggression", var, 0.05, nil, "%.2f") then
gameplay_traffic.setTrafficVars({baseAggression = clamp(var[0], 0.1, 2)})
end
if im.InputFloat("AI Speed Limit", var, 0.5, nil, "%.1f") then
gameplay_traffic.setTrafficVars({speedLimit = clamp(var[0], -1, 100)})
end
if im.Checkbox("AI Awareness", var) then
gameplay_traffic.setTrafficVars({aiAware = var[0] and "on" or "off"})
end
if im.Checkbox("Enable Random Events", var) then
gameplay_traffic.setTrafficVars({enableRandomEvents = var[0]})
end
@/lua/ge/extensions/util/stepHandler.lua
if step.state == 2 then
gameplay_traffic.setTrafficVars({activeAmount = step.options.active})
gameplay_traffic.activate(step.vehIds)
@/lua/ge/extensions/career/modules/playerDriving.lua
local function setTrafficVars()
-- temporary police adjustment
-- temporary police adjustment
gameplay_traffic.setTrafficVars({enableRandomEvents = false})
gameplay_police.setPursuitVars({arrestRadius = 15, evadeTime = 30})
gameplay_traffic.setupTraffic(restrict and testTrafficAmounts.traffic + extraAmount or amount + extraAmount, 0, {policeAmount = policeAmount, simpleVehs = true, autoLoadFromFile = true})
setTrafficVars()
setTrafficVars()
end