mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-13 03:29:08 +07:00
has fragments entity functions
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
local registry = {}
|
||||
|
||||
---@class evolved.entity
|
||||
---@field chunk? evolved.chunk
|
||||
local evolved_entity_mt = {}
|
||||
evolved_entity_mt.__index = evolved_entity_mt
|
||||
|
||||
@@ -15,6 +16,68 @@ evolved_query_mt.__index = evolved_query_mt
|
||||
local evolved_chunk_mt = {}
|
||||
evolved_chunk_mt.__index = evolved_chunk_mt
|
||||
|
||||
---
|
||||
---
|
||||
---
|
||||
---
|
||||
---
|
||||
|
||||
---@param chunk evolved.chunk
|
||||
---@param fragment evolved.entity
|
||||
---@return boolean
|
||||
---@nodiscard
|
||||
local function __chunk_has_fragment(chunk, fragment)
|
||||
return chunk.components[fragment] ~= nil
|
||||
end
|
||||
|
||||
---@param chunk evolved.chunk
|
||||
---@param fragment evolved.entity
|
||||
---@param ... evolved.entity
|
||||
---@return boolean
|
||||
---@nodiscard
|
||||
local function __chunk_has_all_fragments(chunk, fragment, ...)
|
||||
local components = chunk.components
|
||||
|
||||
if components[fragment] == nil then
|
||||
return false
|
||||
end
|
||||
|
||||
for i = 1, select('#', ...) do
|
||||
if components[select(i, ...)] == nil then
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
---@param chunk evolved.chunk
|
||||
---@param fragment evolved.entity
|
||||
---@param ... evolved.entity
|
||||
---@return boolean
|
||||
---@nodiscard
|
||||
local function __chunk_has_any_fragments(chunk, fragment, ...)
|
||||
local components = chunk.components
|
||||
|
||||
if components[fragment] ~= nil then
|
||||
return true
|
||||
end
|
||||
|
||||
for i = 1, select('#', ...) do
|
||||
if components[select(i, ...)] ~= nil then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
---
|
||||
---
|
||||
---
|
||||
---
|
||||
---
|
||||
|
||||
---@return evolved.entity
|
||||
---@nodiscard
|
||||
function registry.entity() end
|
||||
@@ -32,19 +95,27 @@ function registry.get(entity, fragment) end
|
||||
---@param fragment evolved.entity
|
||||
---@return boolean
|
||||
---@nodiscard
|
||||
function registry.has(entity, fragment) end
|
||||
function registry.has(entity, fragment)
|
||||
return entity.chunk ~= nil and __chunk_has_fragment(entity.chunk, fragment)
|
||||
end
|
||||
|
||||
---@param entity evolved.entity
|
||||
---@param fragment evolved.entity
|
||||
---@param ... evolved.entity
|
||||
---@return boolean
|
||||
---@nodiscard
|
||||
function registry.has_all(entity, ...) end
|
||||
function registry.has_all(entity, fragment, ...)
|
||||
return entity.chunk ~= nil and __chunk_has_all_fragments(entity.chunk, fragment, ...)
|
||||
end
|
||||
|
||||
---@param entity evolved.entity
|
||||
---@param fragment evolved.entity
|
||||
---@param ... evolved.entity
|
||||
---@return boolean
|
||||
---@nodiscard
|
||||
function registry.has_any(entity, ...) end
|
||||
function registry.has_any(entity, fragment, ...)
|
||||
return entity.chunk ~= nil and __chunk_has_any_fragments(entity.chunk, fragment, ...)
|
||||
end
|
||||
|
||||
---@param entity evolved.entity
|
||||
---@param fragment evolved.entity
|
||||
|
||||
Reference in New Issue
Block a user