mirror of
https://github.com/Ukendio/jecs.git
synced 2025-09-23 16:39:17 +00:00
Compare commits
No commits in common. "4ed2fb7a4062b6718651848fc6d6d7f32f1cbd2e" and "456713c2d565852e78f63ccffa854d4aaec0dea0" have entirely different histories.
4ed2fb7a40
...
456713c2d5
3 changed files with 2 additions and 27 deletions
|
@ -22,12 +22,11 @@ local function observers_new<T...>(
|
||||||
): Observer<T...>
|
): Observer<T...>
|
||||||
query:cached()
|
query:cached()
|
||||||
|
|
||||||
|
|
||||||
local world = (query :: Query<T...> & { world: World }).world
|
local world = (query :: Query<T...> & { world: World }).world
|
||||||
callback = callback
|
callback = callback
|
||||||
|
|
||||||
local archetypes = {}
|
local archetypes = {}
|
||||||
local terms = query.filter_with :: { jecs.Id }
|
local terms = query.ids
|
||||||
local first = terms[1]
|
local first = terms[1]
|
||||||
|
|
||||||
local observers_on_create = world.observable[jecs.ArchetypeCreate][first]
|
local observers_on_create = world.observable[jecs.ArchetypeCreate][first]
|
||||||
|
@ -43,10 +42,6 @@ local function observers_new<T...>(
|
||||||
|
|
||||||
local entity_index = world.entity_index :: any
|
local entity_index = world.entity_index :: any
|
||||||
|
|
||||||
for _, archetype in query:archetypes() do
|
|
||||||
archetypes[archetype.id] = true
|
|
||||||
end
|
|
||||||
|
|
||||||
local function emplaced<T, a>(
|
local function emplaced<T, a>(
|
||||||
entity: jecs.Entity<T>,
|
entity: jecs.Entity<T>,
|
||||||
id: jecs.Id<a>,
|
id: jecs.Id<a>,
|
||||||
|
@ -137,10 +132,6 @@ local function monitors_new<T...>(query: Query<T...>): Observer<T...>
|
||||||
observer_on_delete.callback = function(archetype)
|
observer_on_delete.callback = function(archetype)
|
||||||
archetypes[archetype.id] = nil
|
archetypes[archetype.id] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
for _, archetype in query:archetypes() do
|
|
||||||
archetypes[archetype.id] = true
|
|
||||||
end
|
|
||||||
local entity_index = world.entity_index :: any
|
local entity_index = world.entity_index :: any
|
||||||
|
|
||||||
local callback_added: ((jecs.Entity) -> ())?
|
local callback_added: ((jecs.Entity) -> ())?
|
||||||
|
|
|
@ -7,23 +7,6 @@ local ob = require("@addons/ob")
|
||||||
|
|
||||||
TEST("addons/ob", function()
|
TEST("addons/ob", function()
|
||||||
local world = jecs.world()
|
local world = jecs.world()
|
||||||
do CASE "should match against archetypes that were already created"
|
|
||||||
local A = world:component()
|
|
||||||
|
|
||||||
local e1 = world:entity()
|
|
||||||
world:add(e1, A)
|
|
||||||
|
|
||||||
local monitor = ob.monitor(world:query(A))
|
|
||||||
local c = 1
|
|
||||||
monitor.added(function()
|
|
||||||
c += 1
|
|
||||||
end)
|
|
||||||
|
|
||||||
world:remove(e1, A)
|
|
||||||
world:add(e1, A)
|
|
||||||
CHECK(c==2)
|
|
||||||
end
|
|
||||||
|
|
||||||
do CASE "Should support query:without()"
|
do CASE "Should support query:without()"
|
||||||
local A = world:component()
|
local A = world:component()
|
||||||
local B = world:component()
|
local B = world:component()
|
||||||
|
|
|
@ -1365,6 +1365,7 @@ TEST("world:added", function()
|
||||||
end
|
end
|
||||||
|
|
||||||
do CASE ""
|
do CASE ""
|
||||||
|
local world = jecs.world()
|
||||||
local IsNearby = world:component()
|
local IsNearby = world:component()
|
||||||
world:set(IsNearby, jecs.Name, "IsNearby")
|
world:set(IsNearby, jecs.Name, "IsNearby")
|
||||||
local person1, person2 = world:entity(), world:entity()
|
local person1, person2 = world:entity(), world:entity()
|
||||||
|
|
Loading…
Reference in a new issue