chore: get init to only get for events

This commit is contained in:
Syntriax 2025-05-30 20:13:32 +03:00
parent 0d61735ae5
commit 1b123a3cc0
21 changed files with 82 additions and 82 deletions

View File

@ -5,10 +5,10 @@ namespace Syntriax.Engine.Core;
public class ActiveBehaviourCollector<T> : IBehaviourCollector<T> where T : class, IBehaviour
{
public Event<IBehaviourCollector<T>, IBehaviourCollector<T>.BehaviourCollectedArguments> OnCollected { get; init; } = new();
public Event<IBehaviourCollector<T>, IBehaviourCollector<T>.BehaviourRemovedArguments> OnRemoved { get; init; } = new();
public Event<IHasUniverse> OnUniverseAssigned { get; init; } = new();
public Event<IAssignable>? OnUnassigned { get; init; } = new();
public Event<IBehaviourCollector<T>, IBehaviourCollector<T>.BehaviourCollectedArguments> OnCollected { get; } = new();
public Event<IBehaviourCollector<T>, IBehaviourCollector<T>.BehaviourRemovedArguments> OnRemoved { get; } = new();
public Event<IHasUniverse> OnUniverseAssigned { get; } = new();
public Event<IAssignable>? OnUnassigned { get; } = new();
private readonly Event<IBehaviourController, IBehaviourController.BehaviourAddedArguments>.EventHandler cachedOnBehaviourAdded = null!;
private readonly Event<IBehaviourController, IBehaviourController.BehaviourRemovedArguments>.EventHandler cachedOnBehaviourRemoved = null!;

View File

@ -4,11 +4,11 @@ namespace Syntriax.Engine.Core;
public abstract class BaseEntity : IEntity
{
public Event<IEntity, IEntity.IdChangedArguments> OnIdChanged { get; init; } = new();
public Event<IInitializable> OnInitialized { get; init; } = new();
public Event<IInitializable> OnFinalized { get; init; } = new();
public Event<IHasStateEnable> OnStateEnableAssigned { get; init; } = new();
public Event<IAssignable> OnUnassigned { get; init; } = new();
public Event<IEntity, IEntity.IdChangedArguments> OnIdChanged { get; } = new();
public Event<IInitializable> OnInitialized { get; } = new();
public Event<IInitializable> OnFinalized { get; } = new();
public Event<IHasStateEnable> OnStateEnableAssigned { get; } = new();
public Event<IAssignable> OnUnassigned { get; } = new();
private IStateEnable _stateEnable = null!;

View File

@ -3,9 +3,9 @@ namespace Syntriax.Engine.Core;
[System.Diagnostics.DebuggerDisplay("{GetType().Name, nq}, Priority: {Priority}, Initialized: {Initialized}")]
public abstract class BehaviourBase : BaseEntity, IBehaviour
{
public Event<IBehaviour, IBehaviour.PriorityChangedArguments> OnPriorityChanged { get; init; } = new();
public Event<IActive, IActive.ActiveChangedArguments> OnActiveChanged { get; init; } = new();
public Event<IHasBehaviourController> OnBehaviourControllerAssigned { get; init; } = new();
public Event<IBehaviour, IBehaviour.PriorityChangedArguments> OnPriorityChanged { get; } = new();
public Event<IActive, IActive.ActiveChangedArguments> OnActiveChanged { get; } = new();
public Event<IHasBehaviourController> OnBehaviourControllerAssigned { get; } = new();
private readonly Event<IHasUniverseObject>.EventHandler cachedOnUniverseObjectAssigned = null!;
private readonly Event<IActive, IActive.ActiveChangedArguments>.EventHandler cachedOnUniverseObjectActiveChanged = null!;

View File

@ -5,10 +5,10 @@ namespace Syntriax.Engine.Core;
public class BehaviourCollector<T> : IBehaviourCollector<T> where T : class
{
public Event<IBehaviourCollector<T>, IBehaviourCollector<T>.BehaviourCollectedArguments> OnCollected { get; init; } = new();
public Event<IBehaviourCollector<T>, IBehaviourCollector<T>.BehaviourRemovedArguments> OnRemoved { get; init; } = new();
public Event<IHasUniverse> OnUniverseAssigned { get; init; } = new();
public Event<IAssignable>? OnUnassigned { get; init; } = new();
public Event<IBehaviourCollector<T>, IBehaviourCollector<T>.BehaviourCollectedArguments> OnCollected { get; } = new();
public Event<IBehaviourCollector<T>, IBehaviourCollector<T>.BehaviourRemovedArguments> OnRemoved { get; } = new();
public Event<IHasUniverse> OnUniverseAssigned { get; } = new();
public Event<IAssignable>? OnUnassigned { get; } = new();
private readonly Event<IBehaviourController, IBehaviourController.BehaviourAddedArguments>.EventHandler cachedOnBehaviourAdded = null!;
private readonly Event<IBehaviourController, IBehaviourController.BehaviourRemovedArguments>.EventHandler cachedOnBehaviourRemoved = null!;

View File

@ -7,9 +7,9 @@ namespace Syntriax.Engine.Core;
[System.Diagnostics.DebuggerDisplay("Behaviour Count: {behaviours.Count}")]
public class BehaviourController : BaseEntity, IBehaviourController
{
public Event<IBehaviourController, IBehaviourController.BehaviourAddedArguments> OnBehaviourAdded { get; init; } = new();
public Event<IBehaviourController, IBehaviourController.BehaviourRemovedArguments> OnBehaviourRemoved { get; init; } = new();
public Event<IHasUniverseObject> OnUniverseObjectAssigned { get; init; } = new();
public Event<IBehaviourController, IBehaviourController.BehaviourAddedArguments> OnBehaviourAdded { get; } = new();
public Event<IBehaviourController, IBehaviourController.BehaviourRemovedArguments> OnBehaviourRemoved { get; } = new();
public Event<IHasUniverseObject> OnUniverseObjectAssigned { get; } = new();
private readonly List<IBehaviour> behaviours = new(Constants.BEHAVIOURS_SIZE_INITIAL);

View File

@ -2,8 +2,8 @@ namespace Syntriax.Engine.Core;
public class ProgressionTracker : IProgressionTracker
{
public Event<IReadOnlyProgressionTracker, IReadOnlyProgressionTracker.ProgressionUpdatedArguments> OnUpdated { get; init; } = new();
public Event<IReadOnlyProgressionTracker> OnEnded { get; init; } = new();
public Event<IReadOnlyProgressionTracker, IReadOnlyProgressionTracker.ProgressionUpdatedArguments> OnUpdated { get; } = new();
public Event<IReadOnlyProgressionTracker> OnEnded { get; } = new();
public float Progression { get; private set; } = 0f;
public string Status { get; private set; } = "Default";

View File

@ -18,7 +18,7 @@ public class Shape2D(List<Vector2D> vertices) : IEnumerable<Vector2D>
public static Shape2D Pentagon => CreateNgon(5, Vector2D.Up);
public static Shape2D Hexagon => CreateNgon(6, Vector2D.Right);
public Event<Shape2D> OnShapeUpdated { get; init; } = new();
public Event<Shape2D> OnShapeUpdated { get; } = new();
private List<Vector2D> _vertices = vertices;

View File

@ -2,9 +2,9 @@ namespace Syntriax.Engine.Core;
public class StateEnable : IStateEnable
{
public Event<IStateEnable, IStateEnable.EnabledChangedArguments> OnEnabledChanged { get; init; } = new();
public Event<IHasEntity> OnEntityAssigned { get; init; } = new();
public Event<IAssignable>? OnUnassigned { get; init; } = new();
public Event<IStateEnable, IStateEnable.EnabledChangedArguments> OnEnabledChanged { get; } = new();
public Event<IHasEntity> OnEntityAssigned { get; } = new();
public Event<IAssignable>? OnUnassigned { get; } = new();
private bool _enabled = true;
private IEntity _entity = null!;

View File

@ -5,9 +5,9 @@ namespace Syntriax.Engine.Core;
[System.Diagnostics.DebuggerDisplay("Name: {UniverseObject.Name, nq} Position: {Position.ToString(), nq}, Scale: {Scale.ToString(), nq}, Rotation: {Rotation}")]
public class Transform2D : Behaviour, ITransform2D
{
public Event<ITransform2D, ITransform2D.PositionChangedArguments> OnPositionChanged { get; init; } = new();
public Event<ITransform2D, ITransform2D.ScaleChangedArguments> OnScaleChanged { get; init; } = new();
public Event<ITransform2D, ITransform2D.RotationChangedArguments> OnRotationChanged { get; init; } = new();
public Event<ITransform2D, ITransform2D.PositionChangedArguments> OnPositionChanged { get; } = new();
public Event<ITransform2D, ITransform2D.ScaleChangedArguments> OnScaleChanged { get; } = new();
public Event<ITransform2D, ITransform2D.RotationChangedArguments> OnRotationChanged { get; } = new();
private Vector2D _position = Vector2D.Zero;
private Vector2D _scale = Vector2D.One;

View File

@ -7,15 +7,15 @@ namespace Syntriax.Engine.Core;
[System.Diagnostics.DebuggerDisplay("UniverseObject Count: {_universeObjects.Count}")]
public class Universe : BaseEntity, IUniverse
{
public Event<IUniverse, IUniverse.UpdateArguments> OnPreUpdate { get; init; } = new();
public Event<IUniverse, IUniverse.UpdateArguments> OnUpdate { get; init; } = new();
public Event<IUniverse, IUniverse.UpdateArguments> OnPostUpdate { get; init; } = new();
public Event<IUniverse> OnPreDraw { get; init; } = new();
public Event<IUniverse> OnDraw { get; init; } = new();
public Event<IUniverse> OnPostDraw { get; init; } = new();
public Event<IUniverse, IUniverse.UniverseObjectRegisteredArguments> OnUniverseObjectRegistered { get; init; } = new();
public Event<IUniverse, IUniverse.UniverseObjectUnRegisteredArguments> OnUniverseObjectUnRegistered { get; init; } = new();
public Event<IUniverse, IUniverse.TimeScaleChangedArguments> OnTimeScaleChanged { get; init; } = new();
public Event<IUniverse, IUniverse.UpdateArguments> OnPreUpdate { get; } = new();
public Event<IUniverse, IUniverse.UpdateArguments> OnUpdate { get; } = new();
public Event<IUniverse, IUniverse.UpdateArguments> OnPostUpdate { get; } = new();
public Event<IUniverse> OnPreDraw { get; } = new();
public Event<IUniverse> OnDraw { get; } = new();
public Event<IUniverse> OnPostDraw { get; } = new();
public Event<IUniverse, IUniverse.UniverseObjectRegisteredArguments> OnUniverseObjectRegistered { get; } = new();
public Event<IUniverse, IUniverse.UniverseObjectUnRegisteredArguments> OnUniverseObjectUnRegistered { get; } = new();
public Event<IUniverse, IUniverse.TimeScaleChangedArguments> OnTimeScaleChanged { get; } = new();
private readonly Event<IInitializable>.EventHandler cachedOnUniverseObjectFinalize = null!;
private readonly Event<IUniverseObject, IUniverseObject.ExitedUniverseArguments>.EventHandler cachedOnUniverseObjectExitedUniverse = null!;

View File

@ -6,15 +6,15 @@ namespace Syntriax.Engine.Core;
[System.Diagnostics.DebuggerDisplay("Name: {Name}, Initialized: {Initialized}")]
public class UniverseObject : BaseEntity, IUniverseObject
{
public Event<IUniverseObject, IUniverseObject.EnteredUniverseArguments> OnEnteredUniverse { get; init; } = new();
public Event<IUniverseObject, IUniverseObject.ExitedUniverseArguments> OnExitedUniverse { get; init; } = new();
public Event<IUniverseObject, IUniverseObject.ParentChangedArguments> OnParentChanged { get; init; } = new();
public Event<IUniverseObject, IUniverseObject.ChildrenAddedArguments> OnChildrenAdded { get; init; } = new();
public Event<IUniverseObject, IUniverseObject.ChildrenRemovedArguments> OnChildrenRemoved { get; init; } = new();
public Event<IUniverseObject, IUniverseObject.EnteredUniverseArguments> OnEnteredUniverse { get; } = new();
public Event<IUniverseObject, IUniverseObject.ExitedUniverseArguments> OnExitedUniverse { get; } = new();
public Event<IUniverseObject, IUniverseObject.ParentChangedArguments> OnParentChanged { get; } = new();
public Event<IUniverseObject, IUniverseObject.ChildrenAddedArguments> OnChildrenAdded { get; } = new();
public Event<IUniverseObject, IUniverseObject.ChildrenRemovedArguments> OnChildrenRemoved { get; } = new();
public Event<IActive, IActive.ActiveChangedArguments> OnActiveChanged { get; init; } = new();
public Event<INameable, INameable.NameChangedArguments> OnNameChanged { get; init; } = new();
public Event<IHasBehaviourController> OnBehaviourControllerAssigned { get; init; } = new();
public Event<IActive, IActive.ActiveChangedArguments> OnActiveChanged { get; } = new();
public Event<INameable, INameable.NameChangedArguments> OnNameChanged { get; } = new();
public Event<IHasBehaviourController> OnBehaviourControllerAssigned { get; } = new();
private string _name = nameof(UniverseObject);
private IUniverse _universe = null!;

View File

@ -4,9 +4,9 @@ namespace Syntriax.Engine.Physics2D;
public abstract class Collider2DBehaviourBase : Behaviour2D, ICollider2D
{
public Event<ICollider2D, CollisionDetectionInformation> OnCollisionDetected { get; init; } = new();
public Event<ICollider2D, CollisionDetectionInformation> OnCollisionResolved { get; init; } = new();
public Event<ICollider2D, ICollider2D> OnTriggered { get; init; } = new();
public Event<ICollider2D, CollisionDetectionInformation> OnCollisionDetected { get; } = new();
public Event<ICollider2D, CollisionDetectionInformation> OnCollisionResolved { get; } = new();
public Event<ICollider2D, ICollider2D> OnTriggered { get; } = new();
private readonly Event<IBehaviourController, IBehaviourController.BehaviourAddedArguments>.EventHandler cachedOnBehaviourAddedToController = null!;
private readonly Event<IBehaviourController, IBehaviourController.BehaviourRemovedArguments>.EventHandler cachedOnBehaviourRemovedFromController = null!;

View File

@ -4,8 +4,8 @@ namespace Syntriax.Engine.Physics2D;
public class PhysicsEngine2D : UniverseObject, IPhysicsEngine2D
{
public Event<IPhysicsEngine2D, float> OnPhysicsIteration { get; init; } = new();
public Event<IPhysicsEngine2D, float> OnPhysicsStep { get; init; } = new();
public Event<IPhysicsEngine2D, float> OnPhysicsIteration { get; } = new();
public Event<IPhysicsEngine2D, float> OnPhysicsStep { get; } = new();
private readonly Event<IUniverse, IUniverse.UpdateArguments>.EventHandler cachedOnPreUpdate = null!;

View File

@ -6,8 +6,8 @@ namespace Syntriax.Engine.Physics2D;
public class PhysicsEngine2DStandalone : IPhysicsEngine2D
{
public Event<IPhysicsEngine2D, float> OnPhysicsIteration { get; init; } = new();
public Event<IPhysicsEngine2D, float> OnPhysicsStep { get; init; } = new();
public Event<IPhysicsEngine2D, float> OnPhysicsIteration { get; } = new();
public Event<IPhysicsEngine2D, float> OnPhysicsStep { get; } = new();
private readonly Event<IBehaviourController, IBehaviourController.BehaviourAddedArguments>.EventHandler cachedOnBehaviourAdded = null!;
private readonly Event<IBehaviourController, IBehaviourController.BehaviourRemovedArguments>.EventHandler cachedOnBehaviourRemoved = null!;

View File

@ -6,11 +6,11 @@ namespace Syntriax.Engine.Systems.StateMachine;
public class State : BaseEntity, IState
{
public Event<IState> OnStateUpdate { get; init; } = new();
public Event<IState, IState.StateTransitionedFromArguments> OnStateTransitionedFrom { get; init; } = new();
public Event<IState, IState.StateTransitionedToArguments> OnStateTransitionedTo { get; init; } = new();
public Event<IState, IState.StateTransitionReadyArguments> OnStateTransitionReady { get; init; } = new();
public Event<INameable, INameable.NameChangedArguments> OnNameChanged { get; init; } = new();
public Event<IState> OnStateUpdate { get; } = new();
public Event<IState, IState.StateTransitionedFromArguments> OnStateTransitionedFrom { get; } = new();
public Event<IState, IState.StateTransitionedToArguments> OnStateTransitionedTo { get; } = new();
public Event<IState, IState.StateTransitionReadyArguments> OnStateTransitionReady { get; } = new();
public Event<INameable, INameable.NameChangedArguments> OnNameChanged { get; } = new();
private readonly List<StateTransition> transitions = [];
private readonly Dictionary<string, StateTransition> possibleTransitions = [];

View File

@ -4,11 +4,11 @@ namespace Syntriax.Engine.Systems.StateMachine;
public abstract class StateBehaviourBase : Behaviour, IState
{
public Event<IState> OnStateUpdate { get; init; } = new();
public Event<IState, IState.StateTransitionedFromArguments> OnStateTransitionedFrom { get; init; } = new();
public Event<IState, IState.StateTransitionedToArguments> OnStateTransitionedTo { get; init; } = new();
public Event<IState, IState.StateTransitionReadyArguments> OnStateTransitionReady { get; init; } = new();
public Event<INameable, INameable.NameChangedArguments> OnNameChanged { get; init; } = new();
public Event<IState> OnStateUpdate { get; } = new();
public Event<IState, IState.StateTransitionedFromArguments> OnStateTransitionedFrom { get; } = new();
public Event<IState, IState.StateTransitionedToArguments> OnStateTransitionedTo { get; } = new();
public Event<IState, IState.StateTransitionReadyArguments> OnStateTransitionReady { get; } = new();
public Event<INameable, INameable.NameChangedArguments> OnNameChanged { get; } = new();
private string _name = string.Empty;
public string Name

View File

@ -5,7 +5,7 @@ namespace Syntriax.Engine.Systems.StateMachine;
public class StateMachine : Behaviour
{
public Event<StateMachine, StateChangedArguments> OnStateChanged { get; init; } = new();
public Event<StateMachine, StateChangedArguments> OnStateChanged { get; } = new();
private readonly Event<IState, IState.StateTransitionReadyArguments>.EventHandler cachedOnStateTransitionReady = null!;

View File

@ -4,11 +4,11 @@ namespace Syntriax.Engine.Systems.Time;
public class StopwatchBehaviour : Behaviour, IStopwatch
{
public Event<IReadOnlyStopwatch> OnStarted { get; init; } = new();
public Event<IReadOnlyStopwatch, IReadOnlyStopwatch.StopwatchDeltaArguments> OnDelta { get; init; } = new();
public Event<IReadOnlyStopwatch> OnStopped { get; init; } = new();
public Event<IReadOnlyStopwatch> OnPaused { get; init; } = new();
public Event<IReadOnlyStopwatch> OnResumed { get; init; } = new();
public Event<IReadOnlyStopwatch> OnStarted { get; } = new();
public Event<IReadOnlyStopwatch, IReadOnlyStopwatch.StopwatchDeltaArguments> OnDelta { get; } = new();
public Event<IReadOnlyStopwatch> OnStopped { get; } = new();
public Event<IReadOnlyStopwatch> OnPaused { get; } = new();
public Event<IReadOnlyStopwatch> OnResumed { get; } = new();
public double Time { get; protected set; } = 0f;
public TimerState State { get; protected set; } = TimerState.Idle;

View File

@ -4,7 +4,7 @@ namespace Syntriax.Engine.Systems.Time;
public class TickerBehaviour : StopwatchBehaviour, ITicker
{
public Event<ITicker> OnTick { get; init; } = new();
public Event<ITicker> OnTick { get; } = new();
public double Period { get; set; } = 1f;
public int TickCounter { get; private set; } = 0;

View File

@ -4,11 +4,11 @@ namespace Syntriax.Engine.Systems.Time;
public class TimerBehaviour : Behaviour, ITimer
{
public Event<IReadOnlyTimer> OnStarted { get; init; } = new();
public Event<IReadOnlyTimer, IReadOnlyTimer.TimerDeltaArguments> OnDelta { get; init; } = new();
public Event<IReadOnlyTimer> OnStopped { get; init; } = new();
public Event<IReadOnlyTimer> OnPaused { get; init; } = new();
public Event<IReadOnlyTimer> OnResumed { get; init; } = new();
public Event<IReadOnlyTimer> OnStarted { get; } = new();
public Event<IReadOnlyTimer, IReadOnlyTimer.TimerDeltaArguments> OnDelta { get; } = new();
public Event<IReadOnlyTimer> OnStopped { get; } = new();
public Event<IReadOnlyTimer> OnPaused { get; } = new();
public Event<IReadOnlyTimer> OnResumed { get; } = new();
public TimerState State { get; protected set; } = TimerState.Idle;
public double StartTime { get; protected set; } = 0f;

View File

@ -4,14 +4,14 @@ namespace Syntriax.Engine.Systems.Tween;
internal class Tween : ITween
{
public Event<ITween> OnStarted { get; init; } = new();
public Event<ITween> OnPaused { get; init; } = new();
public Event<ITween> OnResumed { get; init; } = new();
public Event<ITween> OnCancelled { get; init; } = new();
public Event<ITween> OnCompleted { get; init; } = new();
public Event<ITween> OnEnded { get; init; } = new();
public Event<ITween> OnUpdated { get; init; } = new();
public Event<ITween, ITween.TweenDeltaArguments> OnDeltaUpdated { get; init; } = new();
public Event<ITween> OnStarted { get; } = new();
public Event<ITween> OnPaused { get; } = new();
public Event<ITween> OnResumed { get; } = new();
public Event<ITween> OnCancelled { get; } = new();
public Event<ITween> OnCompleted { get; } = new();
public Event<ITween> OnEnded { get; } = new();
public Event<ITween> OnUpdated { get; } = new();
public Event<ITween, ITween.TweenDeltaArguments> OnDeltaUpdated { get; } = new();
private TweenState _state = TweenState.Idle;
public TweenState State