Pokemon3D.Common.Input.InputSystem.CheckDirectionalPressedOnce C# (CSharp) Method

CheckDirectionalPressedOnce() private method

private CheckDirectionalPressedOnce ( InputDirection direction, DirectionalInputTypes inputTypes, Keys arrowKey, Keys WASDKey, Buttons leftThumbstick, Buttons rightThumbstick, Buttons dPadDirection ) : bool
direction InputDirection
inputTypes DirectionalInputTypes
arrowKey Keys
WASDKey Keys
leftThumbstick Buttons
rightThumbstick Buttons
dPadDirection Buttons
return bool
        private bool CheckDirectionalPressedOnce(InputDirection direction, DirectionalInputTypes inputTypes,
                                             Keys arrowKey, Keys WASDKey, Buttons leftThumbstick, Buttons rightThumbstick, Buttons dPadDirection)
        {
            bool hasAnyCommand = false;

            if (inputTypes.HasFlag(DirectionalInputTypes.WASD))
            {
                if (Keyboard.IsKeyDown(WASDKey))
                {
                    hasAnyCommand = true;
                    if (HoldDownPress(direction))
                    {
                        return true;
                    }
                    else
                    {
                        if (Keyboard.IsKeyDownOnce(WASDKey))
                        {
                            ChangePressedDirection(direction);
                            return true;
                        }
                    }
                }
            }
            if (inputTypes.HasFlag(DirectionalInputTypes.ArrowKeys))
            {
                if (Keyboard.IsKeyDown(arrowKey))
                {
                    hasAnyCommand = true;
                    if (HoldDownPress(direction))
                    {
                        return true;
                    }
                    else
                    {
                        if (Keyboard.IsKeyDownOnce(arrowKey))
                        {
                            ChangePressedDirection(direction);
                            return true;
                        }
                    }
                }
            }
            if (inputTypes.HasFlag(DirectionalInputTypes.LeftThumbstick))
            {
                if (GamePad.IsButtonDown(leftThumbstick))
                {
                    hasAnyCommand = true;
                    if (HoldDownPress(direction))
                    {
                        return true;
                    }
                    else
                    {
                        if (GamePad.IsButtonDownOnce(leftThumbstick))
                        {
                            ChangePressedDirection(direction);
                            return true;
                        }
                    }
                }
            }
            if (inputTypes.HasFlag(DirectionalInputTypes.RightThumbstick))
            {
                if (GamePad.IsButtonDown(rightThumbstick))
                {
                    hasAnyCommand = true;
                    if (HoldDownPress(direction))
                    {
                        return true;
                    }
                    else
                    {
                        if (GamePad.IsButtonDownOnce(rightThumbstick))
                        {
                            ChangePressedDirection(direction);
                            return true;
                        }
                    }
                }
            }
            if (inputTypes.HasFlag(DirectionalInputTypes.DPad))
            {
                if (GamePad.IsButtonDown(dPadDirection))
                {
                    hasAnyCommand = true;
                    if (HoldDownPress(direction))
                    {
                        return true;
                    }
                    else
                    {
                        if (GamePad.IsButtonDownOnce(dPadDirection))
                        {
                            ChangePressedDirection(direction);
                            return true;
                        }
                    }
                }
            }

            if (!hasAnyCommand)
                ResetPressedDirection(direction);

            return false;
        }