public void RemoveStateTransition(NPCStateTransition transitionToRemove) { if (!FWStateUtility.IsTransitionDefined(transitionToRemove)) { return; } RemoveTransitionFromDictionary(transitionToRemove); }
public void HandleTransition(NPCStateTransition transitionType) { if (!FWStateUtility.IsTransitionDefined(transitionType)) { return; } NPCState newNpcState = CurrentState.GetStateFromTransition(transitionType); if (!FWStateUtility.IsValidNpcState(newNpcState)) { return; } CurrentStateType = newNpcState; }
public void AddStateTransition(NPCStateTransition transitionType, NPCState newState) { if (!FWStateUtility.IsTransitionDefined(transitionType) || !FWStateUtility.IsStateDefined(newState)) { return; // can't be a non-existing state } // state can only move down a path, no single transition can map to multiple states (yet) if (TransitionExists(transitionType)) { return; } StateTransitions.Add(transitionType, newState); }
public void RemoveExistingState(NPCState stateToRemove) { if (!FWStateUtility.IsValidNpcState(stateToRemove)) { return; } for (int i = 0; i < _states.Count; i++) { if (_states[i].NpcState == stateToRemove) { _states.Remove(_states[i]); return; } } }
public void AddNewState(FWState newState) { if (!FWStateUtility.IsValidState(newState)) { return; } if (_states.Count == 0) // if there are no states, add state as first { InitializeState(newState); return; } for (int i = 0; i < _states.Count; i++) { if (_states[i].NpcState == newState.NpcState) { Debug.LogError("The state being added already exists in the list"); return; } } _states.Add(newState); }