mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-16 14:11:16 +07:00
modifying operators return nothing now
This commit is contained in:
42
README.md
42
README.md
@@ -77,21 +77,21 @@ has_any :: chunk | entity, fragment... -> boolean
|
||||
|
||||
get :: entity, fragment... -> component...
|
||||
|
||||
set :: entity, fragment, any... -> boolean
|
||||
remove :: entity, fragment... -> boolean
|
||||
clear :: entity... -> boolean
|
||||
destroy :: entity... -> boolean
|
||||
set :: entity, fragment, any... -> ()
|
||||
remove :: entity, fragment... -> ()
|
||||
clear :: entity... -> ()
|
||||
destroy :: entity... -> ()
|
||||
|
||||
multi_set :: entity, fragment[], component[]? -> boolean
|
||||
multi_remove :: entity, fragment[] -> boolean
|
||||
multi_set :: entity, fragment[], component[]? -> ()
|
||||
multi_remove :: entity, fragment[] -> ()
|
||||
|
||||
batch_set :: query, fragment, any... -> boolean
|
||||
batch_remove :: query, fragment... -> boolean
|
||||
batch_clear :: query... -> boolean
|
||||
batch_destroy :: query... -> boolean
|
||||
batch_set :: query, fragment, any... -> ()
|
||||
batch_remove :: query, fragment... -> ()
|
||||
batch_clear :: query... -> ()
|
||||
batch_destroy :: query... -> ()
|
||||
|
||||
batch_multi_set :: query, fragment[], component[]? -> boolean
|
||||
batch_multi_remove :: query, fragment[] -> boolean
|
||||
batch_multi_set :: query, fragment[], component[]? -> ()
|
||||
batch_multi_remove :: query, fragment[] -> ()
|
||||
|
||||
chunk :: fragment, fragment... -> chunk, entity[], integer
|
||||
|
||||
@@ -104,11 +104,11 @@ execute :: query -> {execute_state? -> chunk?, entity[]?, integer?}, execute_sta
|
||||
|
||||
process :: phase... -> ()
|
||||
|
||||
spawn_at :: chunk?, fragment[]?, component[]? -> entity, boolean
|
||||
spawn_with :: fragment[]?, component[]? -> entity, boolean
|
||||
spawn_at :: chunk?, fragment[]?, component[]? -> entity
|
||||
spawn_with :: fragment[]?, component[]? -> entity
|
||||
|
||||
debug_mode :: boolean -> ()
|
||||
collect_garbage :: boolean, boolean
|
||||
collect_garbage :: ()
|
||||
```
|
||||
|
||||
## Builders
|
||||
@@ -116,7 +116,7 @@ collect_garbage :: boolean, boolean
|
||||
```
|
||||
entity :: entity_builder
|
||||
entity_builder:set :: fragment, any... -> entity_builder
|
||||
entity_builder:build :: entity, boolean
|
||||
entity_builder:build :: entity
|
||||
```
|
||||
|
||||
```
|
||||
@@ -131,7 +131,7 @@ fragment_builder:on_assign :: {entity, fragment, component, component} -> fragme
|
||||
fragment_builder:on_insert :: {entity, fragment, component} -> fragment_builder
|
||||
fragment_builder:on_remove :: {entity, fragment} -> fragment_builder
|
||||
fragment_builder:destroy_policy :: id -> fragment_builder
|
||||
fragment_builder:build :: fragment, boolean
|
||||
fragment_builder:build :: fragment
|
||||
```
|
||||
|
||||
```
|
||||
@@ -140,7 +140,7 @@ query_builder:name :: string -> query_builder
|
||||
query_builder:single :: component -> query_builder
|
||||
query_builder:include :: fragment... -> query_builder
|
||||
query_builder:exclude :: fragment... -> query_builder
|
||||
query_builder:build :: query, boolean
|
||||
query_builder:build :: query
|
||||
```
|
||||
|
||||
```
|
||||
@@ -152,7 +152,7 @@ group_builder:phase :: phase -> group_builder
|
||||
group_builder:after :: group... -> group_builder
|
||||
group_builder:prologue :: {} -> group_builder
|
||||
group_builder:epilogue :: {} -> group_builder
|
||||
group_builder:build :: group, boolean
|
||||
group_builder:build :: group
|
||||
```
|
||||
|
||||
```
|
||||
@@ -162,7 +162,7 @@ phase_builder:single :: component -> phase_builder
|
||||
phase_builder:disable :: phase_builder
|
||||
phase_builder:prologue :: {} -> phase_builder
|
||||
phase_builder:epilogue :: {} -> phase_builder
|
||||
phase_builder:build :: phase, boolean
|
||||
phase_builder:build :: phase
|
||||
```
|
||||
|
||||
```
|
||||
@@ -175,7 +175,7 @@ system_builder:query :: query -> system_builder
|
||||
system_builder:execute :: {chunk, entity[], integer} -> system_builder
|
||||
system_builder:prologue :: {} -> system_builder
|
||||
system_builder:epilogue :: {} -> system_builder
|
||||
system_builder:build :: system, boolean
|
||||
system_builder:build :: system
|
||||
```
|
||||
|
||||
## [License (MIT)](./LICENSE.md)
|
||||
|
||||
1466
develop/untests.lua
1466
develop/untests.lua
File diff suppressed because it is too large
Load Diff
255
evolved.lua
255
evolved.lua
@@ -4508,7 +4508,6 @@ end
|
||||
---@param entity evolved.entity
|
||||
---@param fragment evolved.fragment
|
||||
---@param ... any component arguments
|
||||
---@return boolean set_or_deferred
|
||||
__evolved_set = function(entity, fragment, ...)
|
||||
if __debug_mode then
|
||||
__debug_fns.validate_entity(entity)
|
||||
@@ -4517,7 +4516,7 @@ __evolved_set = function(entity, fragment, ...)
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_set(entity, fragment, ...)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
local entity_index = entity % 0x100000
|
||||
@@ -4531,7 +4530,7 @@ __evolved_set = function(entity, fragment, ...)
|
||||
local new_chunk = __chunk_with_fragment(old_chunk, fragment)
|
||||
|
||||
if not new_chunk then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -4664,29 +4663,27 @@ __evolved_set = function(entity, fragment, ...)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param entity evolved.entity
|
||||
---@param ... evolved.fragment fragments
|
||||
---@return boolean removed_or_deferred
|
||||
__evolved_remove = function(entity, ...)
|
||||
local fragment_count = __lua_select('#', ...)
|
||||
|
||||
if fragment_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
local entity_index = entity % 0x100000
|
||||
|
||||
if __freelist_ids[entity_index] ~= entity then
|
||||
-- this entity is not alive, nothing to remove
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_remove(entity, ...)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
local entity_chunks = __entity_chunks
|
||||
@@ -4698,7 +4695,7 @@ __evolved_remove = function(entity, ...)
|
||||
local new_chunk = __chunk_without_fragments(old_chunk, ...)
|
||||
|
||||
if old_chunk == new_chunk then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -4772,21 +4769,19 @@ __evolved_remove = function(entity, ...)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param ... evolved.entity entities
|
||||
---@return boolean cleared_or_deferred
|
||||
__evolved_clear = function(...)
|
||||
local argument_count = __lua_select('#', ...)
|
||||
|
||||
if argument_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_clear(...)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -4845,21 +4840,19 @@ __evolved_clear = function(...)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param ... evolved.entity entities
|
||||
---@return boolean destroyed_or_deferred
|
||||
__evolved_destroy = function(...)
|
||||
local argument_count = __lua_select('#', ...)
|
||||
|
||||
if argument_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_destroy(...)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -4933,18 +4926,16 @@ __evolved_destroy = function(...)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param entity evolved.entity
|
||||
---@param fragments evolved.fragment[]
|
||||
---@param components? evolved.component[]
|
||||
---@return boolean set_or_deferred
|
||||
__evolved_multi_set = function(entity, fragments, components)
|
||||
local fragment_count = #fragments
|
||||
|
||||
if fragment_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if not components then
|
||||
@@ -4958,7 +4949,7 @@ __evolved_multi_set = function(entity, fragments, components)
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_multi_set(entity, fragments, fragment_count, components, #components)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
local entity_index = entity % 0x100000
|
||||
@@ -4972,7 +4963,7 @@ __evolved_multi_set = function(entity, fragments, components)
|
||||
local new_chunk = __chunk_with_fragment_list(old_chunk, fragments, fragment_count)
|
||||
|
||||
if not new_chunk then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5163,29 +5154,27 @@ __evolved_multi_set = function(entity, fragments, components)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param entity evolved.entity
|
||||
---@param fragments evolved.fragment[]
|
||||
---@return boolean removed_or_deferred
|
||||
__evolved_multi_remove = function(entity, fragments)
|
||||
local fragment_count = #fragments
|
||||
|
||||
if fragment_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
local entity_index = entity % 0x100000
|
||||
|
||||
if __freelist_ids[entity_index] ~= entity then
|
||||
-- this entity is not alive, nothing to remove
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_multi_remove(entity, fragments, fragment_count)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
local entity_chunks = __entity_chunks
|
||||
@@ -5197,7 +5186,7 @@ __evolved_multi_remove = function(entity, fragments)
|
||||
local new_chunk = __chunk_without_fragment_list(old_chunk, fragments, fragment_count)
|
||||
|
||||
if old_chunk == new_chunk then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5270,13 +5259,11 @@ __evolved_multi_remove = function(entity, fragments)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param query evolved.query
|
||||
---@param fragment evolved.fragment
|
||||
---@param ... any component arguments
|
||||
---@return boolean set_or_deferred
|
||||
__evolved_batch_set = function(query, fragment, ...)
|
||||
if __debug_mode then
|
||||
__debug_fns.validate_query(query)
|
||||
@@ -5285,7 +5272,7 @@ __evolved_batch_set = function(query, fragment, ...)
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_batch_set(query, fragment, ...)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5309,29 +5296,27 @@ __evolved_batch_set = function(query, fragment, ...)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param query evolved.query
|
||||
---@param ... evolved.fragment fragments
|
||||
---@return boolean removed_or_deferred
|
||||
__evolved_batch_remove = function(query, ...)
|
||||
local fragment_count = select('#', ...)
|
||||
|
||||
if fragment_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
local query_index = query % 0x100000
|
||||
|
||||
if __freelist_ids[query_index] ~= query then
|
||||
-- this query is not alive, nothing to remove
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_batch_remove(query, ...)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5355,21 +5340,19 @@ __evolved_batch_remove = function(query, ...)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param ... evolved.query queries
|
||||
---@return boolean cleared_or_deferred
|
||||
__evolved_batch_clear = function(...)
|
||||
local argument_count = select('#', ...)
|
||||
|
||||
if argument_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_batch_clear(...)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5403,21 +5386,19 @@ __evolved_batch_clear = function(...)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param ... evolved.query queries
|
||||
---@return boolean destroyed_or_deferred
|
||||
__evolved_batch_destroy = function(...)
|
||||
local argument_count = select('#', ...)
|
||||
|
||||
if argument_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_batch_destroy(...)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5451,18 +5432,16 @@ __evolved_batch_destroy = function(...)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param query evolved.query
|
||||
---@param fragments evolved.fragment[]
|
||||
---@param components? evolved.component[]
|
||||
---@return boolean set_or_deferred
|
||||
__evolved_batch_multi_set = function(query, fragments, components)
|
||||
local fragment_count = #fragments
|
||||
|
||||
if fragment_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if not components then
|
||||
@@ -5476,7 +5455,7 @@ __evolved_batch_multi_set = function(query, fragments, components)
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_batch_multi_set(query, fragments, fragment_count, components, #components)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5500,29 +5479,27 @@ __evolved_batch_multi_set = function(query, fragments, components)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---@param query evolved.query
|
||||
---@param fragments evolved.fragment[]
|
||||
---@return boolean removed_or_deferred
|
||||
__evolved_batch_multi_remove = function(query, fragments)
|
||||
local fragment_count = #fragments
|
||||
|
||||
if fragment_count == 0 then
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
local query_index = query % 0x100000
|
||||
|
||||
if __freelist_ids[query_index] ~= query then
|
||||
-- this query is not alive, nothing to remove
|
||||
return true
|
||||
return
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_batch_multi_remove(query, fragments, fragment_count)
|
||||
return false
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5546,7 +5523,6 @@ __evolved_batch_multi_remove = function(query, fragments)
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true
|
||||
end
|
||||
|
||||
---
|
||||
@@ -5767,7 +5743,6 @@ end
|
||||
---@param fragments? evolved.fragment[]
|
||||
---@param components? evolved.component[]
|
||||
---@return evolved.entity entity
|
||||
---@return boolean spawned_or_deferred
|
||||
__evolved_spawn_at = function(chunk, fragments, components)
|
||||
if not fragments then
|
||||
fragments = __safe_tbls.__EMPTY_FRAGMENT_LIST
|
||||
@@ -5788,14 +5763,14 @@ __evolved_spawn_at = function(chunk, fragments, components)
|
||||
local entity = __acquire_id()
|
||||
|
||||
if not chunk then
|
||||
return entity, true
|
||||
return entity
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_spawn_entity_at(entity, chunk,
|
||||
fragments, fragment_count,
|
||||
components, component_count)
|
||||
return entity, false
|
||||
return entity
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5804,13 +5779,12 @@ __evolved_spawn_at = function(chunk, fragments, components)
|
||||
end
|
||||
__evolved_commit()
|
||||
|
||||
return entity, true
|
||||
return entity
|
||||
end
|
||||
|
||||
---@param fragments? evolved.fragment[]
|
||||
---@param components? evolved.component[]
|
||||
---@return evolved.entity entity
|
||||
---@return boolean spawned_or_deferred
|
||||
__evolved_spawn_with = function(fragments, components)
|
||||
if not fragments then
|
||||
fragments = __safe_tbls.__EMPTY_FRAGMENT_LIST
|
||||
@@ -5830,14 +5804,14 @@ __evolved_spawn_with = function(fragments, components)
|
||||
local entity, chunk = __acquire_id(), __chunk_fragment_list(fragments, fragment_count)
|
||||
|
||||
if not chunk then
|
||||
return entity, true
|
||||
return entity
|
||||
end
|
||||
|
||||
if __defer_depth > 0 then
|
||||
__defer_spawn_entity_with(entity, chunk,
|
||||
fragments, fragment_count,
|
||||
components, component_count)
|
||||
return entity, false
|
||||
return entity
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5846,7 +5820,7 @@ __evolved_spawn_with = function(fragments, components)
|
||||
end
|
||||
__evolved_commit()
|
||||
|
||||
return entity, true
|
||||
return entity
|
||||
end
|
||||
|
||||
---
|
||||
@@ -5860,12 +5834,10 @@ __evolved_debug_mode = function(yesno)
|
||||
__debug_mode = yesno
|
||||
end
|
||||
|
||||
---@return boolean is_collected
|
||||
---@return boolean is_deferred
|
||||
__evolved_collect_garbage = function()
|
||||
if __defer_depth > 0 then
|
||||
__defer_call_hook(__evolved_collect_garbage)
|
||||
return false, true
|
||||
return
|
||||
end
|
||||
|
||||
__evolved_defer()
|
||||
@@ -5922,7 +5894,6 @@ __evolved_collect_garbage = function()
|
||||
end
|
||||
|
||||
__evolved_commit()
|
||||
return true, false
|
||||
end
|
||||
|
||||
---
|
||||
@@ -6036,7 +6007,6 @@ function __builder_fns.entity_builder:set(fragment, ...)
|
||||
end
|
||||
|
||||
---@return evolved.entity entity
|
||||
---@return boolean spawned_or_deferred
|
||||
function __builder_fns.entity_builder:build()
|
||||
local fragment_list = self.__fragment_list
|
||||
local component_list = self.__component_list
|
||||
@@ -6047,18 +6017,18 @@ function __builder_fns.entity_builder:build()
|
||||
self.__component_count = nil
|
||||
|
||||
if component_count == 0 then
|
||||
return __evolved_id(), false
|
||||
return __evolved_id()
|
||||
end
|
||||
|
||||
---@cast fragment_list -?
|
||||
---@cast component_list -?
|
||||
|
||||
local entity, spawned_or_deferred = __evolved_spawn_with(fragment_list, component_list)
|
||||
local entity = __evolved_spawn_with(fragment_list, component_list)
|
||||
|
||||
__release_table(__table_pool_tag.fragment_list, fragment_list)
|
||||
__release_table(__table_pool_tag.component_list, component_list)
|
||||
|
||||
return entity, spawned_or_deferred
|
||||
return entity
|
||||
end
|
||||
|
||||
---
|
||||
@@ -6143,7 +6113,6 @@ function __builder_fns.fragment_builder:destroy_policy(destroy_policy)
|
||||
end
|
||||
|
||||
---@return evolved.fragment fragment
|
||||
---@return boolean spawned_or_deferred
|
||||
function __builder_fns.fragment_builder:build()
|
||||
local tag = self.__tag
|
||||
local name = self.__name
|
||||
@@ -6233,12 +6202,12 @@ function __builder_fns.fragment_builder:build()
|
||||
component_list[component_count] = destroy_policy
|
||||
end
|
||||
|
||||
local spawned_or_deferred = __evolved_multi_set(fragment, fragment_list, component_list)
|
||||
__evolved_multi_set(fragment, fragment_list, component_list)
|
||||
|
||||
__release_table(__table_pool_tag.fragment_list, fragment_list)
|
||||
__release_table(__table_pool_tag.component_list, component_list)
|
||||
|
||||
return fragment, spawned_or_deferred
|
||||
return fragment
|
||||
end
|
||||
|
||||
---
|
||||
@@ -6322,7 +6291,6 @@ function __builder_fns.query_builder:exclude(...)
|
||||
end
|
||||
|
||||
---@return evolved.query query
|
||||
---@return boolean spawned_or_deferred
|
||||
function __builder_fns.query_builder:build()
|
||||
local name = self.__name
|
||||
local single = self.__single
|
||||
@@ -6364,12 +6332,12 @@ function __builder_fns.query_builder:build()
|
||||
component_list[component_count] = exclude_list
|
||||
end
|
||||
|
||||
local spawner_or_deferred = __evolved_multi_set(query, fragment_list, component_list)
|
||||
__evolved_multi_set(query, fragment_list, component_list)
|
||||
|
||||
__release_table(__table_pool_tag.fragment_list, fragment_list)
|
||||
__release_table(__table_pool_tag.component_list, component_list)
|
||||
|
||||
return query, spawner_or_deferred
|
||||
return query
|
||||
end
|
||||
|
||||
---
|
||||
@@ -6452,7 +6420,6 @@ function __builder_fns.group_builder:epilogue(epilogue)
|
||||
end
|
||||
|
||||
---@return evolved.group group
|
||||
---@return boolean spawned_or_deferred
|
||||
function __builder_fns.group_builder:build()
|
||||
local name = self.__name
|
||||
local single = self.__single
|
||||
@@ -6518,12 +6485,12 @@ function __builder_fns.group_builder:build()
|
||||
component_list[component_count] = epilogue
|
||||
end
|
||||
|
||||
local spawner_or_deferred = __evolved_multi_set(group, fragment_list, component_list)
|
||||
__evolved_multi_set(group, fragment_list, component_list)
|
||||
|
||||
__release_table(__table_pool_tag.fragment_list, fragment_list)
|
||||
__release_table(__table_pool_tag.component_list, component_list)
|
||||
|
||||
return group, spawner_or_deferred
|
||||
return group
|
||||
end
|
||||
|
||||
---
|
||||
@@ -6573,7 +6540,6 @@ function __builder_fns.phase_builder:epilogue(epilogue)
|
||||
end
|
||||
|
||||
---@return evolved.phase phase
|
||||
---@return boolean spawned_or_deferred
|
||||
function __builder_fns.phase_builder:build()
|
||||
local name = self.__name
|
||||
local single = self.__single
|
||||
@@ -6623,12 +6589,12 @@ function __builder_fns.phase_builder:build()
|
||||
component_list[component_count] = epilogue
|
||||
end
|
||||
|
||||
local spawned_or_deferred = __evolved_multi_set(phase, fragment_list, component_list)
|
||||
__evolved_multi_set(phase, fragment_list, component_list)
|
||||
|
||||
__release_table(__table_pool_tag.fragment_list, fragment_list)
|
||||
__release_table(__table_pool_tag.component_list, component_list)
|
||||
|
||||
return phase, spawned_or_deferred
|
||||
return phase
|
||||
end
|
||||
|
||||
---
|
||||
@@ -6699,7 +6665,6 @@ function __builder_fns.system_builder:epilogue(epilogue)
|
||||
end
|
||||
|
||||
---@return evolved.system system
|
||||
---@return boolean spawned_or_deferred
|
||||
function __builder_fns.system_builder:build()
|
||||
local name = self.__name
|
||||
local single = self.__single
|
||||
@@ -6773,12 +6738,12 @@ function __builder_fns.system_builder:build()
|
||||
component_list[component_count] = epilogue
|
||||
end
|
||||
|
||||
local spawned_or_deferred = __evolved_multi_set(system, fragment_list, component_list)
|
||||
__evolved_multi_set(system, fragment_list, component_list)
|
||||
|
||||
__release_table(__table_pool_tag.fragment_list, fragment_list)
|
||||
__release_table(__table_pool_tag.component_list, component_list)
|
||||
|
||||
return system, spawned_or_deferred
|
||||
return system
|
||||
end
|
||||
|
||||
---
|
||||
@@ -6817,15 +6782,15 @@ local function __update_fragment_hooks(fragment)
|
||||
__trace_fragment_chunks(fragment, __update_chunk_caches_trace, fragment)
|
||||
end
|
||||
|
||||
assert(__evolved_set(__ON_SET, __ON_INSERT, __update_fragment_hooks))
|
||||
assert(__evolved_set(__ON_ASSIGN, __ON_INSERT, __update_fragment_hooks))
|
||||
assert(__evolved_set(__ON_INSERT, __ON_INSERT, __update_fragment_hooks))
|
||||
assert(__evolved_set(__ON_REMOVE, __ON_INSERT, __update_fragment_hooks))
|
||||
__evolved_set(__ON_SET, __ON_INSERT, __update_fragment_hooks)
|
||||
__evolved_set(__ON_ASSIGN, __ON_INSERT, __update_fragment_hooks)
|
||||
__evolved_set(__ON_INSERT, __ON_INSERT, __update_fragment_hooks)
|
||||
__evolved_set(__ON_REMOVE, __ON_INSERT, __update_fragment_hooks)
|
||||
|
||||
assert(__evolved_set(__ON_SET, __ON_REMOVE, __update_fragment_hooks))
|
||||
assert(__evolved_set(__ON_ASSIGN, __ON_REMOVE, __update_fragment_hooks))
|
||||
assert(__evolved_set(__ON_INSERT, __ON_REMOVE, __update_fragment_hooks))
|
||||
assert(__evolved_set(__ON_REMOVE, __ON_REMOVE, __update_fragment_hooks))
|
||||
__evolved_set(__ON_SET, __ON_REMOVE, __update_fragment_hooks)
|
||||
__evolved_set(__ON_ASSIGN, __ON_REMOVE, __update_fragment_hooks)
|
||||
__evolved_set(__ON_INSERT, __ON_REMOVE, __update_fragment_hooks)
|
||||
__evolved_set(__ON_REMOVE, __ON_REMOVE, __update_fragment_hooks)
|
||||
|
||||
---
|
||||
---
|
||||
@@ -6900,14 +6865,14 @@ local function __update_fragment_constructs(fragment)
|
||||
__trace_fragment_chunks(fragment, __update_chunk_caches_trace, fragment)
|
||||
end
|
||||
|
||||
assert(__evolved_set(__TAG, __ON_INSERT, __update_fragment_tags))
|
||||
assert(__evolved_set(__TAG, __ON_REMOVE, __update_fragment_tags))
|
||||
__evolved_set(__TAG, __ON_INSERT, __update_fragment_tags)
|
||||
__evolved_set(__TAG, __ON_REMOVE, __update_fragment_tags)
|
||||
|
||||
assert(__evolved_set(__DEFAULT, __ON_INSERT, __update_fragment_defaults))
|
||||
assert(__evolved_set(__DEFAULT, __ON_REMOVE, __update_fragment_defaults))
|
||||
__evolved_set(__DEFAULT, __ON_INSERT, __update_fragment_defaults)
|
||||
__evolved_set(__DEFAULT, __ON_REMOVE, __update_fragment_defaults)
|
||||
|
||||
assert(__evolved_set(__CONSTRUCT, __ON_INSERT, __update_fragment_constructs))
|
||||
assert(__evolved_set(__CONSTRUCT, __ON_REMOVE, __update_fragment_constructs))
|
||||
__evolved_set(__CONSTRUCT, __ON_INSERT, __update_fragment_constructs)
|
||||
__evolved_set(__CONSTRUCT, __ON_REMOVE, __update_fragment_constructs)
|
||||
|
||||
---
|
||||
---
|
||||
@@ -6915,35 +6880,35 @@ assert(__evolved_set(__CONSTRUCT, __ON_REMOVE, __update_fragment_constructs))
|
||||
---
|
||||
---
|
||||
|
||||
assert(__evolved_set(__TAG, __NAME, 'TAG'))
|
||||
__evolved_set(__TAG, __NAME, 'TAG')
|
||||
|
||||
assert(__evolved_set(__NAME, __NAME, 'NAME'))
|
||||
assert(__evolved_set(__DEFAULT, __NAME, 'DEFAULT'))
|
||||
assert(__evolved_set(__CONSTRUCT, __NAME, 'CONSTRUCT'))
|
||||
__evolved_set(__NAME, __NAME, 'NAME')
|
||||
__evolved_set(__DEFAULT, __NAME, 'DEFAULT')
|
||||
__evolved_set(__CONSTRUCT, __NAME, 'CONSTRUCT')
|
||||
|
||||
assert(__evolved_set(__INCLUDES, __NAME, 'INCLUDES'))
|
||||
assert(__evolved_set(__EXCLUDES, __NAME, 'EXCLUDES'))
|
||||
__evolved_set(__INCLUDES, __NAME, 'INCLUDES')
|
||||
__evolved_set(__EXCLUDES, __NAME, 'EXCLUDES')
|
||||
|
||||
assert(__evolved_set(__ON_SET, __NAME, 'ON_SET'))
|
||||
assert(__evolved_set(__ON_ASSIGN, __NAME, 'ON_ASSIGN'))
|
||||
assert(__evolved_set(__ON_INSERT, __NAME, 'ON_INSERT'))
|
||||
assert(__evolved_set(__ON_REMOVE, __NAME, 'ON_REMOVE'))
|
||||
__evolved_set(__ON_SET, __NAME, 'ON_SET')
|
||||
__evolved_set(__ON_ASSIGN, __NAME, 'ON_ASSIGN')
|
||||
__evolved_set(__ON_INSERT, __NAME, 'ON_INSERT')
|
||||
__evolved_set(__ON_REMOVE, __NAME, 'ON_REMOVE')
|
||||
|
||||
assert(__evolved_set(__PHASE, __NAME, 'PHASE'))
|
||||
assert(__evolved_set(__GROUP, __NAME, 'GROUP'))
|
||||
assert(__evolved_set(__AFTER, __NAME, 'AFTER'))
|
||||
__evolved_set(__PHASE, __NAME, 'PHASE')
|
||||
__evolved_set(__GROUP, __NAME, 'GROUP')
|
||||
__evolved_set(__AFTER, __NAME, 'AFTER')
|
||||
|
||||
assert(__evolved_set(__QUERY, __NAME, 'QUERY'))
|
||||
assert(__evolved_set(__EXECUTE, __NAME, 'EXECUTE'))
|
||||
__evolved_set(__QUERY, __NAME, 'QUERY')
|
||||
__evolved_set(__EXECUTE, __NAME, 'EXECUTE')
|
||||
|
||||
assert(__evolved_set(__PROLOGUE, __NAME, 'PROLOGUE'))
|
||||
assert(__evolved_set(__EPILOGUE, __NAME, 'EPILOGUE'))
|
||||
__evolved_set(__PROLOGUE, __NAME, 'PROLOGUE')
|
||||
__evolved_set(__EPILOGUE, __NAME, 'EPILOGUE')
|
||||
|
||||
assert(__evolved_set(__DISABLED, __NAME, 'DISABLED'))
|
||||
__evolved_set(__DISABLED, __NAME, 'DISABLED')
|
||||
|
||||
assert(__evolved_set(__DESTROY_POLICY, __NAME, 'DESTROY_POLICY'))
|
||||
assert(__evolved_set(__DESTROY_POLICY_DESTROY_ENTITY, __NAME, 'DESTROY_POLICY_DESTROY_ENTITY'))
|
||||
assert(__evolved_set(__DESTROY_POLICY_REMOVE_FRAGMENT, __NAME, 'DESTROY_POLICY_REMOVE_FRAGMENT'))
|
||||
__evolved_set(__DESTROY_POLICY, __NAME, 'DESTROY_POLICY')
|
||||
__evolved_set(__DESTROY_POLICY_DESTROY_ENTITY, __NAME, 'DESTROY_POLICY_DESTROY_ENTITY')
|
||||
__evolved_set(__DESTROY_POLICY_REMOVE_FRAGMENT, __NAME, 'DESTROY_POLICY_REMOVE_FRAGMENT')
|
||||
|
||||
---
|
||||
---
|
||||
@@ -6951,14 +6916,14 @@ assert(__evolved_set(__DESTROY_POLICY_REMOVE_FRAGMENT, __NAME, 'DESTROY_POLICY_R
|
||||
---
|
||||
---
|
||||
|
||||
assert(__evolved_set(__TAG, __TAG))
|
||||
__evolved_set(__TAG, __TAG)
|
||||
|
||||
assert(__evolved_set(__INCLUDES, __CONSTRUCT, __component_list))
|
||||
assert(__evolved_set(__EXCLUDES, __CONSTRUCT, __component_list))
|
||||
__evolved_set(__INCLUDES, __CONSTRUCT, __component_list)
|
||||
__evolved_set(__EXCLUDES, __CONSTRUCT, __component_list)
|
||||
|
||||
assert(__evolved_set(__AFTER, __CONSTRUCT, __component_list))
|
||||
__evolved_set(__AFTER, __CONSTRUCT, __component_list)
|
||||
|
||||
assert(__evolved_set(__DISABLED, __TAG))
|
||||
__evolved_set(__DISABLED, __TAG)
|
||||
|
||||
---
|
||||
---
|
||||
@@ -6968,7 +6933,7 @@ assert(__evolved_set(__DISABLED, __TAG))
|
||||
|
||||
---@param query evolved.query
|
||||
---@param include_list evolved.fragment[]
|
||||
assert(__evolved_set(__INCLUDES, __ON_SET, function(query, _, include_list)
|
||||
__evolved_set(__INCLUDES, __ON_SET, function(query, _, include_list)
|
||||
local include_count = #include_list
|
||||
|
||||
if include_count == 0 then
|
||||
@@ -6985,11 +6950,11 @@ assert(__evolved_set(__INCLUDES, __ON_SET, function(query, _, include_list)
|
||||
|
||||
__assoc_list_sort(sorted_includes)
|
||||
__query_sorted_includes[query] = sorted_includes
|
||||
end))
|
||||
end)
|
||||
|
||||
assert(__evolved_set(__INCLUDES, __ON_REMOVE, function(query)
|
||||
__evolved_set(__INCLUDES, __ON_REMOVE, function(query)
|
||||
__query_sorted_includes[query] = nil
|
||||
end))
|
||||
end)
|
||||
|
||||
---
|
||||
---
|
||||
@@ -6999,7 +6964,7 @@ end))
|
||||
|
||||
---@param query evolved.query
|
||||
---@param exclude_list evolved.fragment[]
|
||||
assert(__evolved_set(__EXCLUDES, __ON_SET, function(query, _, exclude_list)
|
||||
__evolved_set(__EXCLUDES, __ON_SET, function(query, _, exclude_list)
|
||||
local exclude_count = #exclude_list
|
||||
|
||||
if exclude_count == 0 then
|
||||
@@ -7016,11 +6981,11 @@ assert(__evolved_set(__EXCLUDES, __ON_SET, function(query, _, exclude_list)
|
||||
|
||||
__assoc_list_sort(sorted_excludes)
|
||||
__query_sorted_excludes[query] = sorted_excludes
|
||||
end))
|
||||
end)
|
||||
|
||||
assert(__evolved_set(__EXCLUDES, __ON_REMOVE, function(query)
|
||||
__evolved_set(__EXCLUDES, __ON_REMOVE, function(query)
|
||||
__query_sorted_excludes[query] = nil
|
||||
end))
|
||||
end)
|
||||
|
||||
---
|
||||
---
|
||||
@@ -7031,7 +6996,7 @@ end))
|
||||
---@param group evolved.group
|
||||
---@param new_phase evolved.phase
|
||||
---@param old_phase? evolved.phase
|
||||
assert(__evolved_set(__PHASE, __ON_SET, function(group, _, new_phase, old_phase)
|
||||
__evolved_set(__PHASE, __ON_SET, function(group, _, new_phase, old_phase)
|
||||
if new_phase == old_phase then
|
||||
return
|
||||
end
|
||||
@@ -7056,11 +7021,11 @@ assert(__evolved_set(__PHASE, __ON_SET, function(group, _, new_phase, old_phase)
|
||||
end
|
||||
|
||||
__assoc_list_insert(new_phase_groups, group)
|
||||
end))
|
||||
end)
|
||||
|
||||
---@param group evolved.group
|
||||
---@param old_phase evolved.phase
|
||||
assert(__evolved_set(__PHASE, __ON_REMOVE, function(group, _, old_phase)
|
||||
__evolved_set(__PHASE, __ON_REMOVE, function(group, _, old_phase)
|
||||
local old_phase_groups = __phase_groups[old_phase]
|
||||
|
||||
if old_phase_groups then
|
||||
@@ -7070,7 +7035,7 @@ assert(__evolved_set(__PHASE, __ON_REMOVE, function(group, _, old_phase)
|
||||
__phase_groups[old_phase] = nil
|
||||
end
|
||||
end
|
||||
end))
|
||||
end)
|
||||
|
||||
---
|
||||
---
|
||||
@@ -7081,7 +7046,7 @@ end))
|
||||
---@param system evolved.system
|
||||
---@param new_group evolved.group
|
||||
---@param old_group? evolved.group
|
||||
assert(__evolved_set(__GROUP, __ON_SET, function(system, _, new_group, old_group)
|
||||
__evolved_set(__GROUP, __ON_SET, function(system, _, new_group, old_group)
|
||||
if new_group == old_group then
|
||||
return
|
||||
end
|
||||
@@ -7106,11 +7071,11 @@ assert(__evolved_set(__GROUP, __ON_SET, function(system, _, new_group, old_group
|
||||
end
|
||||
|
||||
__assoc_list_insert(new_group_systems, system)
|
||||
end))
|
||||
end)
|
||||
|
||||
---@param system evolved.system
|
||||
---@param old_group evolved.group
|
||||
assert(__evolved_set(__GROUP, __ON_REMOVE, function(system, _, old_group)
|
||||
__evolved_set(__GROUP, __ON_REMOVE, function(system, _, old_group)
|
||||
local old_group_systems = __group_systems[old_group]
|
||||
|
||||
if old_group_systems then
|
||||
@@ -7120,7 +7085,7 @@ assert(__evolved_set(__GROUP, __ON_REMOVE, function(system, _, old_group)
|
||||
__group_systems[old_group] = nil
|
||||
end
|
||||
end
|
||||
end))
|
||||
end)
|
||||
|
||||
---
|
||||
---
|
||||
@@ -7130,7 +7095,7 @@ end))
|
||||
|
||||
---@param group evolved.group
|
||||
---@param new_after_list evolved.group[]
|
||||
assert(__evolved_set(__AFTER, __ON_SET, function(group, _, new_after_list)
|
||||
__evolved_set(__AFTER, __ON_SET, function(group, _, new_after_list)
|
||||
local new_after_count = #new_after_list
|
||||
|
||||
if new_after_count == 0 then
|
||||
@@ -7146,12 +7111,12 @@ assert(__evolved_set(__AFTER, __ON_SET, function(group, _, new_after_list)
|
||||
end
|
||||
|
||||
__group_dependencies[group] = new_dependencies
|
||||
end))
|
||||
end)
|
||||
|
||||
---@param group evolved.group
|
||||
assert(__evolved_set(__AFTER, __ON_REMOVE, function(group)
|
||||
__evolved_set(__AFTER, __ON_REMOVE, function(group)
|
||||
__group_dependencies[group] = nil
|
||||
end))
|
||||
end)
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user