feat: added IGameManager.OnPreUpdate event
This commit is contained in:
@@ -8,14 +8,19 @@ namespace Syntriax.Engine.Core.Abstract;
|
||||
public interface IGameManager : IEntity, IEnumerable<IHierarchyObject>
|
||||
{
|
||||
/// <summary>
|
||||
/// Event triggered when <see cref="Update(double)"/> is called on the <see cref="IGameManager"/>.
|
||||
/// Event triggered when <see cref="Update(EngineTime)"/> is about to be called called on the <see cref="IGameManager"/>.
|
||||
/// </summary>
|
||||
event UpdateEventHandler? OnPreUpdate;
|
||||
|
||||
/// <summary>
|
||||
/// Event triggered when <see cref="Update(EngineTime)"/> is called on the <see cref="IGameManager"/>.
|
||||
/// </summary>
|
||||
event UpdateEventHandler? OnUpdate;
|
||||
|
||||
/// <summary>
|
||||
/// Event triggered when <see cref="PreDraw"/> is called on the <see cref="IGameManager"/>.
|
||||
/// </summary>
|
||||
event PreDawEventHandler? OnPreDraw;
|
||||
event PreDrawEventHandler? OnPreDraw;
|
||||
|
||||
/// <summary>
|
||||
/// Event triggered when a <see cref="IHierarchyObject"/> is registered to the <see cref="IGameManager"/>.
|
||||
@@ -69,7 +74,7 @@ public interface IGameManager : IEntity, IEnumerable<IHierarchyObject>
|
||||
void PreDraw();
|
||||
|
||||
delegate void UpdateEventHandler(IGameManager sender, EngineTime engineTime);
|
||||
delegate void PreDawEventHandler(IGameManager sender);
|
||||
delegate void PreDrawEventHandler(IGameManager sender);
|
||||
|
||||
delegate void HierarchyObjectRegisteredEventHandler(IGameManager sender, IHierarchyObject hierarchyObjectRegistered);
|
||||
delegate void HierarchyObjectUnRegisteredEventHandler(IGameManager sender, IHierarchyObject hierarchyObjectUnregistered);
|
||||
|
@@ -10,8 +10,9 @@ namespace Syntriax.Engine.Core;
|
||||
[System.Diagnostics.DebuggerDisplay("HierarchyObject Count: {_hierarchyObjects.Count}")]
|
||||
public class GameManager : BaseEntity, IGameManager
|
||||
{
|
||||
public event IGameManager.UpdateEventHandler? OnPreUpdate = null;
|
||||
public event IGameManager.UpdateEventHandler? OnUpdate = null;
|
||||
public event IGameManager.PreDawEventHandler? OnPreDraw = null;
|
||||
public event IGameManager.PreDrawEventHandler? OnPreDraw = null;
|
||||
|
||||
public event IGameManager.HierarchyObjectRegisteredEventHandler? OnHierarchyObjectRegistered = null;
|
||||
public event IGameManager.HierarchyObjectUnRegisteredEventHandler? OnHierarchyObjectUnRegistered = null;
|
||||
@@ -109,6 +110,8 @@ public class GameManager : BaseEntity, IGameManager
|
||||
{
|
||||
Time = engineTime;
|
||||
|
||||
OnPreUpdate?.Invoke(this, engineTime);
|
||||
|
||||
for (int i = 0; i < HierarchyObjects.Count; i++)
|
||||
HierarchyObjects[i].BehaviourController.Update();
|
||||
|
||||
|
Reference in New Issue
Block a user