GE Lua Documentation

Press F to search!

onClientStartMission

Definition


-- @/lua/ge/extensions/scenario/scenarios.lua:945

-- this function is called when the level that the scenario needs loaded successfully
local function onClientStartMission(levelPath)
  -- cleanup any remaining scenario objects by deleting the whole group
  -- cleanup needs to happen here not on endmission as they are not called in the correct order
  --log('D', logTag, 'executing TS: ' .. ts)
  if(scenetree.ScenarioObjectsGroup) then scenetree.ScenarioObjectsGroup:delete() end
  spawn.preventPlayerSpawning = nil
  if scenario == nil then
    --log('D', logTag, 'no scenario loaded')
    return
  end


  core_environment.reset_init()
  inputActionFilter.clear(0)


  log('D', logTag, 'Starting scenario : '..tostring(translateLanguage(scenario.name, scenario.name)))
  log('D', logTag, 'Scenario path : '..tostring(scenario.sourceFile))

  -- create the special simgroup where we put all objects of the scenario in
  --log('D', logTag, 'executing TS: ' .. ts)
  --TODO need to change player delete() for carrier mode
  if(scenetree.thePlayer) then scenetree.thePlayer:delete() end
  local ScenarioObjectsGroup = createObject('SimGroup')
  if not ScenarioObjectsGroup then
    log('E', logTag, 'ScenarioObjectsGroup not existing')
    return
  end

  local MissionGroup = scenetree.MissionGroup
  if not MissionGroup then
    log('E', logTag, 'MissionGroup not existing')
    return
  end

  ScenarioObjectsGroup:registerObject('ScenarioObjectsGroup')
  ScenarioObjectsGroup.canSave = false
  MissionGroup:addObject(ScenarioObjectsGroup.obj)

  -- spawn the prefabs of the scenario
  log('D', logTag, 'spawning prefabs ...')
  for i, filename in ipairs(scenario.prefabs) do
    local _, objNameNew, _ = path.splitWithoutExt(filename, ".prefab.json")
    local _, objNameOld, _ = path.splitWithoutExt(filename, ".prefab")
    local objName = string.lower(objNameNew or objNameOld)
    if not scenetree.findObject(objName) then
      local prefabObj = spawnPrefab(objName, filename, '0 0 0', '0 0 1 0', '1 1 1')
      ScenarioObjectsGroup:addObject(prefabObj.obj)
    else
      log('E', logTag, 'Prefab: '..objName..' already exist in level. Rejecting loading of duplicate.')
    end
  end

  -- TODO(AK): this is only here to fix http://home/redmine/issues/2863 - [QA] Prefab loose collisions on campaign mode
  -- We do not ultimately want this here. This should be part of the flow and not in a callback.
  be:physicsStartSimulation()

  -- Spawn any user selected vehicles
  if scenario.userSelectedVehicle then

    local model = scenario.userSelectedVehicle.model
    local config = scenario.userSelectedVehicle.config
    if scenario.userSelectedVehicle.color then
      scenario.userSelectedVehicle.color = validateVehicleDataColor(scenario.userSelectedVehicle.color)
    end
    local color = scenario.userSelectedVehicle.color
    local licenseText = scenario.userSelectedVehicle.licenseText
    scenario.userSpawningData = createPlayerSpawningData(model, config, color, licenseText)
    local spawnedVehicle = nil
    local playerVehicle = getPlayerVehicle(0)
    if playerVehicle then
      spawnedVehicle = core_vehicles.replaceVehicle(scenario.userSpawningData.model, scenario.userSpawningData.options)
    else
      spawnedVehicle = core_vehicles.spawnNewVehicle(scenario.userSpawningData.model, scenario.userSpawningData.options)
    end
    if spawnedVehicle then
      scenario.userSelectedVehicle.returnedVehicleId = spawnedVehicle:getID()
    end
  end

  extensions.hook('onLoadCustomPrefabs', scenario)

  changeState('pre-start')
end

Callers

@/lua/ge/extensions/editor/camPathEditor.lua

local function onClientStartMission()
  selectPath(nil)
@/lua/ge/extensions/career/modules/delivery/general.lua

local function onClientStartMission(levelPath)
  loadSaveData()
@/lua/ge/extensions/util/trackBuilder/quickraceSetup.lua

local function onClientStartMission()
  done = false
@/lua/ge/extensions/freeroam/crashCamMode.lua

local function onClientStartMission()
  if isStateFreeroam() then
@/lua/ge/extensions/core/environment.lua

