modules/world: put non-hitbox related physics function in baseactor

This commit is contained in:
Kazhnuz 2019-05-05 21:44:12 +02:00
parent 1e42fac57c
commit 2344bd5a9a
2 changed files with 35 additions and 23 deletions

View file

@ -36,32 +36,9 @@ function Actor2D:new(world, type, x, y, w, h, isSolid)
self:register()
end
function Actor2D:initPhysics()
self:initMovement()
self:setBounceFactor()
self:initGravity()
self:setFilter()
end
function Actor2D:setBounceFactor(newBounceFactor)
self.bounceFactor = newBounceFactor or 0
end
-- MOVEMENT FUNCTIONS
-- Basic functions from the movement.
function Actor2D:setFilter()
-- Init the bump filter
self.filter = function(item, other)
if (other.isSolid) then
return "slide"
else
return "cross"
end
end
end
function Actor2D:initMovement()
self.xsp = 0
self.ysp = 0

View file

@ -66,6 +66,41 @@ function BaseActor:destroy()
self.isDestroyed = true
end
-- PHYSICS INITIALISATION
-- Basic initialization of the physic systems
function BaseActor:initPhysics()
self:initMovement()
self:initGravity()
self:setBounceFactor()
self:setFilter()
end
function BaseActor:setBounceFactor(newBounceFactor)
self.bounceFactor = newBounceFactor or 0
end
function BaseActor:setFilter()
-- Init the bump filter
self.filter = function(item, other)
if (other.isSolid) then
return "slide"
else
return "cross"
end
end
end
function BaseActor:initMovement( )
-- Empty placeholder function
end
function BaseActor:initGravity( )
-- Empty placeholder function
end
-- UPDATE FUNCTIONS
-- Theses functions are activated every steps