refactor: IGameManager.Enumerable<IHierarchyObject>
This commit is contained in:
parent
6170de4a73
commit
d1a289885b
@ -5,7 +5,7 @@ namespace Syntriax.Engine.Core.Abstract;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a game world responsible for managing <see cref="IHierarchyObject"/>s.
|
/// Represents a game world responsible for managing <see cref="IHierarchyObject"/>s.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IGameManager : IEntity
|
public interface IGameManager : IEntity, IEnumerable<IHierarchyObject>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event triggered when <see cref="Update(double)"/> is called on the <see cref="IGameManager"/>.
|
/// Event triggered when <see cref="Update(double)"/> is called on the <see cref="IGameManager"/>.
|
||||||
|
@ -13,7 +13,7 @@ public static class HierarchyObjectExtensions
|
|||||||
return hierarchyObject;
|
return hierarchyObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static T? FindObject<T>(this IEnumerable<IHierarchyObject> hierarchyObjects) where T : class
|
public static T? FindHierarchyObject<T>(this IEnumerable<IHierarchyObject> hierarchyObjects) where T : class
|
||||||
{
|
{
|
||||||
foreach (IHierarchyObject hierarchyObject in hierarchyObjects)
|
foreach (IHierarchyObject hierarchyObject in hierarchyObjects)
|
||||||
if (hierarchyObject is T @object)
|
if (hierarchyObject is T @object)
|
||||||
@ -22,9 +22,9 @@ public static class HierarchyObjectExtensions
|
|||||||
return default;
|
return default;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool TryFindObject<T>(this IEnumerable<IHierarchyObject> hierarchyObjects, [NotNullWhen(returnValue: true)] out T? behaviour) where T : class
|
public static bool TryFindHierarchyObject<T>(this IEnumerable<IHierarchyObject> hierarchyObjects, [NotNullWhen(returnValue: true)] out T? behaviour) where T : class
|
||||||
{
|
{
|
||||||
behaviour = FindObject<T>(hierarchyObjects);
|
behaviour = FindHierarchyObject<T>(hierarchyObjects);
|
||||||
return behaviour is not null;
|
return behaviour is not null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
using Syntriax.Engine.Core.Abstract;
|
using Syntriax.Engine.Core.Abstract;
|
||||||
@ -143,4 +144,7 @@ public class GameManager : BaseEntity, IGameManager
|
|||||||
if (sender is IHierarchyObject hierarchyObject)
|
if (sender is IHierarchyObject hierarchyObject)
|
||||||
Remove(hierarchyObject);
|
Remove(hierarchyObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IEnumerator<IHierarchyObject> GetEnumerator() => _hierarchyObjects.GetEnumerator();
|
||||||
|
IEnumerator IEnumerable.GetEnumerator() => _hierarchyObjects.GetEnumerator();
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ public class PhysicsCoroutineManager : HierarchyObject
|
|||||||
|
|
||||||
protected override void OnEnteringHierarchy(IGameManager gameManager)
|
protected override void OnEnteringHierarchy(IGameManager gameManager)
|
||||||
{
|
{
|
||||||
physicsEngine = gameManager.HierarchyObjects.FindObject<IPhysicsEngine2D>();
|
physicsEngine = gameManager.FindHierarchyObject<IPhysicsEngine2D>();
|
||||||
if (physicsEngine is IPhysicsEngine2D foundPhysicsEngine)
|
if (physicsEngine is IPhysicsEngine2D foundPhysicsEngine)
|
||||||
foundPhysicsEngine.OnPhysicsStep += OnPhysicsStep;
|
foundPhysicsEngine.OnPhysicsStep += OnPhysicsStep;
|
||||||
else
|
else
|
||||||
@ -56,7 +56,7 @@ public class PhysicsCoroutineManager : HierarchyObject
|
|||||||
if (GameManager is not IGameManager gameManager)
|
if (GameManager is not IGameManager gameManager)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
physicsEngine = gameManager.HierarchyObjects.FindObject<IPhysicsEngine2D>();
|
physicsEngine = gameManager.FindHierarchyObject<IPhysicsEngine2D>();
|
||||||
if (physicsEngine is IPhysicsEngine2D foundPhysicsEngine)
|
if (physicsEngine is IPhysicsEngine2D foundPhysicsEngine)
|
||||||
{
|
{
|
||||||
foundPhysicsEngine.OnPhysicsStep += OnPhysicsStep;
|
foundPhysicsEngine.OnPhysicsStep += OnPhysicsStep;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user