local function onClientStartMission(levelPath)
  local levelInfo = getObject("LevelInfo")
@/lua/ge/extensions/gameplay/traffic.lua

local function onClientStartMission()
  if state == 'off' then
@/lua/ge/extensions/util/precompileVehicles.lua

local function onClientStartMission()
    vehicleToLoad = 1
@/lua/ge/extensions/flowgraph/nodes/scene/idByName.lua

function C:onClientStartMission()
  self.objID = nil
@/lua/ge/extensions/campaign/exploration.lua

local function onClientStartMission(levelPath)
  -- Disclaimer message for campaign mode.
@/lua/ge/extensions/core/hotlapping.lua
-- resets the app on level load
local function onClientStartMission()
  M.stopHotlapping()
@/lua/ge/extensions/gameplay/garageMode.lua

local function onClientStartMission(levelPath)
  if vehicleToLoad then
@/lua/ge/extensions/gameplay/parking.lua

local function onClientStartMission()
  if not sites then
@/lua/ge/extensions/core/recoveryPrompt.lua

local function onClientStartMission(levelPath)
  if career_career.isActive() then
@/lua/ge/extensions/util/saveDynamicData.lua

local function onClientStartMission(levelPath)
  dump(levelPath)
@/lua/ge/extensions/editor/levelValidator.lua

local function onClientStartMission()
  terrainSize = nil
@/lua/ge/extensions/career/modules/milestones/milestones.lua
end
local function onClientStartMission()
  notifyUnclaimedMilestonesCount()
@/lua/ge/extensions/editor/main.lua

local function onClientStartMission()
  editor.initialized = false
@/lua/ge/extensions/career/modules/playerDriving.lua

local function onClientStartMission()
  setupTraffic()
@/lua/ge/extensions/freeroam/specialTriggers.lua

local function onClientStartMission()
  loadTriggers()
@/lua/ge/extensions/gameplay/walk.lua

local function onClientStartMission(levelPath)
  clearBlacklist()
@/lua/ge/extensions/freeroam/freeroam.lua

local function onClientStartMission(levelPath)
  local path, file, ext = path.splitWithoutExt(levelPath)
@/lua/ge/extensions/ui/bindingsLegend.lua

local function onClientStartMission()
end
@/lua/ge/extensions/gameplay/statistic.lua
  if data.windowOpen ~= nil then windowOpen[0] = data.windowOpen end
  if data.currentLevel then M.onClientStartMission() end
  if fileDataCareer then

local function onClientStartMission(levelPath)
  startActivity(levelPath)
@/lua/ge/extensions/career/modules/spawnPoints.lua

local function onClientStartMission()
@/lua/ge/extensions/editor/flowgraphEditor.lua

local function onClientStartMission()
  if M.requestedEditor then
@/lua/ge/extensions/freeroam/facilities/fuelPrice.lua

local function onClientStartMission(levelPath)
  if not setDisplayPrices() then
  else
    onClientStartMission(getCurrentLevelIdentifier())
  end
@/lua/ge/extensions/career/modules/fuel.lua

local function onClientStartMission(levelPath)
  setupSounds()
@/lua/ge/extensions/core/trafficSignals.lua

local function onClientStartMission()
  loadSignals()
@/lua/ge/extensions/gameplay/city.lua

local function onClientStartMission(levelPath)
  loadSites()
@/lua/ge/extensions/util/calibrateESC.lua

local function onClientStartMission(levelPath)
  if levelPath == testLevel then
@/lua/ge/extensions/freeroam/bigMapMode.lua

local function onClientStartMission(levelPath)
  setActive(false)
@/lua/ge/extensions/career/career.lua

local function onClientStartMission(levelPath)
  if careerActive then
@/lua/ge/extensions/career/modules/milestones/general.lua

local function onClientStartMission(levelPath)
  if tableIsEmpty(milestoneConfigs) then
@/lua/ge/extensions/util/precompileShaders.lua

local function onClientStartMission()
    loaded = true
@/lua/ge/extensions/core/paths.lua

local function onClientStartMission()
  local camPathFolder = (path.split(getMissionFilename()) or '') .. "camPaths"
@/lua/ge/extensions/career/modules/vehicleShopping.lua

local function onClientStartMission()
  vehiclesInShop = {}
@/lua/ge/extensions/career/modules/inventory.lua

local function onClientStartMission(levelPath)
  setupInventory()
@/lua/ge/extensions/career/modules/vehicleDeletionService.lua

local function onClientStartMission()
  table.clear(flaggedVehicles)