This commit is contained in:
DCFApixels 2024-11-20 17:11:17 +08:00
parent cc23ba0b8a
commit 3b57922be3
2 changed files with 16 additions and 16 deletions

View File

@ -6,7 +6,7 @@ namespace DCFApixels.DragonECS
public static class GraphQueriesExtensions public static class GraphQueriesExtensions
{ {
#region JoinToGraph Empty #region JoinToGraph Empty
public static SubGraphMap JoinGraph(this EcsWorld entities, JoinMode mode = JoinMode.StartToEnd) public static SubGraphMap JoinGraph(this EcsWorld entities, JoinMode mode = JoinMode.Start)
{ {
entities.GetQueryCache(out JoinToSubGraphExecutor executor, out EmptyAspect _); entities.GetQueryCache(out JoinToSubGraphExecutor executor, out EmptyAspect _);
return executor.Execute(mode); return executor.Execute(mode);
@ -14,7 +14,7 @@ namespace DCFApixels.DragonECS
#endregion #endregion
#region JoinToGraph Mask #region JoinToGraph Mask
public static SubGraphMap JoinSubGraph<TCollection>(this TCollection entities, IComponentMask mask, JoinMode mode = JoinMode.StartToEnd) public static SubGraphMap JoinSubGraph<TCollection>(this TCollection entities, IComponentMask mask, JoinMode mode = JoinMode.Start)
where TCollection : IEntityStorage where TCollection : IEntityStorage
{ {
if (ReferenceEquals(entities, entities.World)) if (ReferenceEquals(entities, entities.World))
@ -24,11 +24,11 @@ namespace DCFApixels.DragonECS
} }
return entities.ToSpan().JoinSubGraph(mask, mode); return entities.ToSpan().JoinSubGraph(mask, mode);
} }
public static SubGraphMap JoinSubGraph(this EcsReadonlyGroup group, IComponentMask mask, JoinMode mode = JoinMode.StartToEnd) public static SubGraphMap JoinSubGraph(this EcsReadonlyGroup group, IComponentMask mask, JoinMode mode = JoinMode.Start)
{ {
return group.ToSpan().JoinSubGraph(mask, mode); return group.ToSpan().JoinSubGraph(mask, mode);
} }
public static SubGraphMap JoinSubGraph(this EcsSpan span, IComponentMask mask, JoinMode mode = JoinMode.StartToEnd) public static SubGraphMap JoinSubGraph(this EcsSpan span, IComponentMask mask, JoinMode mode = JoinMode.Start)
{ {
var executor = span.World.GetExecutorForMask<JoinToSubGraphExecutor>(mask); var executor = span.World.GetExecutorForMask<JoinToSubGraphExecutor>(mask);
return executor.ExecuteFor(span, mode); return executor.ExecuteFor(span, mode);
@ -36,7 +36,7 @@ namespace DCFApixels.DragonECS
#endregion #endregion
#region JoinToGraph #region JoinToGraph
public static SubGraphMap JoinSubGraph<TCollection, TAspect>(this TCollection entities, out TAspect aspect, JoinMode mode = JoinMode.StartToEnd) public static SubGraphMap JoinSubGraph<TCollection, TAspect>(this TCollection entities, out TAspect aspect, JoinMode mode = JoinMode.Start)
where TAspect : EcsAspect, new() where TAspect : EcsAspect, new()
where TCollection : IEntityStorage where TCollection : IEntityStorage
{ {
@ -47,12 +47,12 @@ namespace DCFApixels.DragonECS
} }
return entities.ToSpan().JoinSubGraph(out aspect, mode); return entities.ToSpan().JoinSubGraph(out aspect, mode);
} }
public static SubGraphMap JoinSubGraph<TAspect>(this EcsReadonlyGroup group, out TAspect aspect, JoinMode mode = JoinMode.StartToEnd) public static SubGraphMap JoinSubGraph<TAspect>(this EcsReadonlyGroup group, out TAspect aspect, JoinMode mode = JoinMode.Start)
where TAspect : EcsAspect, new() where TAspect : EcsAspect, new()
{ {
return group.ToSpan().JoinSubGraph(out aspect, mode); return group.ToSpan().JoinSubGraph(out aspect, mode);
} }
public static SubGraphMap JoinSubGraph<TAspect>(this EcsSpan span, out TAspect aspect, JoinMode mode = JoinMode.StartToEnd) public static SubGraphMap JoinSubGraph<TAspect>(this EcsSpan span, out TAspect aspect, JoinMode mode = JoinMode.Start)
where TAspect : EcsAspect, new() where TAspect : EcsAspect, new()
{ {
span.World.GetQueryCache(out JoinToSubGraphExecutor executor, out aspect); span.World.GetQueryCache(out JoinToSubGraphExecutor executor, out aspect);

View File

@ -121,14 +121,14 @@ namespace DCFApixels.DragonECS.Graphs.Internal
_linkedList.Clear(); _linkedList.Clear();
//Заполнение массивов //Заполнение массивов
if ((mode & JoinMode.StartToEnd) != 0) if ((mode & JoinMode.Start) != 0)
{ {
for (int i = 0; i < _filteredAllEntitiesCount; i++) for (int i = 0; i < _filteredAllEntitiesCount; i++)
{ {
AddStart(_filteredAllEntities[i]); AddStart(_filteredAllEntities[i]);
} }
} }
if ((mode & JoinMode.EndToStart) != 0) if ((mode & JoinMode.End) != 0)
{ {
for (int i = 0; i < _filteredAllEntitiesCount; i++) for (int i = 0; i < _filteredAllEntitiesCount; i++)
{ {
@ -184,14 +184,14 @@ namespace DCFApixels.DragonECS.Graphs.Internal
_linkedList.Clear(); _linkedList.Clear();
//Заполнение массивов //Заполнение массивов
if ((mode & JoinMode.StartToEnd) != 0) if ((mode & JoinMode.Start) != 0)
{ {
for (int i = 0; i < _filteredEntitiesCount; i++) for (int i = 0; i < _filteredEntitiesCount; i++)
{ {
AddStart(_filteredEntities[i]); AddStart(_filteredEntities[i]);
} }
} }
if ((mode & JoinMode.EndToStart) != 0) if ((mode & JoinMode.End) != 0)
{ {
for (int i = 0; i < _filteredEntitiesCount; i++) for (int i = 0; i < _filteredEntitiesCount; i++)
{ {
@ -204,11 +204,11 @@ namespace DCFApixels.DragonECS.Graphs.Internal
return new SubGraphMap(this); return new SubGraphMap(this);
} }
public SubGraphMap Execute(JoinMode mode = JoinMode.StartToEnd) public SubGraphMap Execute(JoinMode mode = JoinMode.Start)
{ {
return Execute_Internal(mode); return Execute_Internal(mode);
} }
public SubGraphMap ExecuteFor(EcsSpan span, JoinMode mode = JoinMode.StartToEnd) public SubGraphMap ExecuteFor(EcsSpan span, JoinMode mode = JoinMode.Start)
{ {
return ExecuteFor_Internal(span, mode); return ExecuteFor_Internal(span, mode);
} }
@ -308,9 +308,9 @@ namespace DCFApixels.DragonECS
public enum JoinMode : byte public enum JoinMode : byte
{ {
NONE = 0, NONE = 0,
StartToEnd = 1 << 0, Start = 1 << 0,
EndToStart = 1 << 1, End = 1 << 1,
All = StartToEnd | EndToStart, All = Start | End,
} }
#region SubGraphMap/SubGraphMapNode #region SubGraphMap/SubGraphMapNode