예제 #1
0
    /// <summary>
    /// Handles user input.
    /// </summary>
    private void HandleGameInput()
    {
        HandleCameraInput();

        leftShiftInput.Update();
        leftCtrlInput.Update();
        leftAltInput.Update();

        // Changing the object
        changeObjInput.Update();
        if (changeObjInput.JustPressedDown)
        {
            objPlacer.ChangeObject(changeObjInput.PositiveAxis);
        }

        // Turning the object
        turnObjInput.Update();
        if (turnObjInput.JustPressedDown)
        {
            Utils.Direction direction =
                turnObjInput.PositiveAxis ? Utils.Direction.Right : Utils.Direction.Left;
            objPlacer.ChangeRotationForNextObject(direction);
        }

        showAllInput.Update();
        if (showAllInput.JustPressedDown)
        {
            grid.HideAllObjects(false);
        }

        if (ui.EditMenuActive)
        {
            HandleRightClickCancelInput();
        }
        else if (!objPlacer.MultiSelectionActive)
        {
            HandleScrollWheelInput();
            HandleMouseAndModifierInput();
            HandleQuickSettingsInput();

            if (ModeButtonHeldDown())
            {
                UpdateModeHold(settings.EditMode, instant: false);
            }
            else
            {
                ResetModeHold();
                HandleMultiSelectionInput();
                HandleFavoritesInput();
            }
        }
        else
        {
            HandleMultiSelectionInput();
        }
    }