local Entity = require "scenes.levels.entities.parent"
local Animator = require "core.modules.assets.animator"

local GFX = Entity:extend()

function GFX:new(level, x, y, spritename, animID)
  local width, height
  self.name = spritename
  self.animID = animID
  width   = 16
  height  = 16
  GFX.super.new(self, level, "gfx", x - (width/2), y - (height/2), width, height)
  self.animation = self.level.assets.sprites[spritename]:clone()
  self.duration = self.animation:getAnimationDuration()
  self.timer = 0
end

function GFX:update(dt)
  self.timer = self.timer + dt
  self.animation:update(dt)
  if (self.timer >= self.duration) then
    self:destroy()
  end
end

function GFX:draw(dt)
  self.animation:draw(self.x, self.y)
end

return GFX
