--- @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() local ppm = Tree.level.camera.pixelsPerMeter if not self.owner:has(Tree.behaviors.map) then return end local position = self.owner:has(Tree.behaviors.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 return renderBehavior