Beispiel #1
0
 public static bool SpecialNavigationSystem(
     this UFEScreen screen,
     IDictionary <InputReferences, InputEvents> player1PreviousInputs,
     IDictionary <InputReferences, InputEvents> player1CurrentInputs,
     IDictionary <InputReferences, InputEvents> player2PreviousInputs,
     IDictionary <InputReferences, InputEvents> player2CurrentInputs,
     MoveCursorCallback moveCursorCallback = null,
     ActionCallback confirmCallback        = null,
     ActionCallback cancelCallback         = null
     )
 {
     return
         (screen.SpecialNavigationSystem(
              player1PreviousInputs,
              player1CurrentInputs,
              moveCursorCallback,
              confirmCallback,
              cancelCallback
              )
          ||
          screen.SpecialNavigationSystem(
              player2PreviousInputs,
              player2PreviousInputs,
              moveCursorCallback,
              confirmCallback,
              cancelCallback
              ));
 }
    public static bool SpecialNavigationSystem(
        this UFEScreen screen,
        int player,
        MoveCursorCallback moveCursorCallback = null,
        ActionCallback confirmCallback        = null,
        ActionCallback cancelCallback         = null
        )
    {
        //-------------------------------------------------------------------------------------------------------------
        // Retrieve the controller assigned to specified player
        //-------------------------------------------------------------------------------------------------------------
        AbstractInputController inputController = UFE.GetController(player);

        if (inputController != null && UFE.eventSystem != null && UFE.eventSystem.isActiveAndEnabled)
        {
            return(UFEScreenExtensions.SpecialNavigationSystem(
                       inputController,
                       inputController.GetAxisRaw(inputController.horizontalAxis),
                       inputController.GetAxisRaw(inputController.verticalAxis),
                       inputController.GetButtonDown(inputController.horizontalAxis),
                       inputController.GetButtonDown(inputController.verticalAxis),
                       inputController.GetButtonDown(UFE.config.inputOptions.confirmButton),
                       inputController.GetButtonDown(UFE.config.inputOptions.cancelButton),
                       moveCursorCallback,
                       confirmCallback,
                       cancelCallback
                       ));
        }

        return(false);
    }
 public static bool SpecialNavigationSystem(
     this UFEScreen screen,
     MoveCursorCallback moveCursorCallback = null,
     ActionCallback confirmCallback        = null,
     ActionCallback cancelCallback         = null
     )
 {
     return
         (screen.SpecialNavigationSystem(1, moveCursorCallback, confirmCallback, cancelCallback) ||
          screen.SpecialNavigationSystem(2, moveCursorCallback, confirmCallback, cancelCallback));
 }
    private static bool SpecialNavigationSystem(
        AbstractInputController inputController,
        float horizontalAxis,
        float verticalAxis,
        bool horizontalAxisDown,
        bool verticalAxisDown,
        bool confirmButtonDown,
        bool cancelButtonDown,
        MoveCursorCallback moveCursorCallback,
        ActionCallback confirmCallback,
        ActionCallback cancelCallback
        )
    {
        if (inputController != null)
        {
            if (moveCursorCallback != null && moveCursorCallback.Action != null)
            {
                moveCursorCallback.Action(
                    horizontalAxis,
                    verticalAxis,
                    horizontalAxisDown,
                    verticalAxisDown,
                    confirmButtonDown,
                    cancelButtonDown,
                    moveCursorCallback.Sound
                    );
            }

            if (confirmButtonDown)
            {
                if (confirmCallback != null && confirmCallback.Action != null)
                {
                    confirmCallback.Action(confirmCallback.Sound);
                }
                return(true);
            }
            else if (cancelButtonDown)
            {
                if (cancelCallback != null && cancelCallback.Action != null)
                {
                    cancelCallback.Action(cancelCallback.Sound);
                }
                return(true);
            }
        }
        return(false);
    }
Beispiel #5
0
    public static bool SpecialNavigationSystem(
        this UFEScreen screen,
        IDictionary <InputReferences, InputEvents> previousInputs,
        IDictionary <InputReferences, InputEvents> currentInputs,
        MoveCursorCallback moveCursorCallback,
        ActionCallback confirmCallback,
        ActionCallback cancelCallback
        )
    {
        Fix64 currentHorizontalAxis = 0f;
        Fix64 currentVerticalAxis   = 0f;

        bool currentHorizontalButton = false;
        bool currentVerticalButton   = false;
        bool currentConfirmButton    = false;
        bool currentCancelButton     = false;

        foreach (KeyValuePair <InputReferences, InputEvents> pair in currentInputs)
        {
            if (pair.Key.inputType == InputType.HorizontalAxis)
            {
                currentHorizontalAxis   = pair.Value.axisRaw;
                currentHorizontalButton = pair.Value.button;
            }
            else if (pair.Key.inputType == InputType.VerticalAxis)
            {
                currentVerticalAxis   = pair.Value.axisRaw;
                currentVerticalButton = pair.Value.button;
            }
            else
            {
                if (pair.Key.engineRelatedButton == UFE.config.inputOptions.confirmButton)
                {
                    currentConfirmButton = pair.Value.button;
                }
                if (pair.Key.engineRelatedButton == UFE.config.inputOptions.cancelButton)
                {
                    currentCancelButton = pair.Value.button;
                }
            }
        }


        bool previousHorizontalButton = false;
        bool previousVerticalButton   = false;
        bool previousConfirmButton    = false;
        bool previousCancelButton     = false;

        foreach (KeyValuePair <InputReferences, InputEvents> pair in previousInputs)
        {
            if (pair.Key.inputType == InputType.HorizontalAxis)
            {
                previousHorizontalButton = pair.Value.button;
            }
            else if (pair.Key.inputType == InputType.VerticalAxis)
            {
                previousVerticalButton = pair.Value.button;
            }
            else
            {
                if (pair.Key.engineRelatedButton == UFE.config.inputOptions.confirmButton)
                {
                    previousConfirmButton = pair.Value.button;
                }
                if (pair.Key.engineRelatedButton == UFE.config.inputOptions.cancelButton)
                {
                    previousCancelButton = pair.Value.button;
                }
            }
        }

        bool horizontalAxisDown = currentHorizontalButton && !previousHorizontalButton;
        bool verticalAxisDown   = currentVerticalButton && !previousVerticalButton;
        bool confirmButtonDown  = currentConfirmButton && !previousConfirmButton;
        bool cancelButtonDown   = currentCancelButton && !previousCancelButton;

//		UnityEngine.Debug.Log(
//			UFE.currentFrame + " | " +
//			previousHorizontalButton + " > " + currentHorizontalButton + " | " +
//			previousVerticalButton + " > " + currentVerticalButton
//		);

        if (moveCursorCallback != null && moveCursorCallback.Action != null)
        {
            moveCursorCallback.Action(
                currentHorizontalAxis,
                currentVerticalAxis,
                horizontalAxisDown,
                verticalAxisDown,
                confirmButtonDown,
                cancelButtonDown,
                moveCursorCallback.Sound
                );
        }

        if (confirmButtonDown)
        {
            if (confirmCallback != null && confirmCallback.Action != null)
            {
                confirmCallback.Action(confirmCallback.Sound);
            }
            return(true);
        }
        else if (cancelButtonDown)
        {
            if (cancelCallback != null && cancelCallback.Action != null)
            {
                cancelCallback.Action(cancelCallback.Sound);
            }
            return(true);
        }
        return(false);
    }