diff --git a/Engine.Core/Abstract/IUniverseObject.cs b/Engine.Core/Abstract/IUniverseObject.cs index 7f03950..29ad5dd 100644 --- a/Engine.Core/Abstract/IUniverseObject.cs +++ b/Engine.Core/Abstract/IUniverseObject.cs @@ -7,7 +7,7 @@ namespace Syntriax.Engine.Core; /// This interface allows for tracking the object's presence in the universe and provides events /// for notifying when the see enters or exits the universe. /// -public interface IUniverseObject : IEntity, IActive, INameable, IHasBehaviourController, IEnumerable +public interface IUniverseObject : IEntity, IActive, INameable, IHasBehaviourController { /// /// Event triggered when the enters the universe. diff --git a/Engine.Core/Extensions/BehaviourControllerExtensions.cs b/Engine.Core/Extensions/BehaviourControllerExtensions.cs index 435c9c1..9dbfa46 100644 --- a/Engine.Core/Extensions/BehaviourControllerExtensions.cs +++ b/Engine.Core/Extensions/BehaviourControllerExtensions.cs @@ -140,7 +140,7 @@ public static class BehaviourControllerExtensions if (behaviourController.GetBehaviour() is T localBehaviour) return localBehaviour; - foreach (IUniverseObject child in behaviourController.UniverseObject) + foreach (IUniverseObject child in behaviourController.UniverseObject.Children) if (GetBehaviourInChildren(child.BehaviourController) is T behaviour) return behaviour; @@ -176,7 +176,7 @@ public static class BehaviourControllerExtensions foreach (T behaviour in cache) behaviours.Add(behaviour); - foreach (IUniverseObject child in universeObject) + foreach (IUniverseObject child in universeObject.Children) TraverseChildrenForBehaviour(child, behaviours, cache); } } diff --git a/Engine.Core/Extensions/UniverseObjectExtensions.cs b/Engine.Core/Extensions/UniverseObjectExtensions.cs index 16ad5cb..ae9dcd1 100644 --- a/Engine.Core/Extensions/UniverseObjectExtensions.cs +++ b/Engine.Core/Extensions/UniverseObjectExtensions.cs @@ -81,7 +81,7 @@ public static class UniverseObjectExtensions /// The of the specified type if found; otherwise, null. public static T? GetUniverseObjectInParent(this IUniverseObject universeObject) where T : class { - if (universeObject.GetUniverseObject() is T localUniverseObject) + if (universeObject.Children.GetUniverseObject() is T localUniverseObject) return localUniverseObject; IUniverseObject? parent = universeObject; @@ -129,10 +129,10 @@ public static class UniverseObjectExtensions /// The of the specified type if found; otherwise, null. public static T? GetUniverseObjectInChildren(this IUniverseObject universeObject) where T : class { - if (universeObject.GetUniverseObject() is T localUniverseObject) + if (universeObject.Children.GetUniverseObject() is T localUniverseObject) return localUniverseObject; - foreach (IUniverseObject child in universeObject) + foreach (IUniverseObject child in universeObject.Children) if (GetUniverseObjectInChildren(child) is T behaviour) return behaviour; @@ -246,7 +246,7 @@ public static class UniverseObjectExtensions foreach (IUniverseObject universeObject in universeObjects) { - universeObject.Find(cache); + universeObject.Children.Find(cache); foreach (T behaviour in cache) instances.Add(behaviour); } diff --git a/Engine.Core/UniverseObject.cs b/Engine.Core/UniverseObject.cs index 50d63a6..f6b96ce 100644 --- a/Engine.Core/UniverseObject.cs +++ b/Engine.Core/UniverseObject.cs @@ -165,7 +165,4 @@ public class UniverseObject : BaseEntity, IUniverseObject { _name = GetType().Name; } - - public IEnumerator GetEnumerator() => _children.GetEnumerator(); - IEnumerator IEnumerable.GetEnumerator() => _children.GetEnumerator(); }