Esempio n. 1
0
        private void SwitchStates(State targetState, bool invokeEvents = true)
        {
            object parameter   = null;
            var    sourceState = CurrentState;

            if (invokeEvents)
            {
                var data = new OnExitData
                {
                    StateMachine = this,
                    TargetState  = targetState
                };
                CurrentState.OnExit(data);
                parameter = data.Output;
            }

            CurrentState = targetState;

            if (invokeEvents)
            {
                var data = new OnEnterData
                {
                    StateMachine = this,
                    SourceState  = sourceState,
                    Input        = parameter
                };
                CurrentState.OnEnter(data);
            }
        }
Esempio n. 2
0
 public override void OnEnter(OnEnterData data)
 {
     messageBroker.SendMessage($"Entering state: {Name}");
 }