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 defer :: boolean
commit :: boolean commit :: boolean
alive :: entity -> boolean is_alive :: entity -> boolean
empty :: entity -> boolean is_empty :: entity -> boolean
get :: entity, fragment... -> component... get :: entity, fragment... -> component...
has :: entity, fragment -> boolean has :: entity, fragment -> boolean

View File

@@ -5,6 +5,5 @@
- should insert/assign throw errors on failure? - should insert/assign throw errors on failure?
- add auto chunk count reducing - add auto chunk count reducing
- every chunk can hold has_on_assign/has_on_insert/has_on_remove tags - 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 - optimize batch operations for cases with moving entities to empty chunks
- should we clear chunk's components by on_insert tag callback? - 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.insert(e, f, 42))
assert(evo.has(e, f)) assert(evo.has(e, f))
assert(evo.alive(e)) assert(evo.is_alive(e))
evo.destroy(e) evo.destroy(e)
assert(not evo.has(e, f)) assert(not evo.has(e, f))
assert(not evo.alive(e)) assert(not evo.is_alive(e))
end end
do do
@@ -558,24 +558,24 @@ do
do do
local e = evo.id() local e = evo.id()
assert(evo.empty(e)) assert(evo.is_empty(e))
evo.insert(e, f, 42) evo.insert(e, f, 42)
assert(not evo.empty(e)) assert(not evo.is_empty(e))
evo.clear(e) evo.clear(e)
assert(evo.empty(e)) assert(evo.is_empty(e))
end end
do do
local e = evo.id() local e = evo.id()
assert(evo.empty(e)) assert(evo.is_empty(e))
evo.insert(e, f, 42) evo.insert(e, f, 42)
assert(not evo.empty(e)) assert(not evo.is_empty(e))
evo.destroy(e) evo.destroy(e)
assert(evo.empty(e)) assert(evo.is_empty(e))
end end
end end
@@ -686,7 +686,7 @@ do
assert(evo.get(e3, f2) == nil) assert(evo.get(e3, f2) == nil)
assert(evo.get(e3, f3) == nil) assert(evo.get(e3, f3) == nil)
assert(not evo.alive(e4)) assert(not evo.is_alive(e4))
end end
do do
@@ -949,17 +949,17 @@ do
assert(evo.batch_clear(q) == 3) assert(evo.batch_clear(q) == 3)
assert(evo.alive(e1)) assert(evo.is_alive(e1))
assert(evo.alive(e2)) assert(evo.is_alive(e2))
assert(evo.alive(e3)) assert(evo.is_alive(e3))
assert(evo.alive(e4)) assert(evo.is_alive(e4))
assert(evo.alive(e5)) assert(evo.is_alive(e5))
assert(not evo.empty(e1)) assert(not evo.is_empty(e1))
assert(evo.empty(e2)) assert(evo.is_empty(e2))
assert(evo.empty(e3)) assert(evo.is_empty(e3))
assert(evo.empty(e4)) assert(evo.is_empty(e4))
assert(not evo.empty(e5)) assert(not evo.is_empty(e5))
end end
do do
local f1, f2, f3, f4 = evo.id(4) local f1, f2, f3, f4 = evo.id(4)
@@ -1021,17 +1021,17 @@ do
assert(entity_sum == e2 * 2 + e3 * 3 + e4 * 4) assert(entity_sum == e2 * 2 + e3 * 3 + e4 * 4)
assert(component_sum == 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50) assert(component_sum == 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50)
assert(evo.alive(e1)) assert(evo.is_alive(e1))
assert(evo.alive(e2)) assert(evo.is_alive(e2))
assert(evo.alive(e3)) assert(evo.is_alive(e3))
assert(evo.alive(e4)) assert(evo.is_alive(e4))
assert(evo.alive(e5)) assert(evo.is_alive(e5))
assert(not evo.empty(e1)) assert(not evo.is_empty(e1))
assert(evo.empty(e2)) assert(evo.is_empty(e2))
assert(evo.empty(e3)) assert(evo.is_empty(e3))
assert(evo.empty(e4)) assert(evo.is_empty(e4))
assert(not evo.empty(e5)) assert(not evo.is_empty(e5))
end end
end end
@@ -1067,17 +1067,17 @@ do
assert(evo.batch_destroy(q) == 3) assert(evo.batch_destroy(q) == 3)
assert(evo.alive(e1)) assert(evo.is_alive(e1))
assert(not evo.alive(e2)) assert(not evo.is_alive(e2))
assert(not evo.alive(e3)) assert(not evo.is_alive(e3))
assert(not evo.alive(e4)) assert(not evo.is_alive(e4))
assert(evo.alive(e5)) assert(evo.is_alive(e5))
assert(not evo.empty(e1)) assert(not evo.is_empty(e1))
assert(evo.empty(e2)) assert(evo.is_empty(e2))
assert(evo.empty(e3)) assert(evo.is_empty(e3))
assert(evo.empty(e4)) assert(evo.is_empty(e4))
assert(not evo.empty(e5)) assert(not evo.is_empty(e5))
end end
do do
local f1, f2, f3, f4 = evo.id(4) local f1, f2, f3, f4 = evo.id(4)
@@ -1139,17 +1139,17 @@ do
assert(entity_sum == e2 * 2 + e3 * 3 + e4 * 4) assert(entity_sum == e2 * 2 + e3 * 3 + e4 * 4)
assert(component_sum == 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50) assert(component_sum == 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50)
assert(evo.alive(e1)) assert(evo.is_alive(e1))
assert(not evo.alive(e2)) assert(not evo.is_alive(e2))
assert(not evo.alive(e3)) assert(not evo.is_alive(e3))
assert(not evo.alive(e4)) assert(not evo.is_alive(e4))
assert(evo.alive(e5)) assert(evo.is_alive(e5))
assert(not evo.empty(e1)) assert(not evo.is_empty(e1))
assert(evo.empty(e2)) assert(evo.is_empty(e2))
assert(evo.empty(e3)) assert(evo.is_empty(e3))
assert(evo.empty(e4)) assert(evo.is_empty(e4))
assert(not evo.empty(e5)) assert(not evo.is_empty(e5))
end end
end end
@@ -1743,7 +1743,7 @@ do
assert(evo.insert(e, f1, 41)) assert(evo.insert(e, f1, 41))
last_remove_entity = 0 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(last_remove_entity == e)
assert(not evo.has(e, f1)) assert(not evo.has(e, f1))
assert(evo.get(e, f1) == nil) assert(evo.get(e, f1) == nil)
@@ -1755,7 +1755,7 @@ do
assert(evo.insert(e, f2, 42)) assert(evo.insert(e, f2, 42))
last_remove_entity = 0 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(last_remove_entity == e)
assert(not evo.has(e, f1) and not evo.has(e, f2)) assert(not evo.has(e, f1) and not evo.has(e, f2))
assert(evo.get(e, f1) == nil and evo.get(e, f2) == nil) assert(evo.get(e, f1) == nil and evo.get(e, f2) == nil)
@@ -1768,7 +1768,7 @@ do
assert(evo.insert(e, f3, 43)) assert(evo.insert(e, f3, 43))
last_remove_entity = 0 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(last_remove_entity == e)
assert(not evo.has(e, f1) and not evo.has(e, f2) and not evo.has(e, f3)) 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) 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)) assert(evo.insert(e, f1, 41))
last_remove_entity = 0 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(last_remove_entity == e)
assert(not evo.has(e, f1)) assert(not evo.has(e, f1))
assert(evo.get(e, f1) == nil) assert(evo.get(e, f1) == nil)
@@ -1793,7 +1793,7 @@ do
assert(evo.insert(e, f2, 42)) assert(evo.insert(e, f2, 42))
last_remove_entity = 0 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(last_remove_entity == e)
assert(not evo.has(e, f1) and not evo.has(e, f2)) assert(not evo.has(e, f1) and not evo.has(e, f2))
assert(evo.get(e, f1) == nil and evo.get(e, f2) == nil) assert(evo.get(e, f1) == nil and evo.get(e, f2) == nil)
@@ -1806,7 +1806,7 @@ do
assert(evo.insert(e, f3, 43)) assert(evo.insert(e, f3, 43))
last_remove_entity = 0 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(last_remove_entity == e)
assert(not evo.has(e, f1) and not evo.has(e, f2) and not evo.has(e, f3)) 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) 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.batch_clear(q) == 2)
assert(evo.alive(e1)) assert(evo.is_alive(e1))
assert(evo.alive(e2)) assert(evo.is_alive(e2))
assert(evo.alive(e3)) assert(evo.is_alive(e3))
assert(not evo.has(e1, f1) and not evo.has(e1, f2) and not evo.has(e1, f3)) 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)) 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(evo.batch_destroy(q) == 2)
assert(not evo.alive(e1)) assert(not evo.is_alive(e1))
assert(evo.alive(e2)) assert(evo.is_alive(e2))
assert(not evo.alive(e3)) 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(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)) 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) local c, d = evo.batch_clear(q)
assert(c == 0 and d == true) assert(c == 0 and d == true)
end end
assert(evo.alive(e1)) assert(evo.is_alive(e1))
assert(evo.get(e1, f1) == 41) assert(evo.get(e1, f1) == 41)
assert(evo.commit()) assert(evo.commit())
assert(evo.alive(e1)) assert(evo.is_alive(e1))
assert(evo.get(e1, f1) == nil) assert(evo.get(e1, f1) == nil)
end end
end end
@@ -2215,11 +2215,11 @@ do
local c, d = evo.batch_destroy(q) local c, d = evo.batch_destroy(q)
assert(c == 0 and d == true) assert(c == 0 and d == true)
end end
assert(evo.alive(e1)) assert(evo.is_alive(e1))
assert(evo.get(e1, f1) == 41) assert(evo.get(e1, f1) == 41)
assert(evo.commit()) assert(evo.commit())
assert(not evo.alive(e1)) assert(not evo.is_alive(e1))
assert(evo.get(e1, f1) == nil) assert(evo.get(e1, f1) == nil)
end end
end end

View File

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