feat: removed IEnumerable from IUniverseObject for intellisense clarity

Use IUniverseObject.Children to access children
This commit is contained in:
Syntriax 2025-08-05 09:10:35 +03:00
parent 63bc94c7a6
commit 11612ff0db
4 changed files with 7 additions and 10 deletions

View File

@ -7,7 +7,7 @@ namespace Syntriax.Engine.Core;
/// This interface allows for tracking the object's presence in the universe and provides events /// 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. /// for notifying when the see enters or exits the universe.
/// </summary> /// </summary>
public interface IUniverseObject : IEntity, IActive, INameable, IHasBehaviourController, IEnumerable<IUniverseObject> public interface IUniverseObject : IEntity, IActive, INameable, IHasBehaviourController
{ {
/// <summary> /// <summary>
/// Event triggered when the <see cref="IUniverseObject"/> enters the universe. /// Event triggered when the <see cref="IUniverseObject"/> enters the universe.

View File

@ -140,7 +140,7 @@ public static class BehaviourControllerExtensions
if (behaviourController.GetBehaviour<T>() is T localBehaviour) if (behaviourController.GetBehaviour<T>() is T localBehaviour)
return localBehaviour; return localBehaviour;
foreach (IUniverseObject child in behaviourController.UniverseObject) foreach (IUniverseObject child in behaviourController.UniverseObject.Children)
if (GetBehaviourInChildren<T>(child.BehaviourController) is T behaviour) if (GetBehaviourInChildren<T>(child.BehaviourController) is T behaviour)
return behaviour; return behaviour;
@ -176,7 +176,7 @@ public static class BehaviourControllerExtensions
foreach (T behaviour in cache) foreach (T behaviour in cache)
behaviours.Add(behaviour); behaviours.Add(behaviour);
foreach (IUniverseObject child in universeObject) foreach (IUniverseObject child in universeObject.Children)
TraverseChildrenForBehaviour(child, behaviours, cache); TraverseChildrenForBehaviour(child, behaviours, cache);
} }
} }

View File

@ -81,7 +81,7 @@ public static class UniverseObjectExtensions
/// <returns>The <see cref="IUniverseObject"/> of the specified type if found; otherwise, null.</returns> /// <returns>The <see cref="IUniverseObject"/> of the specified type if found; otherwise, null.</returns>
public static T? GetUniverseObjectInParent<T>(this IUniverseObject universeObject) where T : class public static T? GetUniverseObjectInParent<T>(this IUniverseObject universeObject) where T : class
{ {
if (universeObject.GetUniverseObject<T>() is T localUniverseObject) if (universeObject.Children.GetUniverseObject<T>() is T localUniverseObject)
return localUniverseObject; return localUniverseObject;
IUniverseObject? parent = universeObject; IUniverseObject? parent = universeObject;
@ -129,10 +129,10 @@ public static class UniverseObjectExtensions
/// <returns>The <see cref="IUniverseObject"/> of the specified type if found; otherwise, null.</returns> /// <returns>The <see cref="IUniverseObject"/> of the specified type if found; otherwise, null.</returns>
public static T? GetUniverseObjectInChildren<T>(this IUniverseObject universeObject) where T : class public static T? GetUniverseObjectInChildren<T>(this IUniverseObject universeObject) where T : class
{ {
if (universeObject.GetUniverseObject<T>() is T localUniverseObject) if (universeObject.Children.GetUniverseObject<T>() is T localUniverseObject)
return localUniverseObject; return localUniverseObject;
foreach (IUniverseObject child in universeObject) foreach (IUniverseObject child in universeObject.Children)
if (GetUniverseObjectInChildren<T>(child) is T behaviour) if (GetUniverseObjectInChildren<T>(child) is T behaviour)
return behaviour; return behaviour;
@ -246,7 +246,7 @@ public static class UniverseObjectExtensions
foreach (IUniverseObject universeObject in universeObjects) foreach (IUniverseObject universeObject in universeObjects)
{ {
universeObject.Find(cache); universeObject.Children.Find(cache);
foreach (T behaviour in cache) foreach (T behaviour in cache)
instances.Add(behaviour); instances.Add(behaviour);
} }

View File

@ -165,7 +165,4 @@ public class UniverseObject : BaseEntity, IUniverseObject
{ {
_name = GetType().Name; _name = GetType().Name;
} }
public IEnumerator<IUniverseObject> GetEnumerator() => _children.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => _children.GetEnumerator();
} }