local utils = require "lib/utils" --- @class Level --- @field characters Character[] --- @field characterGrid CharacterGrid --- @field selector Selector --- @field camera Camera local level = {} level.__index = level local function new() return setmetatable({ characters = {}, characterGrid = (require "lib/grid/character").new(30, 30), -- magic numbers for testing purposes only tileGrid = (require "lib/grid/tile").new(30, 30), -- magic numbers for testing purposes only selector = (require "lib/selector").new(), camera = (require "lib/camera").new() }, level) end function level:update(dt) utils.each(self.characters, function(el) el:update(dt) end) self.camera:update(dt) end function level:draw() utils.each(self.characters, function(el) el:draw() end) end return { new = new }