mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-15 12:19:47 +07:00
simplify set/assign/insert signatures
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
62
evolved.lua
62
evolved.lua
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user