mirror of
https://github.com/Ukendio/jecs.git
synced 2025-04-24 17:10:03 +00:00
46 lines
730 B
Text
46 lines
730 B
Text
local jecs = require("@jecs")
|
|
local observers_add = require("@addons/observers")
|
|
|
|
local world = jecs.world()
|
|
observers_add(world)
|
|
|
|
local A = world:component()
|
|
local B = world:component()
|
|
local C = world:component()
|
|
|
|
world:observer({
|
|
query = world:query(),
|
|
callback = function(entity)
|
|
buf ..= debug.info(2, "sl")
|
|
end
|
|
})
|
|
|
|
local i = 0
|
|
world:added(A, function(entity)
|
|
assert(i == 0)
|
|
i += 1
|
|
end)
|
|
world:added(A, function(entity)
|
|
assert(i == 1)
|
|
i += 1
|
|
end)
|
|
|
|
world:removed(A, function(entity)
|
|
assert(false)
|
|
end)
|
|
|
|
local observer = world:observer({
|
|
query = world:query(A, B),
|
|
callback = function(entity)
|
|
assert(i == 2)
|
|
i += 1
|
|
end
|
|
})
|
|
|
|
|
|
local e = world:entity()
|
|
world:add(e, A)
|
|
assert(i == 2)
|
|
|
|
world:add(e, B)
|
|
assert(i == 3)
|