Neckrat af792bd2d5 refactor character & grid again
Co-authored-by: Ivan Yuriev <ivanyr44@gmail.com>
2025-08-09 23:22:34 +03:00

32 lines
881 B
Lua

--- @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 }