mirror of
https://github.com/Ukendio/jecs.git
synced 2025-04-24 17:10:03 +00:00
Add is_tag function
This commit is contained in:
parent
cc3367c302
commit
ca19d15d04
2 changed files with 28 additions and 0 deletions
|
@ -500,6 +500,14 @@ local function world_has_one_inline(world: ecs_world_t, entity: i53, id: i53): b
|
||||||
return records[id] ~= nil
|
return records[id] ~= nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function ecs_is_tag(world: ecs_world_t, entity: i53): boolean
|
||||||
|
local idr = world.component_index[entity]
|
||||||
|
if idr then
|
||||||
|
return bit32.band(idr.flags, ECS_ID_IS_TAG) ~= 0
|
||||||
|
end
|
||||||
|
return not world_has_one_inline(world, entity, EcsComponent)
|
||||||
|
end
|
||||||
|
|
||||||
local function world_has(world: ecs_world_t, entity: i53,
|
local function world_has(world: ecs_world_t, entity: i53,
|
||||||
a: i53, b: i53?, c: i53?, d: i53?, e: i53?): boolean
|
a: i53, b: i53?, c: i53?, d: i53?, e: i53?): boolean
|
||||||
|
|
||||||
|
@ -2523,6 +2531,7 @@ return {
|
||||||
component = (ECS_COMPONENT :: any) :: <T>() -> Entity<T>,
|
component = (ECS_COMPONENT :: any) :: <T>() -> Entity<T>,
|
||||||
tag = (ECS_TAG :: any) :: <T>() -> Entity<T>,
|
tag = (ECS_TAG :: any) :: <T>() -> Entity<T>,
|
||||||
meta = (ECS_META :: any) :: <T>(id: Entity, id: Id<T>, value: T) -> Entity<T>,
|
meta = (ECS_META :: any) :: <T>(id: Entity, id: Id<T>, value: T) -> Entity<T>,
|
||||||
|
is_tag = (ecs_is_tag :: any) :: <T>(World, Id<T>) -> boolean,
|
||||||
|
|
||||||
OnAdd = EcsOnAdd :: Entity<(entity: Entity) -> ()>,
|
OnAdd = EcsOnAdd :: Entity<(entity: Entity) -> ()>,
|
||||||
OnRemove = EcsOnRemove :: Entity<(entity: Entity) -> ()>,
|
OnRemove = EcsOnRemove :: Entity<(entity: Entity) -> ()>,
|
||||||
|
|
|
@ -82,6 +82,25 @@ TEST("addons/observers", function()
|
||||||
world:set(e, A, true)
|
world:set(e, A, true)
|
||||||
CHECK(count == 3)
|
CHECK(count == 3)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
do CASE "Call on pairs"
|
||||||
|
local A = world:component()
|
||||||
|
|
||||||
|
local callcount = 0
|
||||||
|
world:added(A, function(entity)
|
||||||
|
callcount += 1
|
||||||
|
end)
|
||||||
|
world:added(A, function(entity)
|
||||||
|
callcount += 1
|
||||||
|
end)
|
||||||
|
|
||||||
|
local e = world:entity()
|
||||||
|
local e1 = world:entity()
|
||||||
|
|
||||||
|
world:add(e1, jecs.pair(A, e))
|
||||||
|
world:add(e, jecs.pair(A, e1))
|
||||||
|
CHECK(callcount == 4)
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
return FINISH()
|
return FINISH()
|
||||||
|
|
Loading…
Reference in a new issue