public void TriggerTransition(LumberjackFSMState.StateEnum newState, EntityId targetEntityId, Vector3 targetPosition)
        {
            if (npcLumberjack == 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 NPCLumberjack.Update();
                update.SetCurrentState(Data.currentState);
                update.SetTargetEntityId(Data.targetEntityId);
                update.SetTargetPosition(Data.targetPosition);
                npcLumberjack.Send(update);

                TransitionTo(newState);
            }
            else
            {
                Debug.LogErrorFormat("NPCLumberjack: Invalid transition from {0} to {1} detected.", Data.currentState, newState);
            }
        }
 private void OnNpcLumberjackComponentUpdated(NPCLumberjack.Update update)
 {
     if (update.currentState.HasValue)
     {
         OnChangeState(update.currentState.Value, lumberjack.Data.targetEntity);
     }
 }
 private void OnNpcLumberjackComponentUpdate(NPCLumberjack.Update newState)
 {
     if (newState.currentState.HasValue)
     {
         if (cachedFsmState != newState.currentState.Value)
         {
             cachedFsmState = newState.currentState.Value;
             SetAnimationState(cachedFsmState);
         }
     }
 }
 private void OnLumberjackComponentUpdate(NPCLumberjack.Update newState)
 {
     SetAnimationState(newState.currentState.Value);
 }