예제 #1
0
 private void Initialize(StateSO stateSO, StateMachineController stateMachineController,
                         Dictionary <ScriptableObject, object> stateSOControllers)
 {
     StateSO = stateSO;
     StateMachineController = stateMachineController;
     StateSOControllers     = stateSOControllers;
 }
예제 #2
0
 public State(StateSO originSO, StateMachine stateMachine,
     StateTransition[] transitions, StateAction[] actions)
 {
     _thisSO = originSO;
     _stateMachine = stateMachine;
     _stateTransitions = transitions;
     _actions = actions;
 }
예제 #3
0
        private List <StatSO> GetStatsDesiredForState(StateSO state)
        {
            List <StatSO> stats = new List <StatSO>();

            if (state.statTemplate != null)
            {
                StatSO stat = GetOrCreateStat(state.statTemplate);
                if (GetGoalFor(state.statTemplate) != StateSO.Goal.NoAction)
                {
                    stats.Add(stat);
                }
            }

            for (int idx = 1; idx < state.SubStates.Length; idx++)
            {
                stats.AddRange(GetStatsDesiredForState(state.SubStates[idx]));
            }
            return(stats);
        }
예제 #4
0
 internal Controller(StateSO originStateSO, StateTransitionController[] transitions)
 {
     state = new Model(this, originStateSO, transitions);
 }
예제 #5
0
 internal Controller(StateSO originStateSO, StateMachineController stateMachineController, StateTransitionController[] stateTransitionControllers)
 {
     state = new Model(this, originStateSO, stateMachineController, stateTransitionControllers);
 }
예제 #6
0
 /// <summary>
 /// Tests to see if this stats tracker satisfies the requirements of a state.
 /// </summary>
 /// <param name="stateTemplate">The state to test against.</param>
 /// <returns>True if the requirements are satisfied, otherwise false.</returns>
 internal bool SatisfiesState(StateSO stateTemplate)
 {
     return(!UnsatisfiedDesiredStates.Contains(stateTemplate));
 }
예제 #7
0
 private void Initialize(StateController stateController, StateSO originStateSO,
                         StateTransitionController[] stateTransitionControllers)
 {
     OriginStateSO = originStateSO;
     StateTransitionControllers = stateTransitionControllers;
 }
예제 #8
0
 internal Data(StateController stateController, StateSO originStateSO, StateTransitionController[] stateTransitionControllers)
 {
     Initialize();
     Initialize(stateController, originStateSO, stateTransitionControllers);
 }