private void sendTurnMovementEvent(
     byte newTurnStatus, int movementType, Vector3f location, Quaternion rotation) {
   ClientPlayerData.getInstance().getPlayer().setTurnStatus(newTurnStatus);
   ClientNetworkController.getInstance()
       .handleOutgoingEvent(
           CharacterController.getInstance()
               .createMovementEvent(
                   movementType,
                   ClientPlayerData.getInstance().getPlayer().getMoveStatus(),
                   newTurnStatus,
                   location,
                   rotation));
 }
 public void update(float time) {
   // //TODO: We only take care of walking at the moment
   // 2 events ?? why ?
   super.update(time);
   // TODO: Take this out and register individual actions !
   Vector3f location = player.getLocalTranslation();
   Quaternion rotation = player.getLocalRotation();
   boolean forward = KeyBindingManager.getKeyBindingManager().isValidCommand(PROP_KEY_FORWARD);
   boolean backward = KeyBindingManager.getKeyBindingManager().isValidCommand(PROP_KEY_BACKWARD);
   int moveStatus = ClientPlayerData.getInstance().getPlayer().getMoveStatus();
   // TODO: Refactor !
   if (!(forward && backward)) {
     if (!forward && (moveStatus == Globals.WALKING || moveStatus == Globals.RUNNING)) {
       sendMovementEvent(Globals.STANDING, EventTypes.MOVEMENT_STOP_WALK, location, rotation);
     } else if (forward && moveStatus != Globals.WALKING) {
       sendMovementEvent(Globals.WALKING, EventTypes.MOVEMENT_START_WALK, location, rotation);
     } else if (!backward && moveStatus == Globals.WALKING_BACKWARD) {
       sendMovementEvent(Globals.STANDING, EventTypes.MOVEMENT_STOP_WALK, location, rotation);
     } else if (backward && moveStatus != Globals.WALKING_BACKWARD) {
       sendMovementEvent(
           Globals.WALKING_BACKWARD, EventTypes.MOVEMENT_START_WALK_BACKWARDS, location, rotation);
     }
   }
   boolean turnLeft = KeyBindingManager.getKeyBindingManager().isValidCommand(PROP_KEY_LEFT);
   boolean turnRight = KeyBindingManager.getKeyBindingManager().isValidCommand(PROP_KEY_RIGHT);
   if (!(turnRight && turnLeft)) {
     int turnStatus = ClientPlayerData.getInstance().getPlayer().getTurnStatus();
     if (turnLeft && turnStatus != Globals.TURN_LEFT) {
       sendTurnMovementEvent(
           Globals.TURN_LEFT, EventTypes.MOVEMENT_START_TURN_LEFT, location, rotation);
     } else if (!turnLeft && turnStatus == Globals.TURN_LEFT) {
       sendTurnMovementEvent(Globals.NO_TURN, EventTypes.MOVEMENT_STOP_TURN, location, rotation);
     } else if (turnRight && turnStatus != Globals.TURN_RIGHT) {
       sendTurnMovementEvent(
           Globals.TURN_RIGHT, EventTypes.MOVEMENT_START_TURN_RIGHT, location, rotation);
     } else if (!turnRight && turnStatus == Globals.TURN_RIGHT) {
       sendTurnMovementEvent(Globals.NO_TURN, EventTypes.MOVEMENT_STOP_TURN, location, rotation);
     }
   }
 }