feat: added post, regular & post events for Update and Draw
This commit is contained in:
parent
3b6a93d37a
commit
37b87f0f85
@ -18,9 +18,24 @@ public interface IUniverse : IEntity, IEnumerable<IUniverseObject>
|
|||||||
event UpdateEventHandler? OnUpdate;
|
event UpdateEventHandler? OnUpdate;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event triggered when <see cref="PreDraw"/> is called on the <see cref="IUniverse"/>.
|
/// Event triggered after <see cref="Update(UniverseTime)"/> is called on the <see cref="IUniverse"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event PreDrawEventHandler? OnPreDraw;
|
event UpdateEventHandler? OnPostUpdate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Event triggered when <see cref="Draw"/> is about to be called called on the <see cref="IUniverse"/>.
|
||||||
|
/// </summary>
|
||||||
|
event DrawEventHandler? OnPreDraw;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Event triggered when <see cref="Draw"/> is called on the <see cref="IUniverse"/>.
|
||||||
|
/// </summary>
|
||||||
|
event DrawEventHandler? OnDraw;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Event triggered after <see cref="Draw"/> is called on the <see cref="IUniverse"/>.
|
||||||
|
/// </summary>
|
||||||
|
event DrawEventHandler? OnPostDraw;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event triggered when a <see cref="IUniverseObject"/> is registered to the <see cref="IUniverse"/>.
|
/// Event triggered when a <see cref="IUniverseObject"/> is registered to the <see cref="IUniverse"/>.
|
||||||
@ -84,14 +99,14 @@ public interface IUniverse : IEntity, IEnumerable<IUniverseObject>
|
|||||||
void Update(UniverseTime universeTime);
|
void Update(UniverseTime universeTime);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Performs operations that should be done before the draw calls.
|
/// Performs operations that should be done to the draw.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void PreDraw();
|
void Draw();
|
||||||
|
|
||||||
delegate void TimeScaleChangedEventHandler(IUniverse sender, float previousTimeScale);
|
delegate void TimeScaleChangedEventHandler(IUniverse sender, float previousTimeScale);
|
||||||
|
|
||||||
delegate void UpdateEventHandler(IUniverse sender, UniverseTime engineTime);
|
delegate void UpdateEventHandler(IUniverse sender, UniverseTime engineTime);
|
||||||
delegate void PreDrawEventHandler(IUniverse sender);
|
delegate void DrawEventHandler(IUniverse sender);
|
||||||
|
|
||||||
delegate void UniverseObjectRegisteredEventHandler(IUniverse sender, IUniverseObject universeObjectRegistered);
|
delegate void UniverseObjectRegisteredEventHandler(IUniverse sender, IUniverseObject universeObjectRegistered);
|
||||||
delegate void UniverseObjectUnRegisteredEventHandler(IUniverse sender, IUniverseObject universeObjectUnregistered);
|
delegate void UniverseObjectUnRegisteredEventHandler(IUniverse sender, IUniverseObject universeObjectUnregistered);
|
||||||
|
@ -9,7 +9,10 @@ public class Universe : BaseEntity, IUniverse
|
|||||||
{
|
{
|
||||||
public event IUniverse.UpdateEventHandler? OnPreUpdate = null;
|
public event IUniverse.UpdateEventHandler? OnPreUpdate = null;
|
||||||
public event IUniverse.UpdateEventHandler? OnUpdate = null;
|
public event IUniverse.UpdateEventHandler? OnUpdate = null;
|
||||||
public event IUniverse.PreDrawEventHandler? OnPreDraw = null;
|
public event IUniverse.UpdateEventHandler? OnPostUpdate = null;
|
||||||
|
public event IUniverse.DrawEventHandler? OnPreDraw = null;
|
||||||
|
public event IUniverse.DrawEventHandler? OnDraw = null;
|
||||||
|
public event IUniverse.DrawEventHandler? OnPostDraw = null;
|
||||||
|
|
||||||
public event IUniverse.UniverseObjectRegisteredEventHandler? OnUniverseObjectRegistered = null;
|
public event IUniverse.UniverseObjectRegisteredEventHandler? OnUniverseObjectRegistered = null;
|
||||||
public event IUniverse.UniverseObjectUnRegisteredEventHandler? OnUniverseObjectUnRegistered = null;
|
public event IUniverse.UniverseObjectUnRegisteredEventHandler? OnUniverseObjectUnRegistered = null;
|
||||||
@ -121,9 +124,10 @@ public class Universe : BaseEntity, IUniverse
|
|||||||
UniverseObjects[i].BehaviourController.Update();
|
UniverseObjects[i].BehaviourController.Update();
|
||||||
|
|
||||||
OnUpdate?.InvokeSafe(this, Time);
|
OnUpdate?.InvokeSafe(this, Time);
|
||||||
|
OnPostUpdate?.InvokeSafe(this, Time);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PreDraw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
Debug.Assert.AssertInitialized(this);
|
Debug.Assert.AssertInitialized(this);
|
||||||
|
|
||||||
@ -131,6 +135,8 @@ public class Universe : BaseEntity, IUniverse
|
|||||||
UniverseObjects[i].BehaviourController.UpdatePreDraw();
|
UniverseObjects[i].BehaviourController.UpdatePreDraw();
|
||||||
|
|
||||||
OnPreDraw?.InvokeSafe(this);
|
OnPreDraw?.InvokeSafe(this);
|
||||||
|
OnDraw?.InvokeSafe(this);
|
||||||
|
OnPostDraw?.InvokeSafe(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnUniverseObjectFinalize(IInitializable initializable)
|
private void OnUniverseObjectFinalize(IInitializable initializable)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user