hookLift = {}; function hookLift.prerequisitesPresent(specializations) return true; end; function hookLift:preLoad(savegame) self.canBeGrabbed = hookLift.canBeGrabbed; end; function hookLift:load(savegame) end; function hookLift:postLoad(savegame) end; function hookLift.readStream(self, streamId, connection) end; function hookLift.writeStream(self, streamId, connection) end; function hookLift:delete() end; function hookLift:mouseEvent(posX, posY, isDown, isUp, button) end; function hookLift:keyEvent(unicode, sym, modifier, isDown) end; function hookLift:update(dt) end; function hookLift:updateTick(dt) end; function hookLift:draw() end; function hookLift:canBeGrabbed() return true; end; function Player:pickUpObjectRaycastCallback(hitObjectId, x, y, z, distance) if distance > 0.5 and distance <= Player.MAX_PICKABLE_OBJECT_DISTANCE then if hitObjectId ~= g_currentMission.terrainDetailId and Player.PICKED_UP_OBJECTS[hitObjectId] ~= true then if getRigidBodyType(hitObjectId) == "Dynamic" then local object = g_currentMission:getNodeObject(hitObjectId); if (object ~= nil and object.dynamicMountObject == nil) or g_currentMission.nodeToVehicle[hitObjectId] == nil or (g_currentMission.nodeToVehicle[hitObjectId].canBeGrabbed ~= nil and g_currentMission.nodeToVehicle[hitObjectId]:canBeGrabbed()) then self.lastFoundObject = hitObjectId; self.lastFoundObjectMass = getMass(hitObjectId); self.lastFoundObjectHitPoint = {x, y, z}; return false; end; end; end; end; return true; end;