Example #1
0
        public bool GoToState(BaseState <T> state)
        {
            if (!CurrentState.Value.ValidNextStates.Contains(state.GetType()) ||
                !CurrentState.Value.Exit())
            {
                return(false);
            }

            BeforeStateChange.Execute(state);

            CurrentState.Value = state;
            CurrentState.Value.Enter(this);

            AfterStateChange.Execute(state);

            return(true);
        }
Example #2
0
 protected virtual void OnBeforeStateChange()
 {
     BeforeStateChange.Invoke(this);
 }