GE Lua Documentation

Press F to search!

replaceVehicle

Definition


-- @/lua/ge/extensions/core/vehicles.lua:1797

-- called by the UI directly
local function replaceVehicle(modelName, opt, otherVeh, replaceWholeCollection)
  local state = {
    initVehCollection = initVehicleCollection(),
    vehsToReuse = {},
  }
  resetVehicleCollection(state.initVehCollection)

  local other
  if otherVeh then
    other = otherVeh
  else
    other = getPlayerVehicle(0)
  end

  local otherVehCollection, otherVehId = nil, nil
  if other then
    otherVehId = other:getID()
    otherVehCollection = M.vehIdToVehCollection[otherVehId]
  end

  if replaceWholeCollection then
    -- get all vehicles to reuse from the other vehicle collection
    for vehId, _ in pairs(otherVehCollection.vehsData) do
      table.insert(state.vehsToReuse, vehId)
    end
  else
    table.insert(state.vehsToReuse, otherVehId)
    splitVehicleCollection(otherVehId)
    removeVehicleFromCollection(otherVehId)
  end

  -- Get the config data
  opt = deepcopy(opt) or {}
  prepareConfigData(modelName, opt)

  local vehs = _replaceVehicle(modelName, opt.config, state, opt, 1)

  -- remove remaining vehicles
  for _, vehId in ipairs(state.vehsToReuse) do
    M.vehCollections[vehId] = nil
    M.vehIdToVehCollection[vehId] = nil
    local veh = getObjectByID(vehId)
    if veh then
      veh:delete()
    end
  end

  local vehCollection = deepcopy(state.initVehCollection)
  buildInitVehCollectionCache(state.initVehCollection, vehCollection)

  if type(vehs) == 'table' then
    return vehs[1], vehs
  else
    return vehs, {vehs}
  end
end

Callers

@/lua/ge/extensions/career/modules/inventory.lua
    if replaceOption == 1 then
      vehObj = core_vehicles.replaceVehicle(carModelToLoad, vehicleData)
    elseif replaceOption == 2 then
      end
      vehObj = core_vehicles.replaceVehicle(carModelToLoad, vehicleData, oldVehObj)
    else
@/lua/ge/extensions/util/precompileVehicles.lua
    log('I', logTag, string.format('Loading vehicle %s (%d/%d).', v, vehicleToLoad, #vehicles))
    core_vehicles.replaceVehicle(v, {})
end
@/lua/ge/extensions/scenario/scenarios.lua
    if playerVehicle then
      spawnedVehicle = core_vehicles.replaceVehicle(scenario.userSpawningData.model, scenario.userSpawningData.options)
    else
    if playerVehicle then
      core_vehicles.replaceVehicle(scenario.userSpawningData.model, scenario.userSpawningData.options)
      scenetree.ScenarioObjectsGroup:addObject(playerVehicle)
@/lua/ge/extensions/core/vehicles.lua
    if vehicle then
      replaceVehicle(data.model, {config = pathDefaultConfig, licenseText = data.licenseName})
    else
    if vehicle then
      replaceVehicle(M.defaultVehicleModel, {})
    else
@/lua/ge/extensions/util/calibrateESC.lua
      local oldVehicle = getPlayerVehicle(0)
      core_vehicles.replaceVehicle(vehName, {config = config})
      job.yield()
@/lua/ge/extensions/career/modules/partShopping.lua

  core_vehicles.replaceVehicle(previewVehicle.model, spawnOptions, getCurrentVehicleObj())
  core_vehicleBridge.executeAction(getCurrentVehicleObj(), 'initPartConditions', previewVehicle.partConditions, nil, nil, nil, career_modules_painting.getPrimerColor())
@/lua/ge/extensions/gameplay/garageMode.lua
  if vehicleToLoad then
    core_vehicles.replaceVehicle(unpack(vehicleToLoad))
    vehicleToLoad = nil
@/lua/ge/extensions/util/saveDynamicData.lua

      core_vehicles.replaceVehicle(vehName, {config = config})
      job.yield()
@/lua/ge/extensions/campaign/exploration.lua
    spawningPlayer = createPlayerSpawningData(vehicleData.model, vehicleData.config, vehicleData.color, vehicleData.licenseText)
    core_vehicles.replaceVehicle(spawningPlayer.model, spawningPlayer.options)
@/lua/ge/extensions/core/funstuff.lua
  if be:getPlayerVehicle(0) then
    core_vehicles.replaceVehicle(spawningOptions.model, spawningOptions.config)
  else
@/lua/ge/extensions/flowgraph/nodes/vehicle/spawnVehicle.lua
      if self.pinIn.replacePlayer.value then
        self.veh = core_vehicles.replaceVehicle(self.spawningOptions.model, self.spawningOptions)
      else
@/lua/ge/extensions/career/modules/partInventory.lua
    core_vehicle_manager.queueAdditionalVehicleData({spawnWithEngineRunning = false}, vehObjId)
    core_vehicles.replaceVehicle(carModelToLoad, vehicleData, vehicleObj)
    queueCallbackInVehicle(vehicleObj, "career_modules_partInventory.initConditionsCallback", "partCondition.initConditions(" .. serialize(partConditions) .. ")", inventoryId)
@/lua/ge/extensions/tech/techCore.lua
      veh:setField('name', '', options.vehicleName)
      veh = core_vehicles.replaceVehicle(model, options)
      be:enterVehicle(0, cur)
      cur:setField('name', '', options.vehicleName)
      veh = core_vehicles.replaceVehicle(model, options)
    end
@/lua/ge/extensions/ui/vehicleSelector/vehicleOperations.lua
    local sanitizedOptions = sanitizeVehicleSpawnOptions(modelKey, options)
    local vehicle = core_vehicles.replaceVehicle(modelKey, sanitizedOptions)
    extensions.hook("onVehicleSelectorReplaceCurrent", modelKey, configKey, paintName1, paintName2, paintName3)
@/lua/ge/extensions/core/vehicle/partmgmt.lua
      vehicleData.config = carConfigToLoad
      core_vehicles.replaceVehicle(carModelToLoad, vehicleData)
      return true
  end
  core_vehicles.replaceVehicle(veh.JBeam, {config = filename})
end
@/lua/ge/extensions/util/screenshotCreator.lua
          if not skip then -- replace vehicle
            core_vehicles.replaceVehicle(configData.model_key, { config = configData.key, licenseText = "BeamNG"})
            yieldSec(coroutine.yield, 0.7)
                    if im.Button("Spawn##"..configData.key) then
                      core_vehicles.replaceVehicle(configData.model_key, { config = configData.key, licenseText = "BeamNG"})
                    end