PeaAshMeter 324856b26c - grid rework (the simplest solution)
- checkerboard tile testing
- character centering
2025-08-10 05:18:41 +03:00

41 lines
895 B
Lua

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