20 lines
751 B
C#
20 lines
751 B
C#
using Syntriax.Engine.Core.Abstract;
|
|
using Syntriax.Engine.Core.Exceptions;
|
|
|
|
namespace Syntriax.Engine.Core;
|
|
|
|
public static class GameManagerExtensions
|
|
{
|
|
public static IHierarchyObject InstantiateHierarchyObject(this IGameManager gameManager, params object?[]? args)
|
|
=> gameManager.InstantiateHierarchyObject<HierarchyObject>(args);
|
|
|
|
public static T GetRequiredHierarchyObject<T>(this IGameManager gameManager) where T : class
|
|
{
|
|
foreach (IHierarchyObject hierarchyObject in gameManager)
|
|
if (hierarchyObject is T @object)
|
|
return @object;
|
|
|
|
throw new HierarchyObjectNotFoundException($"{gameManager.GetType().FullName}({gameManager.Id}) does not contain any {typeof(T).FullName}");
|
|
}
|
|
}
|