execute returns chunk entity count now

This commit is contained in:
BlackMATov
2025-02-08 17:18:04 +07:00
parent 76e8fc5530
commit 664636a5c8
3 changed files with 5 additions and 4 deletions

View File

@@ -82,7 +82,7 @@ chunk :: fragment... -> chunk?, entity[]?
select :: chunk, fragment... -> component[]... select :: chunk, fragment... -> component[]...
each :: entity -> {each_state? -> fragment?, component?}, each_state? each :: entity -> {each_state? -> fragment?, component?}, each_state?
execute :: query -> {execute_state? -> chunk?, entity[]?}, execute_state? execute :: query -> {execute_state? -> chunk?, entity[]?, integer?}, execute_state?
``` ```
``` ```

View File

@@ -2524,7 +2524,8 @@ do
---@return evolved.entity[] ---@return evolved.entity[]
local function collect_entities(q) local function collect_entities(q)
local entities = {} local entities = {}
for _, es in evo.execute(q) do for _, es, es_count in evo.execute(q) do
assert(#es == es_count)
for _, e in ipairs(es) do for _, e in ipairs(es) do
entities[#entities + 1] = e entities[#entities + 1] = e
end end

View File

@@ -77,7 +77,7 @@ local evolved = {
---@field package [3] table<evolved.fragment, boolean> exclude_set ---@field package [3] table<evolved.fragment, boolean> exclude_set
---@alias evolved.each_iterator fun(state: evolved.each_state?): evolved.fragment?, evolved.component? ---@alias evolved.each_iterator fun(state: evolved.each_state?): evolved.fragment?, evolved.component?
---@alias evolved.execute_iterator fun(state: evolved.execute_state?): evolved.chunk?, evolved.entity[]? ---@alias evolved.execute_iterator fun(state: evolved.execute_state?): evolved.chunk?, evolved.entity[]?, integer?
--- ---
--- ---
@@ -376,7 +376,7 @@ local function __execute_iterator(execute_state)
local chunk_entity_count = chunk.__entity_count local chunk_entity_count = chunk.__entity_count
if chunk_entity_count > 0 then if chunk_entity_count > 0 then
return chunk, chunk_entities return chunk, chunk_entities, chunk_entity_count
end end
end end