feat: universe pre register and unregister events
This commit is contained in:
parent
f6e52abcc1
commit
93a79cd075
@ -37,11 +37,21 @@ public interface IUniverse : IEntity, IEnumerable<IUniverseObject>
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
Event<IUniverse> OnPostDraw { get; }
|
Event<IUniverse> OnPostDraw { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Event triggered when a <see cref="IUniverseObject"/> is about to be registered to the <see cref="IUniverse"/>.
|
||||||
|
/// </summary>
|
||||||
|
Event<IUniverse, UniverseObjectRegisteredArguments> OnPreUniverseObjectRegistered { get; }
|
||||||
|
|
||||||
/// <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"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Event<IUniverse, UniverseObjectRegisteredArguments> OnUniverseObjectRegistered { get; }
|
Event<IUniverse, UniverseObjectRegisteredArguments> OnUniverseObjectRegistered { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Event triggered when a <see cref="IUniverseObject"/> is about to be unregistered from the <see cref="IUniverse"/>.
|
||||||
|
/// </summary>
|
||||||
|
Event<IUniverse, UniverseObjectUnRegisteredArguments> OnPreUniverseObjectUnRegistered { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event triggered when a <see cref="IUniverseObject"/> is unregistered from the <see cref="IUniverse"/>.
|
/// Event triggered when a <see cref="IUniverseObject"/> is unregistered from the <see cref="IUniverse"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -13,7 +13,9 @@ public class Universe : BaseEntity, IUniverse
|
|||||||
public Event<IUniverse> OnPreDraw { get; } = new();
|
public Event<IUniverse> OnPreDraw { get; } = new();
|
||||||
public Event<IUniverse> OnDraw { get; } = new();
|
public Event<IUniverse> OnDraw { get; } = new();
|
||||||
public Event<IUniverse> OnPostDraw { get; } = new();
|
public Event<IUniverse> OnPostDraw { get; } = new();
|
||||||
|
public Event<IUniverse, IUniverse.UniverseObjectRegisteredArguments> OnPreUniverseObjectRegistered { get; } = new();
|
||||||
public Event<IUniverse, IUniverse.UniverseObjectRegisteredArguments> OnUniverseObjectRegistered { get; } = new();
|
public Event<IUniverse, IUniverse.UniverseObjectRegisteredArguments> OnUniverseObjectRegistered { get; } = new();
|
||||||
|
public Event<IUniverse, IUniverse.UniverseObjectUnRegisteredArguments> OnPreUniverseObjectUnRegistered { get; } = new();
|
||||||
public Event<IUniverse, IUniverse.UniverseObjectUnRegisteredArguments> OnUniverseObjectUnRegistered { get; } = new();
|
public Event<IUniverse, IUniverse.UniverseObjectUnRegisteredArguments> OnUniverseObjectUnRegistered { get; } = new();
|
||||||
public Event<IUniverse, IUniverse.TimeScaleChangedArguments> OnTimeScaleChanged { get; } = new();
|
public Event<IUniverse, IUniverse.TimeScaleChangedArguments> OnTimeScaleChanged { get; } = new();
|
||||||
|
|
||||||
@ -53,6 +55,8 @@ public class Universe : BaseEntity, IUniverse
|
|||||||
if (_universeObjects.Contains(universeObject))
|
if (_universeObjects.Contains(universeObject))
|
||||||
throw new Exception($"{nameof(IUniverseObject)} named {universeObject.Name} is already registered to the {nameof(Universe)}.");
|
throw new Exception($"{nameof(IUniverseObject)} named {universeObject.Name} is already registered to the {nameof(Universe)}.");
|
||||||
|
|
||||||
|
OnPreUniverseObjectRegistered?.Invoke(this, new(universeObject));
|
||||||
|
|
||||||
universeObject.OnFinalized.AddListener(delegateOnUniverseObjectFinalize);
|
universeObject.OnFinalized.AddListener(delegateOnUniverseObjectFinalize);
|
||||||
universeObject.OnExitedUniverse.AddListener(delegateOnUniverseObjectExitedUniverse);
|
universeObject.OnExitedUniverse.AddListener(delegateOnUniverseObjectExitedUniverse);
|
||||||
|
|
||||||
@ -88,6 +92,8 @@ public class Universe : BaseEntity, IUniverse
|
|||||||
if (!_universeObjects.Contains(universeObject))
|
if (!_universeObjects.Contains(universeObject))
|
||||||
throw new Exception($"{nameof(IUniverseObject)} named {universeObject.Name} is not registered to the {nameof(Universe)}.");
|
throw new Exception($"{nameof(IUniverseObject)} named {universeObject.Name} is not registered to the {nameof(Universe)}.");
|
||||||
|
|
||||||
|
OnPreUniverseObjectUnRegistered?.Invoke(this, new(universeObject));
|
||||||
|
|
||||||
universeObject.OnFinalized.RemoveListener(delegateOnUniverseObjectFinalize);
|
universeObject.OnFinalized.RemoveListener(delegateOnUniverseObjectFinalize);
|
||||||
universeObject.OnExitedUniverse.RemoveListener(delegateOnUniverseObjectExitedUniverse);
|
universeObject.OnExitedUniverse.RemoveListener(delegateOnUniverseObjectExitedUniverse);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user