public void TriggerTransition(WizardFSMState.StateEnum newState, EntityId targetEntityId, Vector3 targetPosition)
        {
            if (npcWizard == null)
            {
                Debug.LogError("Trying to change state without authority.");
                return;
            }

            if (IsValidTransition(newState))
            {
                Data.currentState   = newState;
                Data.targetEntityId = targetEntityId;
                Data.targetPosition = targetPosition.FlattenVector().ToVector3f();

                var update = new NPCWizard.Update();
                update.SetCurrentState(Data.currentState);
                update.SetTargetEntityId(Data.targetEntityId);
                update.SetTargetPosition(Data.targetPosition);
                npcWizard.Send(update);

                TransitionTo(newState);
            }
            else
            {
                Debug.LogErrorFormat("NPCWizard: Invalid transition from {0} to {1} detected.", Data.currentState, newState);
            }
        }
Beispiel #2
0
 private void StateUpdated(NPCWizard.Update stateUpdate)
 {
     if (stateUpdate.currentState.HasValue)
     {
         SetAnimationState(stateUpdate.currentState.Value);
     }
 }
Beispiel #3
0
 private void OnWizardComponentUpdate(NPCWizard.Update update)
 {
     if (update.currentState.HasValue)
     {
         cachedWizardFSMStateEnum = update.currentState.Value;
         OnStateChanged(cachedWizardFSMStateEnum, wizard.Data.targetEntity);
     }
 }