feat!: GetRequiredBehaviour/HierarchyObject methods added for cleaner null handling
This commit is contained in:
33
Engine.Core/Helpers/AssertHelpers.cs
Normal file
33
Engine.Core/Helpers/AssertHelpers.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
using Syntriax.Engine.Core.Abstract;
|
||||
|
||||
namespace Syntriax.Engine.Core.Helpers;
|
||||
|
||||
public class AssertHelpers
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void AssertInitialized(IInitializable initializable)
|
||||
=> Debug.Assert(initializable.IsInitialized, $"{initializable.GetType().Name} must be initialized");
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void AssertBehaviourControllerAssigned(IHasBehaviourController assignable)
|
||||
=> Debug.Assert(assignable.BehaviourController is not null, $"{assignable.GetType().Name} must be initialized");
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void AssertEntityAssigned(IHasEntity assignable)
|
||||
=> Debug.Assert(assignable.Entity is not null, $"{assignable.GetType().Name} must be initialized");
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void AssertGameManagerAssigned(IHasGameManager assignable)
|
||||
=> Debug.Assert(assignable.GameManager is not null, $"{assignable.GetType().Name} must be initialized");
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void AssertHierarchyObjectAssigned(IHasHierarchyObject assignable)
|
||||
=> Debug.Assert(assignable.HierarchyObject is not null, $"{assignable.GetType().Name} must be initialized");
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void AssertStateEnableAssigned(IHasStateEnable assignable)
|
||||
=> Debug.Assert(assignable.StateEnable is not null, $"{assignable.GetType().Name} must be initialized");
|
||||
}
|
Reference in New Issue
Block a user