rename alive/empty to is_alive/is_empty

This commit is contained in:
BlackMATov
2024-12-29 16:35:01 +07:00
parent 900f447f3d
commit 345a89d1de
4 changed files with 82 additions and 83 deletions

View File

@@ -9,8 +9,8 @@ unpack :: id -> integer, integer
defer :: boolean
commit :: boolean
alive :: entity -> boolean
empty :: entity -> boolean
is_alive :: entity -> boolean
is_empty :: entity -> boolean
get :: entity, fragment... -> component...
has :: entity, fragment -> boolean

View File

@@ -5,6 +5,5 @@
- should insert/assign throw errors on failure?
- add auto chunk count reducing
- every chunk can hold has_on_assign/has_on_insert/has_on_remove tags
- rename alive/empty to is_alive/is_empty
- optimize batch operations for cases with moving entities to empty chunks
- should we clear chunk's components by on_insert tag callback?

View File

@@ -546,11 +546,11 @@ do
assert(evo.insert(e, f, 42))
assert(evo.has(e, f))
assert(evo.alive(e))
assert(evo.is_alive(e))
evo.destroy(e)
assert(not evo.has(e, f))
assert(not evo.alive(e))
assert(not evo.is_alive(e))
end
do
@@ -558,24 +558,24 @@ do
do
local e = evo.id()
assert(evo.empty(e))
assert(evo.is_empty(e))
evo.insert(e, f, 42)
assert(not evo.empty(e))
assert(not evo.is_empty(e))
evo.clear(e)
assert(evo.empty(e))
assert(evo.is_empty(e))
end
do
local e = evo.id()
assert(evo.empty(e))
assert(evo.is_empty(e))
evo.insert(e, f, 42)
assert(not evo.empty(e))
assert(not evo.is_empty(e))
evo.destroy(e)
assert(evo.empty(e))
assert(evo.is_empty(e))
end
end
@@ -686,7 +686,7 @@ do
assert(evo.get(e3, f2) == nil)
assert(evo.get(e3, f3) == nil)
assert(not evo.alive(e4))
assert(not evo.is_alive(e4))
end
do
@@ -949,17 +949,17 @@ do
assert(evo.batch_clear(q) == 3)
assert(evo.alive(e1))
assert(evo.alive(e2))
assert(evo.alive(e3))
assert(evo.alive(e4))
assert(evo.alive(e5))
assert(evo.is_alive(e1))
assert(evo.is_alive(e2))
assert(evo.is_alive(e3))
assert(evo.is_alive(e4))
assert(evo.is_alive(e5))
assert(not evo.empty(e1))
assert(evo.empty(e2))
assert(evo.empty(e3))
assert(evo.empty(e4))
assert(not evo.empty(e5))
assert(not evo.is_empty(e1))
assert(evo.is_empty(e2))
assert(evo.is_empty(e3))
assert(evo.is_empty(e4))
assert(not evo.is_empty(e5))
end
do
local f1, f2, f3, f4 = evo.id(4)
@@ -1021,17 +1021,17 @@ do
assert(entity_sum == e2 * 2 + e3 * 3 + e4 * 4)
assert(component_sum == 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50)
assert(evo.alive(e1))
assert(evo.alive(e2))
assert(evo.alive(e3))
assert(evo.alive(e4))
assert(evo.alive(e5))
assert(evo.is_alive(e1))
assert(evo.is_alive(e2))
assert(evo.is_alive(e3))
assert(evo.is_alive(e4))
assert(evo.is_alive(e5))
assert(not evo.empty(e1))
assert(evo.empty(e2))
assert(evo.empty(e3))
assert(evo.empty(e4))
assert(not evo.empty(e5))
assert(not evo.is_empty(e1))
assert(evo.is_empty(e2))
assert(evo.is_empty(e3))
assert(evo.is_empty(e4))
assert(not evo.is_empty(e5))
end
end
@@ -1067,17 +1067,17 @@ do
assert(evo.batch_destroy(q) == 3)
assert(evo.alive(e1))
assert(not evo.alive(e2))
assert(not evo.alive(e3))
assert(not evo.alive(e4))
assert(evo.alive(e5))
assert(evo.is_alive(e1))
assert(not evo.is_alive(e2))
assert(not evo.is_alive(e3))
assert(not evo.is_alive(e4))
assert(evo.is_alive(e5))
assert(not evo.empty(e1))
assert(evo.empty(e2))
assert(evo.empty(e3))
assert(evo.empty(e4))
assert(not evo.empty(e5))
assert(not evo.is_empty(e1))
assert(evo.is_empty(e2))
assert(evo.is_empty(e3))
assert(evo.is_empty(e4))
assert(not evo.is_empty(e5))
end
do
local f1, f2, f3, f4 = evo.id(4)
@@ -1139,17 +1139,17 @@ do
assert(entity_sum == e2 * 2 + e3 * 3 + e4 * 4)
assert(component_sum == 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50)
assert(evo.alive(e1))
assert(not evo.alive(e2))
assert(not evo.alive(e3))
assert(not evo.alive(e4))
assert(evo.alive(e5))
assert(evo.is_alive(e1))
assert(not evo.is_alive(e2))
assert(not evo.is_alive(e3))
assert(not evo.is_alive(e4))
assert(evo.is_alive(e5))
assert(not evo.empty(e1))
assert(evo.empty(e2))
assert(evo.empty(e3))
assert(evo.empty(e4))
assert(not evo.empty(e5))
assert(not evo.is_empty(e1))
assert(evo.is_empty(e2))
assert(evo.is_empty(e3))
assert(evo.is_empty(e4))
assert(not evo.is_empty(e5))
end
end
@@ -1743,7 +1743,7 @@ do
assert(evo.insert(e, f1, 41))
last_remove_entity = 0
assert(evo.clear(e) and evo.alive(e))
assert(evo.clear(e) and evo.is_alive(e))
assert(last_remove_entity == e)
assert(not evo.has(e, f1))
assert(evo.get(e, f1) == nil)
@@ -1755,7 +1755,7 @@ do
assert(evo.insert(e, f2, 42))
last_remove_entity = 0
assert(evo.clear(e) and evo.alive(e))
assert(evo.clear(e) and evo.is_alive(e))
assert(last_remove_entity == e)
assert(not evo.has(e, f1) and not evo.has(e, f2))
assert(evo.get(e, f1) == nil and evo.get(e, f2) == nil)
@@ -1768,7 +1768,7 @@ do
assert(evo.insert(e, f3, 43))
last_remove_entity = 0
assert(evo.clear(e) and evo.alive(e))
assert(evo.clear(e) and evo.is_alive(e))
assert(last_remove_entity == e)
assert(not evo.has(e, f1) and not evo.has(e, f2) and not evo.has(e, f3))
assert(evo.get(e, f1) == nil and evo.get(e, f2) == nil and evo.get(e, f3) == nil)
@@ -1781,7 +1781,7 @@ do
assert(evo.insert(e, f1, 41))
last_remove_entity = 0
assert(evo.destroy(e) and not evo.alive(e))
assert(evo.destroy(e) and not evo.is_alive(e))
assert(last_remove_entity == e)
assert(not evo.has(e, f1))
assert(evo.get(e, f1) == nil)
@@ -1793,7 +1793,7 @@ do
assert(evo.insert(e, f2, 42))
last_remove_entity = 0
assert(evo.destroy(e) and not evo.alive(e))
assert(evo.destroy(e) and not evo.is_alive(e))
assert(last_remove_entity == e)
assert(not evo.has(e, f1) and not evo.has(e, f2))
assert(evo.get(e, f1) == nil and evo.get(e, f2) == nil)
@@ -1806,7 +1806,7 @@ do
assert(evo.insert(e, f3, 43))
last_remove_entity = 0
assert(evo.destroy(e) and not evo.alive(e))
assert(evo.destroy(e) and not evo.is_alive(e))
assert(last_remove_entity == e)
assert(not evo.has(e, f1) and not evo.has(e, f2) and not evo.has(e, f3))
assert(evo.get(e, f1) == nil and evo.get(e, f2) == nil and evo.get(e, f3) == nil)
@@ -1981,9 +1981,9 @@ do
assert(evo.batch_clear(q) == 2)
assert(evo.alive(e1))
assert(evo.alive(e2))
assert(evo.alive(e3))
assert(evo.is_alive(e1))
assert(evo.is_alive(e2))
assert(evo.is_alive(e3))
assert(not evo.has(e1, f1) and not evo.has(e1, f2) and not evo.has(e1, f3))
assert(evo.has(e2, f1) and not evo.has(e2, f2) and not evo.has(e2, f3))
@@ -2024,9 +2024,9 @@ do
assert(evo.batch_destroy(q) == 2)
assert(not evo.alive(e1))
assert(evo.alive(e2))
assert(not evo.alive(e3))
assert(not evo.is_alive(e1))
assert(evo.is_alive(e2))
assert(not evo.is_alive(e3))
assert(not evo.has(e1, f1) and not evo.has(e1, f2) and not evo.has(e1, f3))
assert(evo.has(e2, f1) and not evo.has(e2, f2) and not evo.has(e2, f3))
@@ -2190,11 +2190,11 @@ do
local c, d = evo.batch_clear(q)
assert(c == 0 and d == true)
end
assert(evo.alive(e1))
assert(evo.is_alive(e1))
assert(evo.get(e1, f1) == 41)
assert(evo.commit())
assert(evo.alive(e1))
assert(evo.is_alive(e1))
assert(evo.get(e1, f1) == nil)
end
end
@@ -2215,11 +2215,11 @@ do
local c, d = evo.batch_destroy(q)
assert(c == 0 and d == true)
end
assert(evo.alive(e1))
assert(evo.is_alive(e1))
assert(evo.get(e1, f1) == 41)
assert(evo.commit())
assert(not evo.alive(e1))
assert(not evo.is_alive(e1))
assert(evo.get(e1, f1) == nil)
end
end

