diff --git a/src/IndexableSet.cs b/src/IndexableSet.cs index 275044a..ea54652 100644 --- a/src/IndexableSet.cs +++ b/src/IndexableSet.cs @@ -66,7 +66,7 @@ namespace MoonTools.ECS public IEnumerator GetEnumerator() { - for (var i = 0; i < Count; i += 1) + for (var i = Count - 1; i >= 0; i -= 1) { yield return array[i]; } @@ -74,7 +74,7 @@ namespace MoonTools.ECS IEnumerator IEnumerable.GetEnumerator() { - for (var i = 0; i < Count; i += 1) + for (var i = Count - 1; i >= 0; i -= 1) { yield return array[i]; } diff --git a/src/System.cs b/src/System.cs index a2749a8..1fd33d4 100644 --- a/src/System.cs +++ b/src/System.cs @@ -78,6 +78,7 @@ namespace MoonTools.ECS RelationDepot.Remove(new Relation(entityA, entityB)); } + // FIXME: this is insanely inefficient protected void Destroy(in Entity entity) { ComponentDepot.OnEntityDestroy(entity.ID);