sanitizeVehicleSpawnOptions
Definition
-- @/lua/ge/ge_utils.lua:1175
function sanitizeVehicleSpawnOptions(model, opt)
-- NOTE(AK): 09/11/2021 There is a final sanitizing on parts config data in C++ function BeamNGVehicle::spawnObject.
-- Look for comment "IMPORTANT Sanitizing the entire parts config data" in the function
local options = fillVehicleSpawnOptionDefaults(model, opt)
if options.paint then
options.paint = validateVehiclePaint(options.paint)
end
if options.paint2 then
options.paint2 = validateVehiclePaint(options.paint2)
else
options.paint2 = options.paint
end
if options.paint3 then
options.paint3 = validateVehiclePaint(options.paint3)
else
options.paint3 = options.paint
end
options.licenseText = opt.licenseText
options.vehicleName = opt.vehicleName
local playerVehicle = nil
if not options.pos or not options.rot then
playerVehicle = getPlayerVehicle(0)
end
if not options.pos then
if commands.isFreeCamera() or not playerVehicle then
options.pos = core_camera.getPosition()
else
-- Spawn the vehicle on the left of the player vehicle
local dir = vec3(playerVehicle:getDirectionVector()):normalized()
local offset = vec3(-dir.y, dir.x, 0)
local position = vec3(playerVehicle:getPosition())
options.pos = position + offset * 5
options.visibilityPoint = position
end
end
if not options.rot then
if commands.isFreeCamera() or not playerVehicle then
local camDir = core_camera.getQuat() * vec3(0,1,0)
camDir.z = 0
options.rot = quatFromDir(camDir)
else
options.rot = quatFromDir(vec3(playerVehicle:getDirectionVector()):normalized(), vec3(playerVehicle:getDirectionVectorUp()):normalized())
end
end
return options
end
Callers
@/lua/ge/extensions/flowgraph/nodes/vehicle/spawnVehicle.lua
local options = {config = config, paint = paint, licenseText = licenseText, vehicleName = name, pos = spawnPos, rot = spawnRot}
self.spawningOptions = sanitizeVehicleSpawnOptions(model, options)
--dumpz(self.spawningOptions,2)
@/lua/ge/extensions/editor/gen/exp_meshexplorer.lua
-- local pos =
local opt = sanitizeVehicleSpawnOptions('pickup',{}) --, localOptions)
lo('?? opt_POS:'..tostring(opt.pos))
opt.model = model
local options = sanitizeVehicleSpawnOptions(model, opt)
if options.cling == nil then
@/lua/ge/extensions/career/modules/inventory.lua
local options = {config = config, licenseText = "TUTORIAL", vehicleName = "TutorialVehicle", pos = pos, rot = rot}
local spawningOptions = sanitizeVehicleSpawnOptions(model, options)
spawningOptions.autoEnterVehicle = false
@/lua/ge/extensions/core/funstuff.lua
local options = {config = config}
local spawningOptions = sanitizeVehicleSpawnOptions(model.model, options)
if be:getPlayerVehicle(0) then
@/lua/ge/extensions/gameplay/discover/discover_037.lua
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
@/lua/ge/extensions/flowgraph/nodes/util/loadLevel.lua
log('D', logTag, 'Spawning with model: ' .. self.pinIn.model.value .. ' and config: ' .. self.pinIn.config.value)
spawningOptions = sanitizeVehicleSpawnOptions(self.pinIn.model.value, {config = self.pinIn.config.value})
spawningOptions = {spawningOptions.model, spawningOptions}
@/lua/ge/extensions/gameplay/discover/newPlayerExperience.lua
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
for i, veh in ipairs(vehs) do
local spawningOptions = sanitizeVehicleSpawnOptions(veh[3], {config = veh[4]})
spawningOptions.pos = veh[1]
@/lua/ge/extensions/core/multiSpawn.lua
v.rot = transformData[i].rot
spawnData[i] = sanitizeVehicleSpawnOptions(v.model, spawnData[i])
spawnData[i].visibilityPoint = nil
@/lua/ge/extensions/gameplay/drift/stuntZones/hitPole.lua
local options = {config = config, paint = nil, licenseText = nil, vehicleName = generateObjectNameForClass('BeamNGVehicle', 'object_'), pos = self.data.zoneData.pos, rot = quat(0,0,0,1)}
local spawningOptions = sanitizeVehicleSpawnOptions(model, options)
spawningOptions.autoEnterVehicle = false
@/lua/ge/extensions/gameplay/discover/discover_038.lua
scenetree.MissionGroup:add(scenetreeObject)
local spawningOptions = sanitizeVehicleSpawnOptions("unicycle", {config = "vehicles/unicycle/with_mesh.pc"})
spawningOptions.pos = vec3(-806.7416992,-325.3113098,237.535614)
@/lua/ge/extensions/core/dynamicProps.lua
local options = {vehicleName = self.propName .. i, licenseText = self.propName .. i}
local spawningOptions = sanitizeVehicleSpawnOptions(self.propName, options)
spawningOptions.autoEnterVehicle = false
@/lua/ge/extensions/gameplay/drift/stuntZones/nearPole.lua
local options = {config = config, paint = nil, licenseText = nil, vehicleName = generateObjectNameForClass('BeamNGVehicle', 'object_'), pos = self.data.zoneData.pos, rot = quat(0,0,0,1)}
local spawningOptions = sanitizeVehicleSpawnOptions(model, options)
spawningOptions.autoEnterVehicle = false
@/lua/ge/extensions/ui/vehicleSelector/vehicleOperations.lua
-- Sanitize and spawn the vehicle
local sanitizedOptions = sanitizeVehicleSpawnOptions(modelKey, options)
local vehicle = core_vehicles.spawnNewVehicle(modelKey, sanitizedOptions)
-- Sanitize and replace the vehicle
local sanitizedOptions = sanitizeVehicleSpawnOptions(modelKey, options)
local vehicle = core_vehicles.replaceVehicle(modelKey, sanitizedOptions)
@/lua/ge/extensions/gameplay/missions/missionManager.lua
end
local spawningOptions = sanitizeVehicleSpawnOptions(model, options)
spawningOptions.autoEnterVehicle = true
local options = {config = "kc6x_360_A", pos = pos}
local spawningOptions = sanitizeVehicleSpawnOptions("etkc", options)
spawningOptions.autoEnterVehicle = true
@/lua/ge/extensions/util/stepHandler.lua
local function makeStepSpawnVehicleSimple(model, config, callback)
return makeStepSpawnVehicle(sanitizeVehicleSpawnOptions(model, {config = config}), callback)
end
@/lua/ge/extensions/core/vehicles.lua
local opt = sanitizeVehicleSpawnOptions(modelName, localOptions)
local veh = spawn.spawnVehicle(modelName, opt.config, opt.pos, opt.rot, opt)
opt.licenseText = otherVeh.licenseText -- copy the current license text
local options = sanitizeVehicleSpawnOptions(model, opt)
if options.cling == nil then
local opt = sanitizeVehicleSpawnOptions(modelName, localOptions)
if modelName then
--config = sanitizeVehicleSpawnOptions(modelName, opt)
local defaultConfig = model.configs[defaultPC]
local opt = sanitizeVehicleSpawnOptions(modelName, {model = modelName, config = defaultConfig})
local paint = validateVehiclePaint(opt.paint)