feat: removed IEnumerable from IUniverseObject for intellisense clarity
Use IUniverseObject.Children to access children
This commit is contained in:
parent
63bc94c7a6
commit
11612ff0db
@ -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.
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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();
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user