mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-15 12:19:47 +07:00
new evolved.empty function
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
# evolved.lua (work in progress)
|
# evolved.lua (work in progress)
|
||||||
|
|
||||||
```
|
```
|
||||||
id :: id
|
id :: integer? -> id...
|
||||||
alive :: id -> boolean
|
|
||||||
|
|
||||||
pack :: integer, integer -> id
|
pack :: integer, integer -> id
|
||||||
unpack :: id -> integer, integer
|
unpack :: id -> integer, integer
|
||||||
@@ -10,6 +9,9 @@ unpack :: id -> integer, integer
|
|||||||
defer :: boolean
|
defer :: boolean
|
||||||
commit :: boolean
|
commit :: boolean
|
||||||
|
|
||||||
|
alive :: entity -> boolean
|
||||||
|
empty :: entity -> boolean
|
||||||
|
|
||||||
get :: entity, fragment... -> component...
|
get :: entity, fragment... -> component...
|
||||||
has :: entity, fragment -> boolean
|
has :: entity, fragment -> boolean
|
||||||
has_all :: entity, fragment... -> boolean
|
has_all :: entity, fragment... -> boolean
|
||||||
|
|||||||
@@ -6,3 +6,4 @@
|
|||||||
- should insert/assign throw errors on failure?
|
- should insert/assign throw errors on failure?
|
||||||
- add auto chunk count reducing
|
- add auto chunk count reducing
|
||||||
- batching api for set/assign/insert/remove/clear/destroy
|
- batching api for set/assign/insert/remove/clear/destroy
|
||||||
|
- every chunk can hold has_on_assign/has_on_insert/has_on_remove tags
|
||||||
|
|||||||
@@ -552,6 +552,32 @@ do
|
|||||||
assert(not evo.alive(e))
|
assert(not evo.alive(e))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
do
|
||||||
|
local f = evo.id()
|
||||||
|
|
||||||
|
do
|
||||||
|
local e = evo.id()
|
||||||
|
assert(evo.empty(e))
|
||||||
|
|
||||||
|
evo.insert(e, f, 42)
|
||||||
|
assert(not evo.empty(e))
|
||||||
|
|
||||||
|
evo.clear(e)
|
||||||
|
assert(evo.empty(e))
|
||||||
|
end
|
||||||
|
|
||||||
|
do
|
||||||
|
local e = evo.id()
|
||||||
|
assert(evo.empty(e))
|
||||||
|
|
||||||
|
evo.insert(e, f, 42)
|
||||||
|
assert(not evo.empty(e))
|
||||||
|
|
||||||
|
evo.destroy(e)
|
||||||
|
assert(evo.empty(e))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
do
|
do
|
||||||
local f1, f2, f3 = evo.id(3)
|
local f1, f2, f3 = evo.id(3)
|
||||||
|
|
||||||
|
|||||||
22
evolved.lua
22
evolved.lua
@@ -1009,13 +1009,6 @@ function evolved.id(count)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param id evolved.id
|
|
||||||
---@return boolean
|
|
||||||
---@nodiscard
|
|
||||||
function evolved.alive(id)
|
|
||||||
return __alive_id(id)
|
|
||||||
end
|
|
||||||
|
|
||||||
---@param index integer
|
---@param index integer
|
||||||
---@param version integer
|
---@param version integer
|
||||||
---@return evolved.id
|
---@return evolved.id
|
||||||
@@ -1042,6 +1035,21 @@ function evolved.commit()
|
|||||||
return __defer_commit()
|
return __defer_commit()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
---@return boolean
|
||||||
|
---@nodiscard
|
||||||
|
function evolved.alive(entity)
|
||||||
|
return __alive_id(entity)
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param entity evolved.entity
|
||||||
|
---@return boolean
|
||||||
|
---@nodiscard
|
||||||
|
function evolved.empty(entity)
|
||||||
|
return not __alive_id(entity)
|
||||||
|
or not __entity_chunks[__unpack_id(entity)]
|
||||||
|
end
|
||||||
|
|
||||||
---@param entity evolved.entity
|
---@param entity evolved.entity
|
||||||
---@param ... evolved.fragment fragments
|
---@param ... evolved.fragment fragments
|
||||||
---@return evolved.component ... components
|
---@return evolved.component ... components
|
||||||
|
|||||||
Reference in New Issue
Block a user