View File

@@ -141,7 +141,7 @@ end
---@param id evolved.id
---@return boolean
---@nodiscard
local function __alive_id(id)
local function __is_id_alive(id)
local index = id % 0x100000
return __freelist_ids[index] == id
end
@@ -1495,15 +1495,15 @@ end
---@param entity evolved.entity
---@return boolean
---@nodiscard
function evolved.alive(entity)
return __alive_id(entity)
function evolved.is_alive(entity)
return __is_id_alive(entity)
end
---@param entity evolved.entity
---@return boolean
---@nodiscard
function evolved.empty(entity)
return not __alive_id(entity)
function evolved.is_empty(entity)
return not __is_id_alive(entity)
or not __entity_chunks[__unpack_id(entity)]
end
@@ -1512,7 +1512,7 @@ end
---@return evolved.component ... components
---@nodiscard
function evolved.get(entity, ...)
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return
end
@@ -1532,7 +1532,7 @@ end
---@return boolean
---@nodiscard
function evolved.has(entity, fragment)
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return false
end
@@ -1551,7 +1551,7 @@ end
---@return boolean
---@nodiscard
function evolved.has_all(entity, ...)
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return false
end
@@ -1570,7 +1570,7 @@ end
---@return boolean
---@nodiscard
function evolved.has_any(entity, ...)
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return false
end
@@ -1595,7 +1595,7 @@ function evolved.set(entity, fragment, ...)
return false, true
end
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return false, false
end
@@ -1672,7 +1672,7 @@ function evolved.assign(entity, fragment, ...)
return false, true
end
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return false, false
end
@@ -1711,7 +1711,7 @@ function evolved.insert(entity, fragment, ...)
return false, true
end
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return false, false
end
@@ -1775,7 +1775,7 @@ function evolved.remove(entity, ...)
return false, true
end
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return false, false
end
@@ -1846,7 +1846,7 @@ function evolved.clear(entity)
return false, true
end
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return false, false
end
@@ -1893,7 +1893,7 @@ function evolved.destroy(entity)
return false, true
end
if not __alive_id(entity) then
if not __is_id_alive(entity) then
return true, false
end