perf: regular events to custom events

This commit is contained in:
2025-05-30 12:58:08 +03:00
parent b1b5af94d3
commit 846aa75dd5
42 changed files with 342 additions and 198 deletions

View File

@@ -8,7 +8,7 @@ public interface IAssignable
/// <summary>
/// Event triggered when the <see cref="IAssignable"/>'s fields are unassigned and completely ready to recycle.
/// </summary>
event UnassignEventHandler? OnUnassigned;
Event<IAssignable>? OnUnassigned { get; }
/// <summary>
/// Unassign <see cref="IAssignable"/>'s all fields and make it ready to recycle.

View File

@@ -8,7 +8,7 @@ public interface IHasBehaviourController : IAssignable
/// <summary>
/// Event triggered when the <see cref="IBehaviourController"/> value has has been assigned a new value.
/// </summary>
event BehaviourControllerAssignedEventHandler? OnBehaviourControllerAssigned;
Event<IHasBehaviourController> OnBehaviourControllerAssigned { get; }
/// <inheritdoc cref="IBehaviourController" />
IBehaviourController BehaviourController { get; }

View File

@@ -8,7 +8,7 @@ public interface IHasEntity : IAssignable
/// <summary>
/// Event triggered when the <see cref="IEntity"/> value has has been assigned a new value.
/// </summary>
event EntityAssignedEventHandler? OnEntityAssigned;
Event<IHasEntity> OnEntityAssigned { get; }
/// <inheritdoc cref="IEntity" />
IEntity Entity { get; }

View File

@@ -8,7 +8,7 @@ public interface IHasStateEnable : IAssignable
/// <summary>
/// Event triggered when the <see cref="IStateEnable"/> value has has been assigned a new value.
/// </summary>
event StateEnableAssignedEventHandler? OnStateEnableAssigned;
Event<IHasStateEnable> OnStateEnableAssigned { get; }
/// <inheritdoc cref="IStateEnable" />
IStateEnable StateEnable { get; }

View File

@@ -8,7 +8,7 @@ public interface IHasUniverse : IAssignable
/// <summary>
/// Event triggered when the <see cref="IUniverse"/> value has has been assigned a new value.
/// </summary>
event UniverseAssignedEventHandler? OnUniverseAssigned;
Event<IHasUniverse> OnUniverseAssigned { get; }
/// <inheritdoc cref="IUniverse" />
IUniverse Universe { get; }

View File

@@ -8,7 +8,7 @@ public interface IHasUniverseObject : IAssignable
/// <summary>
/// Event triggered when the <see cref="IUniverseObject"/> value has has been assigned a new value.
/// </summary>
event UniverseObjectAssignedEventHandler? OnUniverseObjectAssigned;
Event<IHasUniverseObject> OnUniverseObjectAssigned { get; }
/// <inheritdoc cref="IUniverseObject" />
IUniverseObject UniverseObject { get; }

View File

@@ -8,7 +8,7 @@ public interface IActive
/// <summary>
/// Event triggered when the <see cref="IsActive"/> state of the <see cref="IActive"/> changes.
/// </summary>
event ActiveChangedEventHandler? OnActiveChanged;
Event<IActive, bool> OnActiveChanged { get; }
/// <summary>
/// The value indicating whether the <see cref="IActive"/> is enabled.

View File

@@ -8,7 +8,7 @@ public interface IBehaviour : IEntity, IActive, IHasBehaviourController, IHasSta
/// <summary>
/// Event triggered when the priority of the <see cref="IBehaviour"/> changes.
/// </summary>
event PriorityChangedEventHandler? OnPriorityChanged;
Event<IBehaviour, int> OnPriorityChanged { get; }
/// <summary>
/// The priority of the <see cref="IBehaviour"/>.

View File

@@ -10,12 +10,12 @@ public interface IBehaviourCollector<T> : IHasUniverse where T : class
/// <summary>
/// Event triggered when an object of type <typeparamref name="T"/> is added to the collector.
/// </summary>
event CollectedEventHandler? OnCollected;
Event<IBehaviourCollector<T>, T> OnCollected { get; }
/// <summary>
/// Event triggered when an object of type <typeparamref name="T"/> is removed from the collector.
/// </summary>
event RemovedEventHandler? OnRemoved;
Event<IBehaviourCollector<T>, T> OnRemoved { get; }
/// <summary>
/// Amount of <typeparamref name="T"/> collected.

