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