GE Lua Documentation

Press F to search!

spawnProcessedGroup

Definition


-- @/lua/ge/extensions/core/multiSpawn.lua:569

local function spawnProcessedGroup(spawnData, spawnOptions) -- sets the spawn points of multiple vehicles
  if not scenetree.MissionGroup then
    log('W', logTag, 'MissionGroup does not exist!')
    return
  end

  if not spawnData or not next(spawnData) then
    log('W', logTag, 'Vehicle spawn options array is empty!')
    return
  end

  if spawnOptions.mode == 'road' then spawnOptions.mode = 'roadAhead' end
  if spawnOptions.mode == 'lineAbove' then spawnOptions.cling = false end

  local transformData
  if spawnOptions and type(spawnOptions.customTransforms) == 'table' and #spawnOptions.customTransforms >= #spawnData then
    transformData = spawnOptions.customTransforms
  else
    transformData = createSpawnPositions(#spawnData, spawnOptions)
  end

  for i, v in ipairs(spawnData) do
    v.cling = spawnOptions.cling
    v.autoEnterVehicle = false
    v.pos = transformData[i].pos
    v.rot = transformData[i].rot
    spawnData[i] = sanitizeVehicleSpawnOptions(v.model, spawnData[i])
    spawnData[i].visibilityPoint = nil
    spawnData[i].removeTraffic = false
    spawnData[i].centeredPosition = not spawnOptions.ignoreAdjust and true or false
  end

  groupId = getNewId()

  -- NOTE: if ignoring the job system, the vehicles will spawn before the group id is able to be returned from this function!
  if not spawnOptions.instant then
    extensions.core_jobsystem.create(workSpawnVehicles, 0.5, spawnData, spawnOptions)
  else
    workSpawnVehicles(nil, spawnData, spawnOptions)
  end
  return groupId
end

Callers

@/lua/ge/extensions/core/multiSpawn.lua
  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