32 lines
881 B
Lua
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 }
|