--- @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 self.animation.animationTable[state]:draw(Tree.assets.files.sprites.character[state], position.x, position.y, nil, 1 / ppm, 1 / ppm, 38, 47) end return { new = new }