GE Lua Documentation

Press F to search!

saveCheckpoint

Definition


-- @/lua/ge/extensions/core/checkpoints.lua:25

local function saveCheckpoint(vehicleId, vehicleName, cpData)
  local vehicle = getObjectByID(vehicleId)
  if not vehicle then
    log('I', logTag,'saveCheckpoint could not find vehicle: '..vehicleName)
    return
  end

  -- log('I', logTag,'saving point for '..vehicleName)

  local vehicleCheckpoints = M.state.vehicleCheckpoints
  if not vehicleCheckpoints[vehicleId] then
    vehicleCheckpoints[vehicleId] = {}
  end
  if not vehicleName then
    vehicleName = 'unnamed_'..vehicleId
  end

  vehicleCheckpoints[vehicleId].vehicleName = vehicleName
  vehicleCheckpoints[vehicleId].checkTimer = 0
  vehicleCheckpoints[vehicleId].pos = (cpData and vec3(cpData.desiredPos)) or vehicle:getPosition()
  vehicleCheckpoints[vehicleId].dirVec = (cpData and vec3(cpData.desiredDir)) or vehicle:getDirectionVector()
  vehicleCheckpoints[vehicleId].upVec =  vehicle:getDirectionVectorUp()
  vehicleCheckpoints[vehicleId].currentWpName =  cpData and cpData.currentWpName
  vehicleCheckpoints[vehicleId].currentWpIndex =  cpData and cpData.currentWpIndex
  vehicleCheckpoints[vehicleId].nextWpIndex =  cpData and cpData.nextWpIndex

  -- dump(vehicleCheckpoints[vehicleId])
end

Callers

@/lua/ge/extensions/core/checkpoints.lua
    local vehName = vehicle:getField('name', '')
    saveCheckpoint(vehicleId, vehName)
    state.vehicleCheckpoints[vehicleId].initialPos = state.vehicleCheckpoints[vehicleId].pos
  cpData.nextWpIndex = data.next
  saveCheckpoint(data.vehicleId, data.vehicleName, cpData)
@/lua/ge/extensions/campaign/exploration.lua
    local vehicle = getObjectByID(vid)
    core_checkpoints.saveCheckpoint(vid, vehicle:getField('name', ''), lastRampTriggerPos)
    log('I', logTag, 'Set checkpoint to ramp: ' .. data.rampName)