mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-15 12:19:47 +07:00
empty function set for pairs
This commit is contained in:
@@ -72,3 +72,18 @@ do
|
|||||||
assert(evo.has_all(e12, evo.pair(p1, evo.ANY), evo.pair(p2, evo.ANY)))
|
assert(evo.has_all(e12, evo.pair(p1, evo.ANY), evo.pair(p2, evo.ANY)))
|
||||||
assert(evo.has_any(e12, evo.pair(p1, evo.ANY), evo.pair(p2, evo.ANY)))
|
assert(evo.has_any(e12, evo.pair(p1, evo.ANY), evo.pair(p2, evo.ANY)))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
do
|
||||||
|
local p1, s1, p2, s2 = evo.id(4)
|
||||||
|
evo.set(p1, s1)
|
||||||
|
evo.set(s1, p1)
|
||||||
|
evo.set(p2, s2)
|
||||||
|
assert(evo.empty(evo.pair(p1, s1)))
|
||||||
|
assert(evo.empty(evo.pair(p2, s2)))
|
||||||
|
assert(evo.empty_all(evo.pair(p1, s1), evo.pair(p2, s2)))
|
||||||
|
assert(evo.empty_any(evo.pair(p1, s1), evo.pair(p2, s2)))
|
||||||
|
assert(not evo.empty_all(evo.pair(p1, s1), evo.pair(p2, s2), p1))
|
||||||
|
assert(evo.empty_any(evo.pair(p1, s1), evo.pair(p2, s2), p1))
|
||||||
|
assert(evo.empty_all(evo.pair(p1, s1), evo.pair(p2, s2), s2))
|
||||||
|
assert(evo.empty_any(evo.pair(p1, s1), evo.pair(p2, s2), s2))
|
||||||
|
end
|
||||||
|
|||||||
19
evolved.lua
19
evolved.lua
@@ -4228,8 +4228,13 @@ end
|
|||||||
---@return boolean
|
---@return boolean
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
function __evolved_empty(entity)
|
function __evolved_empty(entity)
|
||||||
local entity_index = entity % 0x100000
|
if entity > 0 then
|
||||||
return __freelist_ids[entity_index] ~= entity or not __entity_chunks[entity_index]
|
local entity_index = entity % 0x100000
|
||||||
|
return __freelist_ids[entity_index] ~= entity or not __entity_chunks[entity_index]
|
||||||
|
else
|
||||||
|
-- pairs are always empty
|
||||||
|
return true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param ... evolved.entity entities
|
---@param ... evolved.entity entities
|
||||||
@@ -4242,13 +4247,10 @@ function __evolved_empty_all(...)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
local freelist_ids = __freelist_ids
|
|
||||||
|
|
||||||
for argument_index = 1, argument_count do
|
for argument_index = 1, argument_count do
|
||||||
---@type evolved.entity
|
---@type evolved.entity
|
||||||
local entity = __lua_select(argument_index, ...)
|
local entity = __lua_select(argument_index, ...)
|
||||||
local entity_index = entity % 0x100000
|
if not __evolved_empty(entity) then
|
||||||
if freelist_ids[entity_index] == entity and __entity_chunks[entity_index] then
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -4266,13 +4268,10 @@ function __evolved_empty_any(...)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local freelist_ids = __freelist_ids
|
|
||||||
|
|
||||||
for argument_index = 1, argument_count do
|
for argument_index = 1, argument_count do
|
||||||
---@type evolved.entity
|
---@type evolved.entity
|
||||||
local entity = __lua_select(argument_index, ...)
|
local entity = __lua_select(argument_index, ...)
|
||||||
local entity_index = entity % 0x100000
|
if __evolved_empty(entity) then
|
||||||
if freelist_ids[entity_index] ~= entity or not __entity_chunks[entity_index] then
|
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user