Beispiel #1
0
  private void processKeyboardInput(float delta) {
    for (InputAction action : keyboard.getInputQueue()) {
      boolean consumed =
          sendKeyEvent(action.getInput(), action.getInputChar(), action.getState(), delta);

      // Update bind
      BindableButtonImpl bind = keyBinds.get(action.getInput().getId());
      if (bind != null && action.getState() != ButtonState.REPEAT) {
        bind.updateBindState(
            action.getInput(),
            (action.getState() == ButtonState.DOWN),
            delta,
            getInputEntities(),
            targetSystem.getTarget(),
            targetSystem.getTargetBlockPosition(),
            targetSystem.getHitPosition(),
            targetSystem.getHitNormal(),
            consumed);
      }
    }
  }
Beispiel #2
0
  private void processMouseInput(float delta) {

    if (!engine.hasFocus()) return;

    Vector2i deltaMouse = mouse.getDelta();
    // process mouse movement x axis
    if (deltaMouse.x != 0) {
      mouseXEvent(deltaMouse, delta);
    }
    // process mouse movement y axis
    if (deltaMouse.y != 0) {
      mouseYEvent(deltaMouse, delta);
    }
    // process mouse clicks
    for (InputAction action : mouse.getInputQueue()) {
      switch (action.getInput().getType()) {
        case MOUSE_BUTTON:
          int id = action.getInput().getId();
          if (id != -1) {
            MouseInput button =
                MouseInput.find(action.getInput().getType(), action.getInput().getId());
            boolean consumed =
                sendMouseEvent(
                    button, action.getState().isDown(), action.getMousePosition(), delta);

            BindableButtonImpl bind = mouseButtonBinds.get(button);
            if (bind != null) {
              bind.updateBindState(
                  action.getInput(),
                  action.getState().isDown(),
                  delta,
                  getInputEntities(),
                  targetSystem.getTarget(),
                  targetSystem.getTargetBlockPosition(),
                  targetSystem.getHitPosition(),
                  targetSystem.getHitNormal(),
                  consumed);
            }
          }
          break;
        case MOUSE_WHEEL:
          int dir = action.getInput().getId();
          if (dir != 0 && action.getTurns() != 0) {
            boolean consumed =
                sendMouseWheelEvent(action.getMousePosition(), dir * action.getTurns(), delta);

            BindableButtonImpl bind = (dir == 1) ? mouseWheelUpBind : mouseWheelDownBind;
            if (bind != null) {
              for (int i = 0; i < action.getTurns(); ++i) {
                bind.updateBindState(
                    action.getInput(),
                    true,
                    delta,
                    getInputEntities(),
                    targetSystem.getTarget(),
                    targetSystem.getTargetBlockPosition(),
                    targetSystem.getHitPosition(),
                    targetSystem.getHitNormal(),
                    consumed);
                bind.updateBindState(
                    action.getInput(),
                    false,
                    delta,
                    getInputEntities(),
                    targetSystem.getTarget(),
                    targetSystem.getTargetBlockPosition(),
                    targetSystem.getHitPosition(),
                    targetSystem.getHitNormal(),
                    consumed);
              }
            }
          }
          break;
        case KEY:
          break;
      }
    }
  }