spawnGroup
Definition
-- @/lua/ge/extensions/core/multiSpawn.lua:751
local function spawnGroup(group, amount, options) -- spawns a given vehicle group
if not amount or amount <= 0 then
log('W', logTag, 'Spawn amount is zero!')
return
end
if spawningBusy then
table.insert(queue, {group, amount, options})
log('I', logTag, 'Added vehicle group to queue, it will spawn when ready')
return
end
if not group or not group[1] then
log('W', logTag, 'Could not parse vehicle group data, now creating default group...')
group = createGroup()
end
options = options or {}
options.name = options.name or 'custom' -- group name
options.mode = options.mode or 'roadAhead' -- vehicle spawning method
options.gap = options.gap or 15 -- spacing between spawn positions
if options.randomPaints then
for _, v in ipairs(group) do
local modelData = core_vehicles.getModel(v.model or '')
local configData = modelData.configs and modelData.configs[v.config or '']
if configData then
local configType = configData['Config Type']
if not configType or configType == 'Factory' then -- only use random paints for factory or unknown configs
v.randomPaints = true
end
else
v.randomPaints = true
end
end
end
if options.shuffle then -- randomize group order
group = arrayShuffle(deepcopy(group))
end
spawningBusy = true
log('I', logTag, string.format('Spawning vehicle group with %d vehicles: %s', amount, options.name or ''))
return spawnProcessedGroup(setVehicleSpawnData(group, amount), options) -- returns unique group id
end
Callers
@/lua/ge/extensions/core/multiSpawn.lua
table.remove(queue, 1)
M.spawnGroup(unpack(args))
end
log('W', logTag, 'This function is deprecated, please use function: spawnGroup')
return spawnGroup(createGroup(), amount, {shuffle = shuffle, mode = spawnMode, gap = spawnGap})
end
@/lua/ge/extensions/editor/trafficManager.lua
core_multiSpawn.spawnGroup(vehGroup, options.vehicleMulti[0], spawnOptions)
end
@/lua/ge/extensions/util/stepHandler.lua
local group = core_multiSpawn.createGroup(step.options.amount, step.options.generator)
step.groupId = core_multiSpawn.spawnGroup(group, step.options.amount, {name = group.name, shuffle = true, mode = "traffic"})
step.waitForVehicleGroup = true
@/lua/ge/extensions/gameplay/traffic.lua
return core_multiSpawn.spawnGroup(groupData, amount, {name = 'autoTraffic', mode = options.mode or 'traffic', gap = options.gap or 20, pos = options.pos, dir = options.dir,
ignoreJobSystem = not auxiliaryData.worldLoaded, ignoreAdjust = not auxiliaryData.worldLoaded, randomPaints = true})
@/ui/modules/apps/Traffic/app.js
this.spawn = function () {
bngApi.engineLua(`extensions.core_multiSpawn.spawnGroup(extensions.gameplay_traffic_trafficUtils.createTrafficGroup(20), ${bngApi.serializeToLua(this.amount)})`)
}
@/lua/ge/extensions/gameplay/parking.lua
core_multiSpawn.spawnGroup(group, amount, {name = "autoParking", mode = "roadBehind", gap = 50, customTransforms = transforms, instant = not worldLoaded,
ignoreAdjust = not worldLoaded, randomPaints = true})
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficSpawnGroup.lua
self.groupId = core_multiSpawn.spawnGroup(group.data, quantity, options)
self.state = 1
@/lua/ge/extensions/editor/multiSpawnManager.lua
local function spawnGroup() -- spawns the current vehicle group into the world
im.TextUnformatted("Spawn Group")
if spawnState == 1 then
core_multiSpawn.spawnGroup(tempGroup, imValues.amount[0], {name = options.groupKey, shuffle = imValues.shuffle[0], mode = options.spawnMode, gap = imValues.spawnGap[0]})
tempGroup = nil
im.Separator()
spawnGroup()
else