38 lines
1.1 KiB
Lua

--- @class DrawBehavior : Behavior
--- @field animation Animation
local renderBehavior = {}
renderBehavior.__index = renderBehavior
renderBehavior.id = "render"
renderBehavior.dependencies = { Tree.behaviors.map }
--- @param spriteDir table
function renderBehavior.new(spriteDir)
return setmetatable({
animation = (require 'lib.character.animation').new(spriteDir)
}, renderBehavior)
end
function renderBehavior:update(dt)
self.animation.animationTable[self.owner:getState()]:update(dt)
end
function renderBehavior:draw()
self.owner:try(Tree.behaviors.map,
function(map)
local ppm = Tree.level.camera.pixelsPerMeter
local position = map.displayedPosition
local state = self.owner:getState()
if Tree.level.selector.id == self.owner.id then love.graphics.setColor(0.5, 1, 0.5) end
self.animation.animationTable[state]:draw(Tree.assets.files.sprites.character[state],
position.x + 0.5,
position.y + 0.5, nil, 1 / ppm * self.animation.side, 1 / ppm, 38, 47)
love.graphics.setColor(1, 1, 1)
end
)
end
return renderBehavior