Exemplo n.º 1
0
        private void Transition(TTrigger trigger, TState stateTo)
        {
            SetInternalState(PlainStateMachineInternalState.Transitioning);

            _protectedNextState = stateTo;

            TState previous = CurrentState;

            OnBeforeStateChanges?.Invoke(previous, trigger, stateTo);

            ExitCurrentState();

            CurrentState        = stateTo;
            _currentStateObject = GetStateById(CurrentState);

            OnStateChanged?.Invoke(previous, trigger, stateTo);

            EnterCurrentState();

            _protectedNextState = default;
        }
 private void NotifyBeforeStateChangesEvent(TState sourceTarget, TTrigger trigger, TState targetState)
 {
     OnBeforeStateChanges?.Invoke(sourceTarget, trigger, targetState);
 }