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); } }
private void StateUpdated(NPCWizard.Update stateUpdate) { if (stateUpdate.currentState.HasValue) { SetAnimationState(stateUpdate.currentState.Value); } }
private void OnWizardComponentUpdate(NPCWizard.Update update) { if (update.currentState.HasValue) { cachedWizardFSMStateEnum = update.currentState.Value; OnStateChanged(cachedWizardFSMStateEnum, wizard.Data.targetEntity); } }