mirror of
https://github.com/DCFApixels/DragonECS-Graphs.git
synced 2025-09-17 19:24:36 +08:00
Update EcsJoinToSubGraphExecutor.cs
This commit is contained in:
parent
ed521a5b8a
commit
6a0a28a199
@ -8,8 +8,6 @@ namespace DCFApixels.DragonECS
|
||||
{
|
||||
public sealed class EcsJoinToSubGraphExecutor : EcsQueryExecutor, IEcsWorldEventListener
|
||||
{
|
||||
private EcsAspect _aspect;
|
||||
|
||||
private EntityLinkedList _linkedList;
|
||||
private Basket[] _baskets;
|
||||
private int[] _startEntities;
|
||||
@ -22,6 +20,8 @@ namespace DCFApixels.DragonECS
|
||||
private int _targetWorldCapacity = -1;
|
||||
private EcsProfilerMarker _executeMarker = new EcsProfilerMarker("JoinAttach");
|
||||
|
||||
private EcsMaskIterator _iterator;
|
||||
|
||||
#region Properties
|
||||
public sealed override long Version
|
||||
{
|
||||
@ -42,6 +42,7 @@ namespace DCFApixels.DragonECS
|
||||
_baskets = new Basket[World.Capacity];
|
||||
World.AddListener(this);
|
||||
_graph = World.GetGraph();
|
||||
_iterator = Mask.GetIterator();
|
||||
}
|
||||
protected override void OnDestroy()
|
||||
{
|
||||
@ -81,26 +82,24 @@ namespace DCFApixels.DragonECS
|
||||
|
||||
if ((mode & EcsSubGraphMode.StartToEnd) != 0)
|
||||
{
|
||||
if (_aspect.Mask.IsEmpty)
|
||||
if (Mask.IsEmpty)
|
||||
{
|
||||
foreach (var relationEntityID in span) { AddStart(relationEntityID); }
|
||||
}
|
||||
else
|
||||
{
|
||||
var iterator = _aspect.Mask.GetIterator();
|
||||
foreach (var relationEntityID in iterator.Iterate(span)) { AddStart(relationEntityID); }
|
||||
foreach (var relationEntityID in _iterator.Iterate(span)) { AddStart(relationEntityID); }
|
||||
}
|
||||
}
|
||||
if ((mode & EcsSubGraphMode.EndToStart) != 0)
|
||||
{
|
||||
if (_aspect.Mask.IsEmpty)
|
||||
if (Mask.IsEmpty)
|
||||
{
|
||||
foreach (var relationEntityID in span) { AddEnd(relationEntityID); }
|
||||
}
|
||||
else
|
||||
{
|
||||
var iterator = _aspect.Mask.GetIterator();
|
||||
foreach (var relationEntityID in iterator.Iterate(span)) { AddEnd(relationEntityID); }
|
||||
foreach (var relationEntityID in _iterator.Iterate(span)) { AddEnd(relationEntityID); }
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user