feat!: GetRequiredBehaviour/HierarchyObject methods added for cleaner null handling
This commit is contained in:
@@ -3,7 +3,7 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using Syntriax.Engine.Core.Abstract;
|
||||
using Syntriax.Engine.Core.Exceptions;
|
||||
using Syntriax.Engine.Core.Helpers;
|
||||
|
||||
namespace Syntriax.Engine.Core;
|
||||
|
||||
@@ -22,21 +22,6 @@ public class GameManager : BaseEntity, IGameManager
|
||||
|
||||
public IReadOnlyList<IHierarchyObject> HierarchyObjects => _hierarchyObjects;
|
||||
|
||||
public override IStateEnable StateEnable
|
||||
{
|
||||
get
|
||||
{
|
||||
if (base.StateEnable is null)
|
||||
{
|
||||
Assign(Factory.StateEnableFactory.Instantiate(this));
|
||||
if (base.StateEnable is null)
|
||||
throw NotAssignedException.From(this, base.StateEnable);
|
||||
}
|
||||
|
||||
return base.StateEnable;
|
||||
}
|
||||
}
|
||||
|
||||
public EngineTime Time { get; private set; } = new();
|
||||
public EngineTime UnscaledTime { get; private set; } = new();
|
||||
public float TimeScale
|
||||
@@ -104,9 +89,6 @@ public class GameManager : BaseEntity, IGameManager
|
||||
|
||||
protected override void InitializeInternal()
|
||||
{
|
||||
base.InitializeInternal();
|
||||
NotAssignedException.Check(this, StateEnable);
|
||||
|
||||
foreach (IHierarchyObject hierarchyObject in HierarchyObjects)
|
||||
hierarchyObject.Initialize();
|
||||
}
|
||||
@@ -120,6 +102,8 @@ public class GameManager : BaseEntity, IGameManager
|
||||
|
||||
public void Update(EngineTime engineTime)
|
||||
{
|
||||
AssertHelpers.AssertInitialized(this);
|
||||
|
||||
UnscaledTime = engineTime;
|
||||
Time = new(TimeSpan.FromTicks((long)(Time.TimeSinceStart.Ticks + engineTime.DeltaSpan.Ticks * TimeScale)), TimeSpan.FromTicks((long)(engineTime.DeltaSpan.Ticks * TimeScale)));
|
||||
|
||||
@@ -133,6 +117,8 @@ public class GameManager : BaseEntity, IGameManager
|
||||
|
||||
public void PreDraw()
|
||||
{
|
||||
AssertHelpers.AssertInitialized(this);
|
||||
|
||||
for (int i = 0; i < HierarchyObjects.Count; i++)
|
||||
HierarchyObjects[i].BehaviourController.UpdatePreDraw();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user