Compare commits

..

4 commits

Author SHA1 Message Date
Clown
02d982fa0a
Merge 96bed9bd7e into 24dddee82e 2025-06-22 22:23:35 +02:00
Marcus
24dddee82e
Update README.md
Some checks failed
analysis / Run Luau Analyze (push) Has been cancelled
deploy-docs / build (push) Has been cancelled
publish-npm / publish (push) Has been cancelled
unit-testing / Run Luau Tests (push) Has been cancelled
deploy-docs / Deploy (push) Has been cancelled
2025-06-21 23:43:46 +02:00
Magic
37f1e5be52
Add hammer to addons resources (#244)
Some checks are pending
analysis / Run Luau Analyze (push) Waiting to run
deploy-docs / build (push) Waiting to run
deploy-docs / Deploy (push) Blocked by required conditions
publish-npm / publish (push) Waiting to run
unit-testing / Run Luau Tests (push) Waiting to run
2025-06-20 22:45:53 +02:00
Ukendio
d6e288555e Fix oopsies 2025-06-20 22:39:59 +02:00
4 changed files with 17 additions and 25 deletions

View file

@ -60,8 +60,8 @@ world:set(sara, Name, "sara")
print(getName(parent(sara)))
for e in world:query(pair(ChildOf, alice)) do
print(getName(e), "is the child of alice")
for e, name in world:query(Name, pair(ChildOf, alice)) do
print(name, "is the child of alice")
end
-- Output

View file

@ -159,7 +159,7 @@ return function(world: ty.World)
set_n += 1
set_ids[set_n] = e
set_values[set_n] = v or true
elseif not world:contains(e) then
elseif world:contains(e) then
removed_n += 1
removed_ids[removed_n] = e
end

View file

@ -52,6 +52,9 @@ A tool for inspecting entity lifetimes
#### [jecs_observers](https://github.com/Ukendio/jecs/blob/main/addons/observers.luau)
Observers for queries and signals for components
### [hammer](https://github.com/Mark-Marks/hammer)
A set of utilities for Jecs
### Schedulers
#### [lockstep scheduler](https://gist.github.com/1Axen/6d4f78b3454cf455e93794505588354b)

View file

@ -7,24 +7,13 @@ local observers_add = require("@addons/observers")
TEST("addons/observers", function()
local world = observers_add(jecs.world())
local Test = world:component() :: jecs.Id<number>
type Q<T...> = () -> (jecs.Entity, T...)
local query:
(<A>(jecs.World, jecs.Id<A>) -> Q<A>)
& (<A, B>(jecs.World, jecs.Id<A>, jecs.Id<B>) -> Q<A, B>)
& (<A, B, C>(jecs.World, jecs.Id<A>, jecs.Id<B>, jecs.Id<C>) -> Q<A, B, C>)
= 1 :: never
for e, a in query(world, Test) do
end
do CASE "Should work even if set after the component has been used"
local A = world:component()
world:set(world:entity(), A, 2)
local ran = true
local ran = false
world:added(A, function()
ran = false
ran = true
end)
local entity = world:entity()
@ -38,16 +27,16 @@ TEST("addons/observers", function()
local count = 1
local function counter()
count += 2
count += 1
end
world:set(A, jecs.OnAdd, counter)
world:added(A, counter)
world:set(world:entity(), A, false)
CHECK(count == 3)
CHECK(count == (1 + 2))
world:set(world:entity(), A, false)
CHECK(count == 5)
CHECK(count == (1 + (2 * 2)))
end
do CASE "Ensure ordering between signals and observers"
@ -56,7 +45,7 @@ TEST("addons/observers", function()
local count = 1
local function counter()
count += 2
count += 1
end
world:observer(world:query(A, B), counter)
@ -77,7 +66,7 @@ TEST("addons/observers", function()
local count = 1
local function counter()
count += 2
count += 1
end
world:observer(world:query(A), counter)
@ -97,7 +86,7 @@ TEST("addons/observers", function()
local A = world:component()
local count = 1
local function counter()
count += 2
count += 1
end
world:monitor(world:query(A), counter)
@ -118,10 +107,10 @@ TEST("addons/observers", function()
local callcount = 1
world:added(A, function(entity)
callcount += 2
callcount += 1
end)
world:added(A, function(entity)
callcount += 2
callcount += 1
end)
local e = world:entity()
@ -129,7 +118,7 @@ TEST("addons/observers", function()
world:add(e2, jecs.pair(A, e))
world:add(e, jecs.pair(A, e2))
CHECK(callcount == 5)
CHECK(callcount == 1 + 2 * 2)
end
end)