mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-15 04:15:28 +07:00
rename alive/empty to is_alive/is_empty
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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?
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
30
evolved.lua
30
evolved.lua
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user