GE Lua Documentation

Press F to search!

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)