View File

@@ -10,12 +10,12 @@ public interface IBehaviourController : IEntity, IHasUniverseObject
/// <summary>
/// Event triggered when a <see cref="IBehaviour"/> is added to the <see cref="IBehaviourController"/>.
/// </summary>
event BehaviourAddedEventHandler? OnBehaviourAdded;
Event<IBehaviourController, IBehaviour> OnBehaviourAdded { get; }
/// <summary>
/// Event triggered when a <see cref="IBehaviour"/> is removed from the <see cref="IBehaviourController"/>.
/// </summary>
event BehaviourRemovedEventHandler? OnBehaviourRemoved;
Event<IBehaviourController, IBehaviour> OnBehaviourRemoved { get; }
/// <summary>
/// Amount of <see cref="IBehaviour"/> collected.

View File

@@ -9,7 +9,7 @@ public interface IEntity : IInitializable, IHasStateEnable
/// Event triggered when the <see cref="Id"/> of the <see cref="IEntity"/> changes.
/// The string action parameter is the previous <see cref="Id"/> of the <see cref="IEntity"/>.
/// </summary>
event IdChangedEventHandler? OnIdChanged;
Event<IEntity, string> OnIdChanged { get; }
/// <summary>
/// The ID of the <see cref="IEntity"/>.

View File

@@ -8,12 +8,12 @@ public interface IInitializable
/// <summary>
/// Event triggered when the <see cref="Initialize"/> method is called successfully.
/// </summary>
event InitializedEventHandler? OnInitialized;
Event<IInitializable> OnInitialized { get; }
/// <summary>
/// Event triggered when the <see cref="IInitializable"/> method is called successfully.
/// </summary>
event FinalizedEventHandler? OnFinalized;
Event<IInitializable> OnFinalized { get; }
/// <summary>
/// The value indicating whether the entity has been initialized.

View File

@@ -8,7 +8,7 @@ public interface INameable
/// <summary>
/// Event triggered when the name of the entity changes.
/// </summary>
event NameChangedEventHandler? OnNameChanged;
Event<INameable, string> OnNameChanged { get; }
/// <summary>
/// The name of the entity.

View File

@@ -8,7 +8,7 @@ public interface IStateEnable : IHasEntity
/// <summary>
/// Event triggered when the <see cref="Enabled"/> state of the <see cref="IStateEnable"/> changes.
/// </summary>
event EnabledChangedEventHandler? OnEnabledChanged;
Event<IStateEnable, bool> OnEnabledChanged { get; }
/// <summary>
/// The value indicating whether the <see cref="IStateEnable"/> is enabled.

View File

@@ -8,17 +8,17 @@ public interface ITransform2D : IBehaviour
/// <summary>
/// Event triggered when the <see cref="Position"/> of the <see cref="ITransform2D"/> changes.
/// </summary>
event PositionChangedEventHandler? OnPositionChanged;
Event<ITransform2D, Vector2D> OnPositionChanged { get; }
/// <summary>
/// Event triggered when the <see cref="Scale"/> of the <see cref="ITransform2D"/> changes.
/// </summary>
event ScaleChangedEventHandler? OnScaleChanged;
Event<ITransform2D, Vector2D> OnScaleChanged { get; }
/// <summary>
/// Event triggered when the <see cref="Rotation"/> of the <see cref="ITransform"/> changes.
/// </summary>
event RotationChangedEventHandler? OnRotationChanged;
Event<ITransform2D, float> OnRotationChanged { get; }
/// <summary>
/// The world position of the <see cref="ITransform2D"/> in 2D space.

View File

