diff --git a/README.md b/README.md index ba66222..3317dca 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ spawn_with :: fragment[]?, component[]? -> entity, boolean ``` entity :: entity_builder entity_builder:set :: fragment, any... -> entity_builder -entity_builder:build :: entity +entity_builder:build :: entity, boolean ``` ``` @@ -96,14 +96,14 @@ fragment :: fragment_builder fragment_builder:tag :: fragment_builder fragment_builder:default :: component -> fragment_builder fragment_builder:construct :: {any... -> component} -> fragment_builder -fragment_builder:build :: fragment +fragment_builder:build :: fragment, boolean ``` ``` query :: query_builder query_builder:include :: fragment... -> query_builder query_builder:exclude :: fragment... -> query_builder -query_builder:build :: query +query_builder:build :: query, boolean ``` ## [License (MIT)](./LICENSE.md) diff --git a/evolved.lua b/evolved.lua index 7e85356..5d8f840 100644 --- a/evolved.lua +++ b/evolved.lua @@ -3866,6 +3866,7 @@ function evolved_entity_builder:set(fragment, ...) end ---@return evolved.entity entity +---@return boolean is_deferred function evolved_entity_builder:build() local fragment_list = self.__fragment_list local component_list = self.__component_list @@ -3876,15 +3877,15 @@ function evolved_entity_builder:build() self.__component_count = 0 if component_count == 0 then - return evolved.id() + return evolved.id(), false end - local entity = evolved.spawn_with(fragment_list, component_list) + local entity, is_deferred = 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 + return entity, is_deferred end --- @@ -3936,6 +3937,7 @@ function evolved_fragment_builder:construct(construct) end ---@return evolved.fragment fragment +---@return boolean is_deferred function evolved_fragment_builder:build() local tag = self.__tag local default = self.__default @@ -3968,15 +3970,15 @@ function evolved_fragment_builder:build() end if component_count == 0 then - return evolved.id() + return evolved.id(), false end - local fragment = evolved.spawn_with(fragment_list, component_list) + local fragment, is_deferred = 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 fragment + return fragment, is_deferred end --- @@ -4058,6 +4060,7 @@ function evolved_query_builder:exclude(...) end ---@return evolved.query query +---@return boolean is_deferred function evolved_query_builder:build() local include_list = self.__include_list local exclude_list = self.__exclude_list @@ -4082,15 +4085,15 @@ function evolved_query_builder:build() end if component_count == 0 then - return evolved.id() + return evolved.id(), false end - local query = evolved.spawn_with(fragment_list, component_list) + local query, is_deferred = 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 query + return query, is_deferred end ---