refactor: got rid of the static Time class and implemented EngineTime on IGameManager

This commit is contained in:
2025-03-30 20:19:03 +03:00
parent 82705ba378
commit b73c9ed0ae
5 changed files with 21 additions and 31 deletions

View File

@@ -19,7 +19,6 @@ public class GameManager : BaseEntity, IGameManager
private readonly List<IHierarchyObject> _hierarchyObjects = new(Constants.GAME_OBJECTS_SIZE_INITIAL);
private HierarchyObjectFactory _hierarchyObjectFactory = null!;
private HierarchyObjectFactory HierarchyObjectFactory
{
get
@@ -46,6 +45,8 @@ public class GameManager : BaseEntity, IGameManager
}
}
public EngineTime Time { get; private set; } = new();
public void Register(IHierarchyObject hierarchyObject)
{
if (_hierarchyObjects.Contains(hierarchyObject))
@@ -113,13 +114,14 @@ public class GameManager : BaseEntity, IGameManager
HierarchyObjects[i].Finalize();
}
public void Update(EngineTime time)
public void Update(EngineTime engineTime)
{
Time.SetTime(time);
Time = engineTime;
for (int i = 0; i < HierarchyObjects.Count; i++)
HierarchyObjects[i].BehaviourController.Update();
OnUpdate?.Invoke(this, time);
OnUpdate?.Invoke(this, engineTime);
}
public void PreDraw()
@@ -130,8 +132,6 @@ public class GameManager : BaseEntity, IGameManager
OnPreDraw?.Invoke(this);
}
/////////////////////////////////////////////////////////////////
private void OnHierarchyObjectFinalize(IInitializable initializable)
{
if (initializable is IHierarchyObject hierarchyObject)