simplify set/assign/insert signatures

This commit is contained in:
BlackMATov
2024-12-28 09:51:44 +07:00
parent 65388f8628
commit c50b740e3c
2 changed files with 35 additions and 33 deletions

View File

@@ -14,9 +14,9 @@ has :: entity, fragment -> boolean
has_all :: entity, fragment... -> boolean has_all :: entity, fragment... -> boolean
has_any :: entity, fragment... -> boolean has_any :: entity, fragment... -> boolean
set :: entity, fragment, component, any... -> boolean, boolean set :: entity, fragment, any... -> boolean, boolean
assign :: entity, fragment, component, any... -> boolean, boolean assign :: entity, fragment, any... -> boolean, boolean
insert :: entity, fragment, component, any... -> boolean, boolean insert :: entity, fragment, any... -> boolean, boolean
remove :: entity, fragment... -> boolean, boolean remove :: entity, fragment... -> boolean, boolean
clear :: entity -> boolean, boolean clear :: entity -> boolean, boolean

View File

@@ -154,13 +154,21 @@ evolved.EXCLUDE_LIST = __acquire_id()
---@param entity evolved.entity ---@param entity evolved.entity
---@param fragment evolved.fragment ---@param fragment evolved.fragment
---@param component evolved.component ---@param ... any component arguments
---@param ... any construct additional parameters
---@return evolved.component ---@return evolved.component
local function __construct(entity, fragment, component, ...) local function __construct(entity, fragment, ...)
local default, construct = evolved.get(fragment, evolved.DEFAULT, evolved.CONSTRUCT) local default, construct = evolved.get(fragment, evolved.DEFAULT, evolved.CONSTRUCT)
if construct ~= nil then component = construct(entity, fragment, component, ...) end
if component == nil then component = default end local component = ...
if construct ~= nil then
component = construct(entity, fragment, ...)
end
if component == nil then
component = default
end
return component == nil and true or component return component == nil and true or component
end end
@@ -622,10 +630,9 @@ end
---@param entity evolved.entity ---@param entity evolved.entity
---@param fragment evolved.fragment ---@param fragment evolved.fragment
---@param component evolved.component ---@param ... any component arguments
---@param ... any construct additional parameters local function __defer_set(entity, fragment, ...)
local function __defer_set(entity, fragment, component, ...) local component = __construct(entity, fragment, ...)
component = __construct(entity, fragment, component, ...)
local bytes = __defer_bytecode local bytes = __defer_bytecode
local length = __defer_bytecode_length local length = __defer_bytecode_length
@@ -640,10 +647,9 @@ end
---@param entity evolved.entity ---@param entity evolved.entity
---@param fragment evolved.fragment ---@param fragment evolved.fragment
---@param component evolved.component ---@param ... any component arguments
---@param ... any construct additional parameters local function __defer_assign(entity, fragment, ...)
local function __defer_assign(entity, fragment, component, ...) local component = __construct(entity, fragment, ...)
component = __construct(entity, fragment, component, ...)
local bytes = __defer_bytecode local bytes = __defer_bytecode
local length = __defer_bytecode_length local length = __defer_bytecode_length
@@ -658,10 +664,9 @@ end
---@param entity evolved.entity ---@param entity evolved.entity
---@param fragment evolved.fragment ---@param fragment evolved.fragment
---@param component evolved.component ---@param ... any component arguments
---@param ... any construct additional parameters local function __defer_insert(entity, fragment, ...)
local function __defer_insert(entity, fragment, component, ...) local component = __construct(entity, fragment, ...)
component = __construct(entity, fragment, component, ...)
local bytes = __defer_bytecode local bytes = __defer_bytecode
local length = __defer_bytecode_length local length = __defer_bytecode_length
@@ -723,7 +728,7 @@ end
--- ---
---@param count? integer ---@param count? integer
---@return evolved.id ... ---@return evolved.id ... ids
---@nodiscard ---@nodiscard
function evolved.id(count) function evolved.id(count)
count = count or 1 count = count or 1
@@ -855,12 +860,11 @@ end
---@param entity evolved.entity ---@param entity evolved.entity
---@param fragment evolved.fragment ---@param fragment evolved.fragment
---@param component evolved.component ---@param ... any component arguments
---@param ... any construct additional parameters
---@return boolean is_set ---@return boolean is_set
---@return boolean is_deferred ---@return boolean is_deferred
function evolved.set(entity, fragment, component, ...) function evolved.set(entity, fragment, ...)
component = __construct(entity, fragment, component, ...) local component = __construct(entity, fragment, ...)
if __defer_depth > 0 then if __defer_depth > 0 then
__defer_set(entity, fragment, component) __defer_set(entity, fragment, component)
@@ -915,12 +919,11 @@ end
---@param entity evolved.entity ---@param entity evolved.entity
---@param fragment evolved.fragment ---@param fragment evolved.fragment
---@param component evolved.component ---@param ... any component arguments
---@param ... any construct additional parameters
---@return boolean is_assigned ---@return boolean is_assigned
---@return boolean is_deferred ---@return boolean is_deferred
function evolved.assign(entity, fragment, component, ...) function evolved.assign(entity, fragment, ...)
component = __construct(entity, fragment, component, ...) local component = __construct(entity, fragment, ...)
if __defer_depth > 0 then if __defer_depth > 0 then
__defer_assign(entity, fragment, component) __defer_assign(entity, fragment, component)
@@ -949,12 +952,11 @@ end
---@param entity evolved.entity ---@param entity evolved.entity
---@param fragment evolved.fragment ---@param fragment evolved.fragment
---@param component evolved.component ---@param ... any component arguments
---@param ... any construct additional parameters
---@return boolean is_inserted ---@return boolean is_inserted
---@return boolean is_deferred ---@return boolean is_deferred
function evolved.insert(entity, fragment, component, ...) function evolved.insert(entity, fragment, ...)
component = __construct(entity, fragment, component, ...) local component = __construct(entity, fragment, ...)
if __defer_depth > 0 then if __defer_depth > 0 then
__defer_insert(entity, fragment, component) __defer_insert(entity, fragment, component)