diff --git a/src/flecs-cs b/src/flecs-cs index a204798..fcce562 160000 --- a/src/flecs-cs +++ b/src/flecs-cs @@ -1 +1 @@ -Subproject commit a2047983917aa462a8c2f34d5315aea48502f4d8 +Subproject commit fcce5620d21fcd14c79d73a4406db8ce85f53dad diff --git a/src/gaemstone.ECS/Id.cs b/src/gaemstone.ECS/Id.cs index 34c9261..bcaaaac 100644 --- a/src/gaemstone.ECS/Id.cs +++ b/src/gaemstone.ECS/Id.cs @@ -15,7 +15,7 @@ public unsafe struct Id public bool IsWildcard => Value.IsWildcard; public bool IsValid => ecs_id_is_valid(World, this); - public bool IsTag => ecs_id_is_tag(World, this).Data != default; + public bool IsTag => ecs_id_is_tag(World, this); public bool IsInUse => ecs_id_in_use(World, this); public int Count => ecs_count_id(World, this); diff --git a/src/gaemstone.ECS/Internal/FlecsBuiltIn.cs b/src/gaemstone.ECS/Internal/FlecsBuiltIn.cs index 59c623e..436900a 100644 --- a/src/gaemstone.ECS/Internal/FlecsBuiltIn.cs +++ b/src/gaemstone.ECS/Internal/FlecsBuiltIn.cs @@ -7,5 +7,5 @@ public static class FlecsBuiltIn public static Entity ChildOf { get; } = new(pinvoke_EcsChildOf()); // FIXME: Hopefully flecs-cs will expose this one day. - public static Entity Disabled { get; } = new(new() { Data = ECS_HI_COMPONENT_ID + 7 }); + public static Entity Disabled { get; } = new(new() { Data = FLECS_HI_COMPONENT_ID + 7 }); } diff --git a/src/gaemstone.ECS/Iterator.cs b/src/gaemstone.ECS/Iterator.cs index b6e95ed..8249774 100644 --- a/src/gaemstone.ECS/Iterator.cs +++ b/src/gaemstone.ECS/Iterator.cs @@ -50,8 +50,8 @@ public enum IteratorFlags : uint { /// Does iterator contain valid result. IsValid = EcsIterIsValid, - /// Is iterator filter (metadata only). - IsFilter = EcsIterIsFilter, + /// Does iterator provide (component). + NoData = EcsIterNoData, /// Is iterator instanced. IsInstanced = EcsIterIsInstanced, /// Does result have shared terms. @@ -64,8 +64,12 @@ public enum IteratorFlags : uint NoResults = EcsIterNoResults, /// Only evaluate non-this terms. IgnoreThis = EcsIterIgnoreThis, - + /// Does iterator have conditionally set fields. MatchVar = EcsIterMatchVar, + /// + HasCondSet = EcsIterHasCondSet, + /// Profile iterator performance. + Profile = EcsIterProfile, } public class Variable diff --git a/src/gaemstone.ECS/Term.cs b/src/gaemstone.ECS/Term.cs index ef794ad..79b174a 100644 --- a/src/gaemstone.ECS/Term.cs +++ b/src/gaemstone.ECS/Term.cs @@ -90,19 +90,23 @@ public class TermId public enum TermTraversalFlags : uint { /// Match on self. - Self = EcsSelf, + Self = EcsSelf, /// Match by traversing upwards. - Up = EcsUp, + Up = EcsUp, /// Match by traversing downwards (derived, cannot be set). - Down = EcsDown, + Down = EcsDown, + /// Match all entities encountered through traversal. + TraverseAll = EcsTraverseAll, /// Sort results breadth first. - Cascade = EcsCascade, + Cascade = EcsCascade, /// Short for up(ChildOf). - Parent = EcsParent, + Parent = EcsParent, /// Term id is a variable. - IsVariable = EcsIsVariable, + IsVariable = EcsIsVariable, /// Term id is an entity. - IsEntity = EcsIsEntity, - /// Prevent observer from triggering on term. - Filter = EcsFilter, + IsEntity = EcsIsEntity, + /// Term id is a name (don't attempt to lookup as entity). + IsName = EcsIsName, + /// revent observer from triggering on term. + Filter = EcsFilter, }