mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2026-01-04 17:20:58 +07:00
has_all/any without fragments
This commit is contained in:
@@ -31,8 +31,8 @@ registry.destroy -> entity -> ()
|
|||||||
registry.get -> entity -> entity -> (any)
|
registry.get -> entity -> entity -> (any)
|
||||||
registry.get_or -> entity -> entity -> any -> (any)
|
registry.get_or -> entity -> entity -> any -> (any)
|
||||||
registry.has -> entity -> entity -> (boolean)
|
registry.has -> entity -> entity -> (boolean)
|
||||||
registry.has_all -> entity -> entity -> entity... -> (boolean)
|
registry.has_all -> entity -> entity... -> (boolean)
|
||||||
registry.has_any -> entity -> entity -> entity... -> (boolean)
|
registry.has_any -> entity -> entity... -> (boolean)
|
||||||
registry.assign -> entity -> entity -> any -> ()
|
registry.assign -> entity -> entity -> any -> ()
|
||||||
registry.insert -> entity -> entity -> any -> ()
|
registry.insert -> entity -> entity -> any -> ()
|
||||||
registry.remove -> entity -> entity -> ()
|
registry.remove -> entity -> entity -> ()
|
||||||
@@ -52,8 +52,8 @@ entity:destroy -> ()
|
|||||||
entity:get -> entity -> (any)
|
entity:get -> entity -> (any)
|
||||||
entity:get_or -> entity -> any -> (any)
|
entity:get_or -> entity -> any -> (any)
|
||||||
entity:has -> entity -> (boolean)
|
entity:has -> entity -> (boolean)
|
||||||
entity:has_all -> entity -> entity... -> (boolean)
|
entity:has_all -> entity... -> (boolean)
|
||||||
entity:has_any -> entity -> entity... -> (boolean)
|
entity:has_any -> entity... -> (boolean)
|
||||||
entity:assign -> entity -> any -> ()
|
entity:assign -> entity -> any -> ()
|
||||||
entity:insert -> entity -> any -> ()
|
entity:insert -> entity -> any -> ()
|
||||||
entity:remove -> entity -> ()
|
entity:remove -> entity -> ()
|
||||||
|
|||||||
@@ -107,17 +107,12 @@ local function __chunk_has_fragment(chunk, fragment)
|
|||||||
end
|
end
|
||||||
|
|
||||||
---@param chunk evolved.chunk
|
---@param chunk evolved.chunk
|
||||||
---@param fragment evolved.entity
|
---@param ... evolved.entity fragments
|
||||||
---@param ... evolved.entity
|
|
||||||
---@return boolean
|
---@return boolean
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
local function __chunk_has_all_fragments(chunk, fragment, ...)
|
local function __chunk_has_all_fragments(chunk, ...)
|
||||||
local components = chunk.__components
|
local components = chunk.__components
|
||||||
|
|
||||||
if components[fragment] == nil then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
for i = 1, select('#', ...) do
|
for i = 1, select('#', ...) do
|
||||||
if components[select(i, ...)] == nil then
|
if components[select(i, ...)] == nil then
|
||||||
return false
|
return false
|
||||||
@@ -128,17 +123,12 @@ local function __chunk_has_all_fragments(chunk, fragment, ...)
|
|||||||
end
|
end
|
||||||
|
|
||||||
---@param chunk evolved.chunk
|
---@param chunk evolved.chunk
|
||||||
---@param fragment evolved.entity
|
---@param ... evolved.entity fragments
|
||||||
---@param ... evolved.entity
|
|
||||||
---@return boolean
|
---@return boolean
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
local function __chunk_has_any_fragments(chunk, fragment, ...)
|
local function __chunk_has_any_fragments(chunk, ...)
|
||||||
local components = chunk.__components
|
local components = chunk.__components
|
||||||
|
|
||||||
if components[fragment] ~= nil then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
for i = 1, select('#', ...) do
|
for i = 1, select('#', ...) do
|
||||||
if components[select(i, ...)] ~= nil then
|
if components[select(i, ...)] ~= nil then
|
||||||
return true
|
return true
|
||||||
@@ -348,21 +338,21 @@ function registry.has(entity, fragment)
|
|||||||
end
|
end
|
||||||
|
|
||||||
---@param entity evolved.entity
|
---@param entity evolved.entity
|
||||||
---@param fragment evolved.entity
|
---@param ... evolved.entity fragments
|
||||||
---@param ... evolved.entity
|
|
||||||
---@return boolean
|
---@return boolean
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
function registry.has_all(entity, fragment, ...)
|
function registry.has_all(entity, ...)
|
||||||
return entity.__chunk ~= nil and __chunk_has_all_fragments(entity.__chunk, fragment, ...)
|
if entity.__chunk == nil then return select('#', ...) == 0 end
|
||||||
|
return __chunk_has_all_fragments(entity.__chunk, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param entity evolved.entity
|
---@param entity evolved.entity
|
||||||
---@param fragment evolved.entity
|
---@param ... evolved.entity fragments
|
||||||
---@param ... evolved.entity
|
|
||||||
---@return boolean
|
---@return boolean
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
function registry.has_any(entity, fragment, ...)
|
function registry.has_any(entity, ...)
|
||||||
return entity.__chunk ~= nil and __chunk_has_any_fragments(entity.__chunk, fragment, ...)
|
if entity.__chunk == nil then return false end
|
||||||
|
return __chunk_has_any_fragments(entity.__chunk, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param entity evolved.entity
|
---@param entity evolved.entity
|
||||||
|
|||||||
Reference in New Issue
Block a user