mirror of
https://github.com/BlackMATov/evolved.lua.git
synced 2025-12-13 19:48:00 +07:00
Compare commits
4 Commits
dc912eb6da
...
22cedd26bb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22cedd26bb | ||
|
|
d298be4188 | ||
|
|
24933e6a04 | ||
|
|
6841bb42fe |
13
README.md
13
README.md
@@ -154,11 +154,11 @@ function evolved.alive_any(...) end
|
||||
Sometimes (for debugging purposes, for example), it is necessary to extract the index and version from an identifier or to pack them back into an identifier. The [`evolved.pack`](#evolvedpack) and [`evolved.unpack`](#evolvedunpack) functions can be used for this purpose.
|
||||
|
||||
```lua
|
||||
---@param index integer
|
||||
---@param version integer
|
||||
---@param primary integer
|
||||
---@param secondary integer
|
||||
---@return evolved.id id
|
||||
---@nodiscard
|
||||
function evolved.pack(index, version) end
|
||||
function evolved.pack(primary, secondary) end
|
||||
|
||||
---@param id evolved.id
|
||||
---@return integer primary
|
||||
@@ -1304,6 +1304,7 @@ builder_mt:destruction_policy :: id -> builder
|
||||
|
||||
- Improved query execution performance by caching some internal calculations
|
||||
- Added the universal [`builder.build`](#evolvedbuilder_mtbuild) and [`builder.multi_build`](#evolvedbuilder_mtmulti_build) methods that can be used to spawn or clone entities depending on the method arguments
|
||||
- [`evolved.ON_REMOVE`](#evolvedon_remove) hooks are now invoked before the fragment is actually removed from the entity
|
||||
|
||||
### v1.3.0
|
||||
|
||||
@@ -1409,11 +1410,11 @@ function evolved.name(...) end
|
||||
### `evolved.pack`
|
||||
|
||||
```lua
|
||||
---@param index integer
|
||||
---@param version integer
|
||||
---@param primary integer
|
||||
---@param secondary integer
|
||||
---@return evolved.id id
|
||||
---@nodiscard
|
||||
function evolved.pack(index, version) end
|
||||
function evolved.pack(primary, secondary) end
|
||||
```
|
||||
|
||||
### `evolved.unpack`
|
||||
|
||||
@@ -14,3 +14,4 @@
|
||||
## Known Issues
|
||||
|
||||
- Required fragments are slower than they should be
|
||||
- Errors in hooks are cannot be handled properly right now
|
||||
|
||||
@@ -2530,7 +2530,7 @@ do
|
||||
end)
|
||||
:on_remove(function(e, f, c)
|
||||
f2_remove_count = f2_remove_count + 1
|
||||
assert(evo.get(e, f) == nil)
|
||||
assert(evo.get(e, f) == c)
|
||||
assert(evo.alive(f))
|
||||
assert(c == 82)
|
||||
end)
|
||||
@@ -3321,7 +3321,7 @@ do
|
||||
remove_count = remove_count + 1
|
||||
assert(f == f1)
|
||||
assert(c == 51)
|
||||
assert(evo.get(e, f1) == nil)
|
||||
assert(evo.get(e, f1) == c)
|
||||
|
||||
do
|
||||
evo.remove(e, f2)
|
||||
@@ -3348,7 +3348,7 @@ do
|
||||
remove_count = remove_count + 1
|
||||
assert(f == f2)
|
||||
assert(c == 51)
|
||||
assert(evo.get(e, f2) == nil)
|
||||
assert(evo.get(e, f2) == c)
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -3518,8 +3518,7 @@ do
|
||||
assert(e == e1 or e == e2)
|
||||
assert(f == f1)
|
||||
assert(c == 51)
|
||||
assert(evo.get(e1, f1) == nil)
|
||||
assert(evo.get(e2, f1) == nil)
|
||||
assert(evo.get(e, f) == c)
|
||||
end)
|
||||
|
||||
do
|
||||
@@ -7006,3 +7005,65 @@ do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
do
|
||||
local s1, s2 = evo.id(2)
|
||||
|
||||
local process_order = ''
|
||||
|
||||
evo.set(s1, evo.PROLOGUE, function()
|
||||
process_order = process_order .. '1'
|
||||
end)
|
||||
|
||||
evo.set(s2, evo.PROLOGUE, function()
|
||||
process_order = process_order .. '2'
|
||||
end)
|
||||
|
||||
do
|
||||
process_order = ''
|
||||
evo.set(s2, evo.GROUP, s1)
|
||||
evo.process(s1)
|
||||
assert(process_order == '12')
|
||||
end
|
||||
|
||||
do
|
||||
process_order = ''
|
||||
evo.remove(s2, evo.GROUP)
|
||||
evo.process(s1)
|
||||
assert(process_order == '1')
|
||||
end
|
||||
end
|
||||
|
||||
do
|
||||
local s1, s2, s3 = evo.id(3)
|
||||
|
||||
local process_order = ''
|
||||
|
||||
evo.set(s1, evo.PROLOGUE, function()
|
||||
process_order = process_order .. '1'
|
||||
end)
|
||||
|
||||
evo.set(s2, evo.PROLOGUE, function()
|
||||
process_order = process_order .. '2'
|
||||
end)
|
||||
|
||||
evo.set(s3, evo.PROLOGUE, function()
|
||||
process_order = process_order .. '3'
|
||||
end)
|
||||
|
||||
do
|
||||
process_order = ''
|
||||
evo.set(s2, evo.GROUP, s1)
|
||||
evo.process(s1)
|
||||
assert(process_order == '12')
|
||||
end
|
||||
|
||||
do
|
||||
process_order = ''
|
||||
evo.set(s2, evo.GROUP, s3)
|
||||
evo.process(s1)
|
||||
assert(process_order == '1')
|
||||
evo.process(s3)
|
||||
assert(process_order == '132')
|
||||
end
|
||||
end
|
||||
|
||||
776
evolved.lua
776
evolved.lua
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user