Applies the specified force to the physics object. (in Newtons)
An entity that Simulates it's own gravity by applying a force downward on the entity based on the force equation.
(Force = mass * acceleration)
Since, by default, entities already have gravity. The default gravity must be turned off by adding "phys:EnableGravity(false)" in the entities Initialize function so that the default gravity doesn't interfere with our custom gravity.
NOTE: We can get the mass of the entity by using the GetMass() function.
NOTE: -9.80665 = Approximate acceleration of objects on Earth due to gravity. (it is negative because gravity pushes things downwards)
function ENT:Initialize() self:SetModel("models/hunter/blocks/cube1x1x1.mdl") self:PhysicsInit(SOLID_VPHYSICS) self:SetSolid(SOLID_VPHYSICS) self:SetMoveType(MOVETYPE_VPHYSICS) if phys:IsValid() then phys:EnableGravity(false) -- This is required. Since we are creating our own gravity. phys:Wake() end end function ENT:PhysicsUpdate(phys) local phys = self:GetPhysicsObject() phys:ApplyForceCenter(Vector(0,0,phys:GetMass()*-9.80665)) end