chore: bumped dotnet version to 10
This commit is contained in:
@@ -9,33 +9,26 @@ public class StateMachine : Behaviour, IUpdate
|
||||
|
||||
private readonly Event<IState, IState.StateTransitionReadyArguments>.EventHandler delegateOnStateTransitionReady = null!;
|
||||
|
||||
private IState _state = new State();
|
||||
|
||||
public StateMachine()
|
||||
{
|
||||
delegateOnStateTransitionReady = OnStateTransitionReady;
|
||||
}
|
||||
|
||||
[Serialize]
|
||||
public IState State
|
||||
{
|
||||
get => _state;
|
||||
get;
|
||||
set
|
||||
{
|
||||
if (_state == value)
|
||||
if (field == value)
|
||||
return;
|
||||
|
||||
IState previousState = _state;
|
||||
IState previousState = field;
|
||||
previousState.OnStateTransitionReady.RemoveListener(delegateOnStateTransitionReady);
|
||||
|
||||
_state = value;
|
||||
field = value;
|
||||
previousState.TransitionFrom(value);
|
||||
value.TransitionTo(_state);
|
||||
value.TransitionTo(field);
|
||||
OnStateChanged?.Invoke(this, new(value, previousState));
|
||||
|
||||
value.OnStateTransitionReady.AddListener(delegateOnStateTransitionReady);
|
||||
}
|
||||
}
|
||||
} = new State();
|
||||
|
||||
private void OnStateTransitionReady(IState sender, IState.StateTransitionReadyArguments args)
|
||||
{
|
||||
@@ -55,5 +48,10 @@ public class StateMachine : Behaviour, IUpdate
|
||||
State.Update();
|
||||
}
|
||||
|
||||
public StateMachine()
|
||||
{
|
||||
delegateOnStateTransitionReady = OnStateTransitionReady;
|
||||
}
|
||||
|
||||
public readonly record struct StateChangedArguments(IState CurrentState, IState PreviousState);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user