jujus.lua 768 B

12345678910111213141516171819202122232425262728293031323334353637
  1. local g = love.graphics
  2. Jujus = class()
  3. Jujus.depth = -6
  4. function Jujus:init()
  5. self.jujus = {}
  6. self.spriteBatch = g.newSpriteBatch(data.media.graphics.juju, 256, 'stream')
  7. if not ctx.effects:get('vignette') then ctx.event:emit('view.register', {object = self}) end
  8. end
  9. function Jujus:update()
  10. table.with(self.jujus, 'update')
  11. end
  12. function Jujus:draw()
  13. self.spriteBatch:clear()
  14. self.spriteBatch:bind()
  15. table.with(self.jujus, 'draw')
  16. self.spriteBatch:unbind()
  17. g.draw(self.spriteBatch)
  18. end
  19. function Jujus:add(data)
  20. local juju = Juju(data)
  21. self.jujus[juju] = juju
  22. end
  23. function Jujus:remove(juju)
  24. ctx.view:unregister(juju)
  25. self.jujus[juju] = nil
  26. end
  27. function Jujus:clear()
  28. table.each(self.jujus, function(juju)
  29. self:remove(juju)
  30. end)
  31. end