feat: IGameManager Events

This commit is contained in:
2024-10-25 23:10:20 +03:00
parent 91aa26e15a
commit 9c2b098821
2 changed files with 20 additions and 0 deletions

View File

@@ -7,6 +7,16 @@ namespace Syntriax.Engine.Core.Abstract;
/// </summary>
public interface IGameManager : IEntity, IEnumerable<IGameObject>
{
/// <summary>
/// Event triggered when <see cref="Update(EngineTime)"/> is called on the <see cref="IGameManager"/>.
/// </summary>
event OnUpdateDelegate? OnUpdate;
/// <summary>
/// Event triggered when <see cref="PreDraw"/> is called on the <see cref="IGameManager"/>.
/// </summary>
event OnPreDawDelegate? OnPreDraw;
/// <summary>
/// Event triggered when a <see cref="IGameObject"/> is registered to the <see cref="IGameManager"/>.
/// </summary>
@@ -69,6 +79,9 @@ public interface IGameManager : IEntity, IEnumerable<IGameObject>
/// </summary>
void PreDraw();
delegate void OnUpdateDelegate(IGameManager sender, EngineTime time);
delegate void OnPreDawDelegate(IGameManager sender);
delegate void OnGameObjectRegisteredDelegate(IGameManager sender, IGameObject gameObjectRegistered);
delegate void OnGameObjectUnRegisteredDelegate(IGameManager sender, IGameObject gameObjectUnregistered);
delegate void OnHierarchyObjectRegisteredDelegate(IGameManager sender, IHierarchyObject hierarchyObjectRegistered);