From a6d35ddb552c49602ad6266419a94c03da1ed3b4 Mon Sep 17 00:00:00 2001 From: DCFApixels <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 17 Nov 2024 21:59:02 +0800 Subject: [PATCH] Update GraphQueries.cs --- src/Executors/GraphQueries.cs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Executors/GraphQueries.cs b/src/Executors/GraphQueries.cs index 29f3759..7191a49 100644 --- a/src/Executors/GraphQueries.cs +++ b/src/Executors/GraphQueries.cs @@ -1,8 +1,9 @@ -using DCFApixels.DragonECS.Graphs.Internal; +using DCFApixels.DragonECS.Core; +using DCFApixels.DragonECS.Graphs.Internal; namespace DCFApixels.DragonECS { - public static class GraphQueries + public static class GraphQueriesExtensions { #region JoinToGraph Empty public static EcsSubGraph JoinToSubGraph(this EcsWorld entities, EcsSubGraphMode mode = EcsSubGraphMode.StartToEnd) @@ -38,6 +39,28 @@ namespace DCFApixels.DragonECS //} #endregion + #region JoinToGraph Mask + public static EcsSubGraph JoinToSubGraph(this TCollection entities, IComponentMask mask, EcsSubGraphMode mode = EcsSubGraphMode.StartToEnd) + where TCollection : IEntityStorage + { + if (ReferenceEquals(entities, entities.World)) + { + var executor = entities.World.GetExecutorForMask(mask); + return executor.Execute(); + } + return entities.ToSpan().JoinToSubGraph(mask, mode); + } + public static EcsSubGraph JoinToSubGraph(this EcsReadonlyGroup group, IComponentMask mask, EcsSubGraphMode mode = EcsSubGraphMode.StartToEnd) + { + return group.ToSpan().JoinToSubGraph(mask, mode); + } + public static EcsSubGraph JoinToSubGraph(this EcsSpan span, IComponentMask mask, EcsSubGraphMode mode = EcsSubGraphMode.StartToEnd) + { + var executor = span.World.GetExecutorForMask(mask); + return executor.ExecuteFor(span, mode); + } + #endregion + #region JoinToGraph public static EcsSubGraph JoinToSubGraph(this TCollection entities, out TAspect aspect, EcsSubGraphMode mode = EcsSubGraphMode.StartToEnd) where TAspect : EcsAspect, new()