mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-14 12:10:23 +07:00
disabled tag for phases, groups, systems
This commit is contained in:
@@ -45,6 +45,8 @@ EXECUTE :: fragment
|
|||||||
PROLOGUE :: fragment
|
PROLOGUE :: fragment
|
||||||
EPILOGUE :: fragment
|
EPILOGUE :: fragment
|
||||||
|
|
||||||
|
DISABLED :: fragment
|
||||||
|
|
||||||
DESTROY_POLICY :: fragment
|
DESTROY_POLICY :: fragment
|
||||||
DESTROY_POLICY_DESTROY_ENTITY :: id
|
DESTROY_POLICY_DESTROY_ENTITY :: id
|
||||||
DESTROY_POLICY_REMOVE_FRAGMENT :: id
|
DESTROY_POLICY_REMOVE_FRAGMENT :: id
|
||||||
@@ -153,6 +155,7 @@ query_builder:build :: query, boolean
|
|||||||
group :: group_builder
|
group :: group_builder
|
||||||
group_builder:name :: string -> group_builder
|
group_builder:name :: string -> group_builder
|
||||||
group_builder:single :: component -> group_builder
|
group_builder:single :: component -> group_builder
|
||||||
|
group_builder:disable :: group_builder
|
||||||
group_builder:phase :: phase -> group_builder
|
group_builder:phase :: phase -> group_builder
|
||||||
group_builder:after :: group... -> group_builder
|
group_builder:after :: group... -> group_builder
|
||||||
group_builder:build :: group, boolean
|
group_builder:build :: group, boolean
|
||||||
@@ -162,6 +165,7 @@ group_builder:build :: group, boolean
|
|||||||
phase :: phase_builder
|
phase :: phase_builder
|
||||||
phase_builder:name :: string -> phase_builder
|
phase_builder:name :: string -> phase_builder
|
||||||
phase_builder:single :: component -> phase_builder
|
phase_builder:single :: component -> phase_builder
|
||||||
|
phase_builder:disable :: phase_builder
|
||||||
phase_builder:build :: phase, boolean
|
phase_builder:build :: phase, boolean
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -169,6 +173,7 @@ phase_builder:build :: phase, boolean
|
|||||||
system :: system_builder
|
system :: system_builder
|
||||||
system_builder:name :: string -> system_builder
|
system_builder:name :: string -> system_builder
|
||||||
system_builder:single :: component -> system_builder
|
system_builder:single :: component -> system_builder
|
||||||
|
system_builder:disable :: system_builder
|
||||||
system_builder:group :: group -> system_builder
|
system_builder:group :: group -> system_builder
|
||||||
system_builder:query :: query -> system_builder
|
system_builder:query :: query -> system_builder
|
||||||
system_builder:execute :: {chunk, entity[], integer} -> system_builder
|
system_builder:execute :: {chunk, entity[], integer} -> system_builder
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
## Backlog
|
## Backlog
|
||||||
|
|
||||||
- should set/assign/insert return a constructed component?
|
- should set/assign/insert return a constructed component?
|
||||||
- enable/disable systems and groups
|
|
||||||
|
|
||||||
## After first release
|
## After first release
|
||||||
|
|
||||||
|
|||||||
69
evolved.lua
69
evolved.lua
@@ -593,6 +593,8 @@ local __EXECUTE = __acquire_id()
|
|||||||
local __PROLOGUE = __acquire_id()
|
local __PROLOGUE = __acquire_id()
|
||||||
local __EPILOGUE = __acquire_id()
|
local __EPILOGUE = __acquire_id()
|
||||||
|
|
||||||
|
local __DISABLED = __acquire_id()
|
||||||
|
|
||||||
local __DESTROY_POLICY = __acquire_id()
|
local __DESTROY_POLICY = __acquire_id()
|
||||||
local __DESTROY_POLICY_DESTROY_ENTITY = __acquire_id()
|
local __DESTROY_POLICY_DESTROY_ENTITY = __acquire_id()
|
||||||
local __DESTROY_POLICY_REMOVE_FRAGMENT = __acquire_id()
|
local __DESTROY_POLICY_REMOVE_FRAGMENT = __acquire_id()
|
||||||
@@ -3377,7 +3379,10 @@ local function __group_process(group)
|
|||||||
local group_system_count = group_systems and group_systems.__item_count or 0 --[[@as integer]]
|
local group_system_count = group_systems and group_systems.__item_count or 0 --[[@as integer]]
|
||||||
|
|
||||||
for group_system_index = 1, group_system_count do
|
for group_system_index = 1, group_system_count do
|
||||||
__system_process(group_system_list[group_system_index])
|
local group_system = group_system_list[group_system_index]
|
||||||
|
if not __evolved_has(group_system, __DISABLED) then
|
||||||
|
__system_process(group_system)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -3471,7 +3476,10 @@ local function __phase_process(phase)
|
|||||||
end
|
end
|
||||||
|
|
||||||
for sorted_group_index = 1, sorted_group_count do
|
for sorted_group_index = 1, sorted_group_count do
|
||||||
__group_process(sorted_group_list[sorted_group_index])
|
local sorted_group = sorted_group_list[sorted_group_index]
|
||||||
|
if not __evolved_has(sorted_group, __DISABLED) then
|
||||||
|
__group_process(sorted_group)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
__release_table(__table_pool_tag.group_list, sorted_group_list)
|
__release_table(__table_pool_tag.group_list, sorted_group_list)
|
||||||
@@ -7318,7 +7326,11 @@ __evolved_process = function(...)
|
|||||||
end
|
end
|
||||||
|
|
||||||
for i = 1, __lua_select('#', ...) do
|
for i = 1, __lua_select('#', ...) do
|
||||||
__phase_process(__lua_select(i, ...))
|
---@type evolved.phase
|
||||||
|
local phase = __lua_select(i, ...)
|
||||||
|
if not __evolved_has(phase, __DISABLED) then
|
||||||
|
__phase_process(phase)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -7530,6 +7542,7 @@ __builder_fns.query_builder.__index = __builder_fns.query_builder
|
|||||||
---@class evolved.group_builder
|
---@class evolved.group_builder
|
||||||
---@field package __name? string
|
---@field package __name? string
|
||||||
---@field package __single? evolved.component
|
---@field package __single? evolved.component
|
||||||
|
---@field package __disable? boolean
|
||||||
---@field package __phase? evolved.phase
|
---@field package __phase? evolved.phase
|
||||||
---@field package __after? evolved.group[]
|
---@field package __after? evolved.group[]
|
||||||
__builder_fns.group_builder = {}
|
__builder_fns.group_builder = {}
|
||||||
@@ -7538,12 +7551,14 @@ __builder_fns.group_builder.__index = __builder_fns.group_builder
|
|||||||
---@class evolved.phase_builder
|
---@class evolved.phase_builder
|
||||||
---@field package __name? string
|
---@field package __name? string
|
||||||
---@field package __single? evolved.component
|
---@field package __single? evolved.component
|
||||||
|
---@field package __disable? boolean
|
||||||
__builder_fns.phase_builder = {}
|
__builder_fns.phase_builder = {}
|
||||||
__builder_fns.phase_builder.__index = __builder_fns.phase_builder
|
__builder_fns.phase_builder.__index = __builder_fns.phase_builder
|
||||||
|
|
||||||
---@class evolved.system_builder
|
---@class evolved.system_builder
|
||||||
---@field package __name? string
|
---@field package __name? string
|
||||||
---@field package __single? evolved.component
|
---@field package __single? evolved.component
|
||||||
|
---@field package __disable? boolean
|
||||||
---@field package __group? evolved.group
|
---@field package __group? evolved.group
|
||||||
---@field package __query? evolved.query
|
---@field package __query? evolved.query
|
||||||
---@field package __execute? evolved.execute
|
---@field package __execute? evolved.execute
|
||||||
@@ -7956,6 +7971,12 @@ function __builder_fns.group_builder:single(single)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@return evolved.group_builder builder
|
||||||
|
function __builder_fns.group_builder:disable()
|
||||||
|
self.__disable = true
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
---@param phase evolved.phase
|
---@param phase evolved.phase
|
||||||
---@return evolved.group_builder builder
|
---@return evolved.group_builder builder
|
||||||
function __builder_fns.group_builder:phase(phase)
|
function __builder_fns.group_builder:phase(phase)
|
||||||
@@ -7994,11 +8015,13 @@ end
|
|||||||
function __builder_fns.group_builder:build()
|
function __builder_fns.group_builder:build()
|
||||||
local name = self.__name
|
local name = self.__name
|
||||||
local single = self.__single
|
local single = self.__single
|
||||||
|
local disable = self.__disable
|
||||||
local phase = self.__phase
|
local phase = self.__phase
|
||||||
local after = self.__after
|
local after = self.__after
|
||||||
|
|
||||||
self.__name = nil
|
self.__name = nil
|
||||||
self.__single = nil
|
self.__single = nil
|
||||||
|
self.__disable = nil
|
||||||
self.__phase = nil
|
self.__phase = nil
|
||||||
self.__after = nil
|
self.__after = nil
|
||||||
|
|
||||||
@@ -8020,6 +8043,12 @@ function __builder_fns.group_builder:build()
|
|||||||
component_list[component_count] = single
|
component_list[component_count] = single
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if disable then
|
||||||
|
component_count = component_count + 1
|
||||||
|
fragment_list[component_count] = __DISABLED
|
||||||
|
component_list[component_count] = true
|
||||||
|
end
|
||||||
|
|
||||||
if phase then
|
if phase then
|
||||||
component_count = component_count + 1
|
component_count = component_count + 1
|
||||||
fragment_list[component_count] = __PHASE
|
fragment_list[component_count] = __PHASE
|
||||||
@@ -8066,14 +8095,22 @@ function __builder_fns.phase_builder:single(single)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@return evolved.phase_builder builder
|
||||||
|
function __builder_fns.phase_builder:disable()
|
||||||
|
self.__disable = true
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
---@return evolved.phase phase
|
---@return evolved.phase phase
|
||||||
---@return boolean is_deferred
|
---@return boolean is_deferred
|
||||||
function __builder_fns.phase_builder:build()
|
function __builder_fns.phase_builder:build()
|
||||||
local name = self.__name
|
local name = self.__name
|
||||||
local single = self.__single
|
local single = self.__single
|
||||||
|
local disable = self.__disable
|
||||||
|
|
||||||
self.__name = nil
|
self.__name = nil
|
||||||
self.__single = nil
|
self.__single = nil
|
||||||
|
self.__disable = nil
|
||||||
|
|
||||||
local phase = __evolved_id()
|
local phase = __evolved_id()
|
||||||
|
|
||||||
@@ -8093,6 +8130,12 @@ function __builder_fns.phase_builder:build()
|
|||||||
component_list[component_count] = single
|
component_list[component_count] = single
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if disable then
|
||||||
|
component_count = component_count + 1
|
||||||
|
fragment_list[component_count] = __DISABLED
|
||||||
|
component_list[component_count] = true
|
||||||
|
end
|
||||||
|
|
||||||
local _, is_deferred = __evolved_multi_set(phase, fragment_list, component_list)
|
local _, is_deferred = __evolved_multi_set(phase, fragment_list, component_list)
|
||||||
|
|
||||||
__release_table(__table_pool_tag.fragment_list, fragment_list)
|
__release_table(__table_pool_tag.fragment_list, fragment_list)
|
||||||
@@ -8127,6 +8170,12 @@ function __builder_fns.system_builder:single(single)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@return evolved.system_builder builder
|
||||||
|
function __builder_fns.system_builder:disable()
|
||||||
|
self.__disable = true
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
---@param group evolved.group
|
---@param group evolved.group
|
||||||
---@return evolved.system_builder builder
|
---@return evolved.system_builder builder
|
||||||
function __builder_fns.system_builder:group(group)
|
function __builder_fns.system_builder:group(group)
|
||||||
@@ -8167,6 +8216,7 @@ end
|
|||||||
function __builder_fns.system_builder:build()
|
function __builder_fns.system_builder:build()
|
||||||
local name = self.__name
|
local name = self.__name
|
||||||
local single = self.__single
|
local single = self.__single
|
||||||
|
local disable = self.__disable
|
||||||
local group = self.__group
|
local group = self.__group
|
||||||
local query = self.__query
|
local query = self.__query
|
||||||
local execute = self.__execute
|
local execute = self.__execute
|
||||||
@@ -8175,6 +8225,7 @@ function __builder_fns.system_builder:build()
|
|||||||
|
|
||||||
self.__name = nil
|
self.__name = nil
|
||||||
self.__single = nil
|
self.__single = nil
|
||||||
|
self.__disable = nil
|
||||||
self.__group = nil
|
self.__group = nil
|
||||||
self.__query = nil
|
self.__query = nil
|
||||||
self.__execute = nil
|
self.__execute = nil
|
||||||
@@ -8199,6 +8250,12 @@ function __builder_fns.system_builder:build()
|
|||||||
component_list[component_count] = single
|
component_list[component_count] = single
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if disable then
|
||||||
|
component_count = component_count + 1
|
||||||
|
fragment_list[component_count] = __DISABLED
|
||||||
|
component_list[component_count] = true
|
||||||
|
end
|
||||||
|
|
||||||
if group then
|
if group then
|
||||||
component_count = component_count + 1
|
component_count = component_count + 1
|
||||||
fragment_list[component_count] = __GROUP
|
fragment_list[component_count] = __GROUP
|
||||||
@@ -8395,6 +8452,8 @@ assert(__evolved_insert(__EXECUTE, __NAME, 'EXECUTE'))
|
|||||||
assert(__evolved_insert(__PROLOGUE, __NAME, 'PROLOGUE'))
|
assert(__evolved_insert(__PROLOGUE, __NAME, 'PROLOGUE'))
|
||||||
assert(__evolved_insert(__EPILOGUE, __NAME, 'EPILOGUE'))
|
assert(__evolved_insert(__EPILOGUE, __NAME, 'EPILOGUE'))
|
||||||
|
|
||||||
|
assert(__evolved_insert(__DISABLED, __NAME, 'DISABLED'))
|
||||||
|
|
||||||
assert(__evolved_insert(__DESTROY_POLICY, __NAME, 'DESTROY_POLICY'))
|
assert(__evolved_insert(__DESTROY_POLICY, __NAME, 'DESTROY_POLICY'))
|
||||||
assert(__evolved_insert(__DESTROY_POLICY_DESTROY_ENTITY, __NAME, 'DESTROY_POLICY_DESTROY_ENTITY'))
|
assert(__evolved_insert(__DESTROY_POLICY_DESTROY_ENTITY, __NAME, 'DESTROY_POLICY_DESTROY_ENTITY'))
|
||||||
assert(__evolved_insert(__DESTROY_POLICY_REMOVE_FRAGMENT, __NAME, 'DESTROY_POLICY_REMOVE_FRAGMENT'))
|
assert(__evolved_insert(__DESTROY_POLICY_REMOVE_FRAGMENT, __NAME, 'DESTROY_POLICY_REMOVE_FRAGMENT'))
|
||||||
@@ -8412,6 +8471,8 @@ assert(__evolved_insert(__EXCLUDES, __CONSTRUCT, __component_list))
|
|||||||
|
|
||||||
assert(__evolved_insert(__AFTER, __CONSTRUCT, __component_list))
|
assert(__evolved_insert(__AFTER, __CONSTRUCT, __component_list))
|
||||||
|
|
||||||
|
assert(__evolved_insert(__DISABLED, __TAG))
|
||||||
|
|
||||||
---
|
---
|
||||||
---
|
---
|
||||||
---
|
---
|
||||||
@@ -8635,6 +8696,8 @@ evolved.EXECUTE = __EXECUTE
|
|||||||
evolved.PROLOGUE = __PROLOGUE
|
evolved.PROLOGUE = __PROLOGUE
|
||||||
evolved.EPILOGUE = __EPILOGUE
|
evolved.EPILOGUE = __EPILOGUE
|
||||||
|
|
||||||
|
evolved.DISABLED = __DISABLED
|
||||||
|
|
||||||
evolved.DESTROY_POLICY = __DESTROY_POLICY
|
evolved.DESTROY_POLICY = __DESTROY_POLICY
|
||||||
evolved.DESTROY_POLICY_DESTROY_ENTITY = __DESTROY_POLICY_DESTROY_ENTITY
|
evolved.DESTROY_POLICY_DESTROY_ENTITY = __DESTROY_POLICY_DESTROY_ENTITY
|
||||||
evolved.DESTROY_POLICY_REMOVE_FRAGMENT = __DESTROY_POLICY_REMOVE_FRAGMENT
|
evolved.DESTROY_POLICY_REMOVE_FRAGMENT = __DESTROY_POLICY_REMOVE_FRAGMENT
|
||||||
|
|||||||
Reference in New Issue
Block a user