refactoring

This commit is contained in:
Ivan Yuriev 2025-08-03 03:39:42 +03:00
parent bee71fe254
commit f421771926
5 changed files with 38 additions and 5 deletions

View File

@ -1,4 +1,4 @@
local utils = require("utils")
local utils = require "lib/utils"
---Generates an empty grid
---@param width number

View File

@ -1,5 +1,25 @@
local utils = require "lib/utils"
local camera = require "lib/camera"
--- @class Level
--- @field characters Character[]
--- @field camera Camera
local level = {}
level.__index = level
local function new()
return {
characters = {}
}
return setmetatable({
characters = {},
camera = camera.new()
}, level)
end
function level:update(dt)
utils.each(self.characters, function(el)
el:update(dt)
end)
end
return {
new = new
}

View File

@ -16,8 +16,21 @@ function P.generateList(count, generator)
return xs
end
--- Returns the sign of a number
--- @param number number
--- @return -1 | 0 | 1
function P.sign(number)
return (number > 0 and 1) or (number == 0 and 0) or -1
end
--- Applies a side effect for each element of a table
--- @generic T
--- @param table {[any] : T}
--- @param fn fun(el: T): nil
function P.each(table, fn)
for _, value in ipairs(table) do
fn(value)
end
end
return P

View File

@ -2,7 +2,7 @@
require "character"
local camera = require 'camera'
local camera = require 'lib/camera'
local Vec3 = require "lib/vec3"
local tree = require "lib/tree"