Ejemplo n.º 1
0
 public void RemoveStateTransition(NPCStateTransition transitionToRemove)
 {
     if (!FWStateUtility.IsTransitionDefined(transitionToRemove))
     {
         return;
     }
     RemoveTransitionFromDictionary(transitionToRemove);
 }
Ejemplo n.º 2
0
    public void HandleTransition(NPCStateTransition transitionType)
    {
        if (!FWStateUtility.IsTransitionDefined(transitionType))
        {
            return;
        }
        NPCState newNpcState = CurrentState.GetStateFromTransition(transitionType);

        if (!FWStateUtility.IsValidNpcState(newNpcState))
        {
            return;
        }
        CurrentStateType = newNpcState;
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
 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;
         }
     }
 }
Ejemplo n.º 5
0
    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);
    }