GE Lua Documentation

Press F to search!

getDoorsidePosRot

Definition


-- @/lua/ge/extensions/gameplay/walk.lua:55

-- returns a position near the driver's door
local function getDoorsidePosRot(veh)
  local refNodes = extensions.core_vehicle_manager.getVehicleData(veh:getId()).vdata.refNodes[0]
  local ref  = veh:getNodePosition(refNodes.ref)
  local left = veh:getNodePosition(refNodes.left)
  local carLeft = (left-ref):normalized()
  local driverNode, rightHandDrive, rightHandDoor = core_camera.getDriverData(veh)
  driverNode = driverNode or 0
  local driverPos = veh:getPosition() + veh:getNodePosition(driverNode)

  local initCorner = rightHandDoor and veh.initialNodePosBB.minExtents or veh.initialNodePosBB.maxExtents
  local initDriverPos = veh:getInitialNodePosition(driverNode)

  local driverPosOffset = initCorner.x - initDriverPos.x
  driverPosOffset = driverPosOffset + (sign(driverPosOffset) * placePlayerOffsetFromBody)

  local pos = driverPos + driverPosOffset * carLeft
  local target = veh:getPosition() + ref
  local front = (target-pos):normalized() -- look from pos towards the center
  front.z = 0

  return pos, front, up
end

Callers

@/lua/ge/extensions/gameplay/walk.lua
  if vehicle and not pos then
    local doorsidePos, front, up = getDoorsidePosRot(vehicle)
    pos = doorsidePos