diff --git a/evolved/defers.lua b/evolved/defers.lua index 8d0f2a6..4f379df 100644 --- a/evolved/defers.lua +++ b/evolved/defers.lua @@ -21,9 +21,11 @@ local evolved_defer_op = { destroy = 7, } ----@class evolved.defer +---@class (exact) evolved.__defer ---@field operations any[] ---@field operation_count integer + +---@class evolved.defer : evolved.__defer local evolved_defer_mt = {} evolved_defer_mt.__index = evolved_defer_mt @@ -90,11 +92,12 @@ local __operation_processors = { ---@return evolved.defer ---@nodiscard function defers.defer() - ---@type evolved.defer + ---@type evolved.__defer local defer = { operations = {}, operation_count = 0, } + ---@cast defer evolved.defer return setmetatable(defer, evolved_defer_mt) end diff --git a/evolved/idpools.lua b/evolved/idpools.lua index 6a217f4..b6dddab 100644 --- a/evolved/idpools.lua +++ b/evolved/idpools.lua @@ -9,9 +9,11 @@ local idpools = {} ---@alias evolved.id integer ----@class evolved.idpool +---@class (exact) evolved.__idpool ---@field package __freelist_ids evolved.id[] ---@field package __available_index integer + +---@class evolved.idpool : evolved.__idpool local evolved_idpool_mt = {} evolved_idpool_mt.__index = evolved_idpool_mt @@ -23,11 +25,12 @@ evolved_idpool_mt.__index = evolved_idpool_mt ---@return evolved.idpool function idpools.idpool() - ---@type evolved.idpool + ---@type evolved.__idpool local idpool = { __freelist_ids = {}, __available_index = 0, } + ---@cast idpool evolved.idpool return setmetatable(idpool, evolved_idpool_mt) end diff --git a/evolved/registry.lua b/evolved/registry.lua index 4920426..20373bf 100644 --- a/evolved/registry.lua +++ b/evolved/registry.lua @@ -29,22 +29,26 @@ local __execution_state_cache = {} ---@type evolved.execution_state[] --- --- ----@class evolved.entity +---@class (exact) evolved.__entity ---@field package __guid evolved.id ---@field package __chunk? evolved.chunk ---@field package __index_in_chunk integer + +---@class evolved.entity : evolved.__entity local evolved_entity_mt = {} evolved_entity_mt.__index = evolved_entity_mt ----@class evolved.query +---@class (exact) evolved.__query ---@field package __include_list evolved.entity[] ---@field package __exclude_list evolved.entity[] ---@field package __include_set table ---@field package __exclude_set table + +---@class evolved.query : evolved.__query local evolved_query_mt = {} evolved_query_mt.__index = evolved_query_mt ----@class evolved.chunk +---@class (exact) evolved.__chunk ---@field package __parent? evolved.chunk ---@field package __fragment evolved.entity ---@field package __children evolved.chunk[] @@ -52,6 +56,8 @@ evolved_query_mt.__index = evolved_query_mt ---@field package __components table ---@field package __with_fragment_cache table ---@field package __without_fragment_cache table + +---@class evolved.chunk : evolved.__chunk local evolved_chunk_mt = {} evolved_chunk_mt.__index = evolved_chunk_mt @@ -176,7 +182,7 @@ local function __root_chunk(fragment) if root_chunk then return root_chunk end end - ---@type evolved.chunk + ---@type evolved.__chunk local root_chunk = { __parent = nil, __fragment = fragment, @@ -187,6 +193,7 @@ local function __root_chunk(fragment) __without_fragment_cache = {}, } + ---@cast root_chunk evolved.chunk setmetatable(root_chunk, evolved_chunk_mt) do @@ -236,7 +243,7 @@ local function __chunk_with_fragment(chunk, fragment) return sibling_chunk end - ---@type evolved.chunk + ---@type evolved.__chunk local child_chunk = { __parent = chunk, __fragment = fragment, @@ -251,6 +258,7 @@ local function __chunk_with_fragment(chunk, fragment) child_chunk.__components[f] = {} end + ---@cast child_chunk evolved.chunk setmetatable(child_chunk, evolved_chunk_mt) do @@ -415,13 +423,14 @@ end function registry.entity() local guid = idpools.acquire(__guids) - ---@type evolved.entity + ---@type evolved.__entity local entity = { __guid = guid, __chunk = nil, __index_in_chunk = 0, } + ---@cast entity evolved.entity return setmetatable(entity, evolved_entity_mt) end @@ -1187,7 +1196,7 @@ function registry.query(...) return a.__guid < b.__guid end) - ---@type evolved.query + ---@type evolved.__query local query = { __include_list = include_list, __exclude_list = {}, @@ -1195,6 +1204,7 @@ function registry.query(...) __exclude_set = {}, } + ---@cast query evolved.query return setmetatable(query, evolved_query_mt) end @@ -1225,7 +1235,7 @@ function registry.query_include(query, ...) return a.__guid < b.__guid end) - ---@type evolved.query + ---@type evolved.__query local new_query = { __include_list = include_list, __exclude_list = query.__exclude_list, @@ -1233,6 +1243,7 @@ function registry.query_include(query, ...) __exclude_set = query.__exclude_set, } + ---@cast new_query evolved.query return setmetatable(new_query, evolved_query_mt) end @@ -1263,7 +1274,7 @@ function registry.query_exclude(query, ...) return a.__guid < b.__guid end) - ---@type evolved.query + ---@type evolved.__query local new_query = { __include_list = query.__include_list, __exclude_list = exclude_list, @@ -1271,6 +1282,7 @@ function registry.query_exclude(query, ...) __exclude_set = exclude_set, } + ---@cast new_query evolved.query return setmetatable(new_query, evolved_query_mt) end diff --git a/evolved/vectors.lua b/evolved/vectors.lua index ceeda5a..a352bf4 100644 --- a/evolved/vectors.lua +++ b/evolved/vectors.lua @@ -1,9 +1,11 @@ ---@class evolved.vectors local vectors = {} ----@class evolved.vector2 +---@class (exact) evolved.__vector2 ---@field x number ---@field y number + +---@class evolved.vector2 : evolved.__vector2 local evolved_vector2_mt = {} evolved_vector2_mt.__index = evolved_vector2_mt @@ -12,8 +14,9 @@ evolved_vector2_mt.__index = evolved_vector2_mt ---@return evolved.vector2 ---@nodiscard local function vector2(x, y) - ---@type evolved.vector2 + ---@type evolved.__vector2 local v = { x = x, y = y } + ---@cast v evolved.vector2 return setmetatable(v, evolved_vector2_mt) end