--- @class Graphics --- @field id Id --- @field animation Animation local graphics = {} graphics.__index = graphics --- @param id Id --- @param spriteDir table local function new(id, spriteDir) return setmetatable({ id = id, animation = (require 'lib.character.animation').new(id, spriteDir) }, graphics) end function graphics:update(dt) local state = Tree.level.characters[self.id].logic.state self.animation.animationTable[state]:update(dt) end function graphics:draw() local ppm = Tree.level.camera.pixelsPerMeter local position = Tree.level.characters[self.id].logic.mapLogic.position local state = Tree.level.characters[self.id].logic.state if Tree.level.selector.id == self.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, 1 / ppm, 38, 47) love.graphics.setColor(1, 1, 1) end return { new = new }