@@ -10,47 +10,47 @@ public interface IUniverse : IEntity, IEnumerable<IUniverseObject>
/// <summary>
/// Event triggered when <see cref="Update(UniverseTime)"/> is about to be called called on the <see cref="IUniverse"/>.
/// </summary>
event UpdateEventHandler? OnPreUpdate;
Event<IUniverse, UniverseTime> OnPreUpdate { get; }
/// <summary>
/// Event triggered when <see cref="Update(UniverseTime)"/> is called on the <see cref="IUniverse"/>.
/// </summary>
event UpdateEventHandler? OnUpdate;
Event<IUniverse, UniverseTime> OnUpdate { get; }
/// <summary>
/// Event triggered after <see cref="Update(UniverseTime)"/> is called on the <see cref="IUniverse"/>.
/// </summary>
event UpdateEventHandler? OnPostUpdate;
Event<IUniverse, UniverseTime> OnPostUpdate { get; }
/// <summary>
/// Event triggered when <see cref="Draw"/> is about to be called called on the <see cref="IUniverse"/>.
/// </summary>
event DrawEventHandler? OnPreDraw;
Event<IUniverse> OnPreDraw { get; }
/// <summary>
/// Event triggered when <see cref="Draw"/> is called on the <see cref="IUniverse"/>.
/// </summary>
event DrawEventHandler? OnDraw;
Event<IUniverse> OnDraw { get; }
/// <summary>
/// Event triggered after <see cref="Draw"/> is called on the <see cref="IUniverse"/>.
/// </summary>
event DrawEventHandler? OnPostDraw;
Event<IUniverse> OnPostDraw { get; }
/// <summary>
/// Event triggered when a <see cref="IUniverseObject"/> is registered to the <see cref="IUniverse"/>.
/// </summary>
event UniverseObjectRegisteredEventHandler? OnUniverseObjectRegistered;
Event<IUniverse, IUniverseObject> OnUniverseObjectRegistered { get; }
/// <summary>
/// Event triggered when a <see cref="IUniverseObject"/> is unregistered from the <see cref="IUniverse"/>.
/// </summary>
event UniverseObjectUnRegisteredEventHandler? OnUniverseObjectUnRegistered;
Event<IUniverse, IUniverseObject> OnUniverseObjectUnRegistered { get; }
/// <summary>
/// Event triggered when <see cref="TimeScale"/> is changed on the <see cref="IUniverse"/>.
/// </summary>
event TimeScaleChangedEventHandler? OnTimeScaleChanged;
Event<IUniverse, float> OnTimeScaleChanged { get; }
/// <summary>
/// Current time scale the <see cref="IUniverse"/> operates on.

View File

@@ -12,27 +12,27 @@ public interface IUniverseObject : IEntity, IActive, INameable, IHasBehaviourCon
/// <summary>
/// Event triggered when the <see cref="IUniverseObject"/> enters the universe.
/// </summary>
event EnteredUniverseEventHandler? OnEnteredUniverse;
Event<IUniverseObject, IUniverse> OnEnteredUniverse { get; }
/// <summary>
/// Event triggered when the <see cref="IUniverseObject"/> exits the universe.
/// </summary>
event ExitedUniverseEventHandler? OnExitedUniverse;
Event<IUniverseObject, IUniverse> OnExitedUniverse { get; }
/// <summary>
/// Event triggered when the <see cref="Parent"/> of the <see cref="IUniverseObject"/> changes. The second parameter is the old <see cref="IUniverseObject"/>.
/// </summary>
event ParentChangedEventHandler? OnParentChanged;
Event<IUniverseObject, IUniverseObject?, IUniverseObject?> OnParentChanged { get; }
/// <summary>
/// Event triggered when a new <see cref="IUniverseObject"/> is added to the <see cref="Children"/>.
/// </summary>
event ChildrenAddedEventHandler? OnChildrenAdded;
Event<IUniverseObject, IUniverseObject> OnChildrenAdded { get; }
/// <summary>
/// Event triggered when an <see cref="IUniverseObject"/> is removed from the <see cref="Children"/>.
/// </summary>
event ChildrenRemovedEventHandler? OnChildrenRemoved;
Event<IUniverseObject, IUniverseObject> OnChildrenRemoved { get; }
/// <summary>
/// Gets the <see cref="IUniverse"/> this <see cref="IUniverseObject"/> is connected to, if any.