Ballz.Input.InputTranslator.ProcessGamePadInput C# (CSharp) Метод

ProcessGamePadInput() приватный Метод

private ProcessGamePadInput ( int p ) : void
p int
Результат void
        private void ProcessGamePadInput(int p)
        {
            int sign = 1;
            GamePadState currentState = GamePad.GetState(gamePadPlayerIndex[p - 1]);
            if (System.Environment.OSVersion.Platform != PlatformID.Unix || System.Environment.OSVersion.Platform != PlatformID.MacOSX)
                sign = -1;
            if (currentState.IsConnected)
            {
                if (previousGamePadState[p - 1].DPad.Up == ButtonState.Released && currentState.DPad.Up == ButtonState.Pressed)
                    OnInput(InputMessage.MessageType.ControlsUp, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].DPad.Down == ButtonState.Released && currentState.DPad.Down == ButtonState.Pressed)
                    OnInput(InputMessage.MessageType.ControlsDown, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].DPad.Left == ButtonState.Released && currentState.DPad.Left == ButtonState.Pressed)
                    OnInput(InputMessage.MessageType.ControlsLeft, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].DPad.Right == ButtonState.Released && currentState.DPad.Right == ButtonState.Pressed)
                    OnInput(InputMessage.MessageType.ControlsRight, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].IsButtonUp(Buttons.B) && currentState.IsButtonDown(Buttons.B))
                    OnInput(InputMessage.MessageType.ControlsBack, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].IsButtonUp(Buttons.A) && currentState.IsButtonDown(Buttons.A))
                    OnInput(InputMessage.MessageType.ControlsAction, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].IsButtonUp(Buttons.X) && currentState.IsButtonDown(Buttons.X))
                    OnInput(InputMessage.MessageType.ControlsJump, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));

                if (previousGamePadState[p - 1].ThumbSticks.Left.X <= 0.5 && currentState.ThumbSticks.Left.X > 0.5)
                    OnInput(InputMessage.MessageType.ControlsRight, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].ThumbSticks.Left.X >= -0.5 && currentState.ThumbSticks.Left.X < -0.5)
                    OnInput(InputMessage.MessageType.ControlsLeft, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].ThumbSticks.Left.Y * sign <= 0.5 && currentState.ThumbSticks.Left.Y * sign > 0.5)
                    OnInput(InputMessage.MessageType.ControlsDown, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].ThumbSticks.Left.Y * sign >= -0.5 && currentState.ThumbSticks.Left.Y * sign < -0.5)
                    OnInput(InputMessage.MessageType.ControlsUp, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].Buttons.LeftStick == ButtonState.Released && currentState.Buttons.LeftStick == ButtonState.Pressed)
                    OnInput(InputMessage.MessageType.ControlsJump, true, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));

                if (previousGamePadState[p - 1].ThumbSticks.Left.X > 0.5 && currentState.ThumbSticks.Left.X <= 0.5)
                    OnInput(InputMessage.MessageType.ControlsRight, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].ThumbSticks.Left.X < -0.5 && currentState.ThumbSticks.Left.X >= -0.5)
                    OnInput(InputMessage.MessageType.ControlsLeft, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].ThumbSticks.Left.Y * sign > 0.5 && currentState.ThumbSticks.Left.Y * sign <= 0.5)
                    OnInput(InputMessage.MessageType.ControlsDown, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].ThumbSticks.Left.Y * sign < -0.5 && currentState.ThumbSticks.Left.Y * sign >= -0.5)
                    OnInput(InputMessage.MessageType.ControlsUp, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].Buttons.LeftStick == ButtonState.Pressed && currentState.Buttons.LeftStick == ButtonState.Released)
                    OnInput(InputMessage.MessageType.ControlsJump, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));

                if (previousGamePadState[p - 1].DPad.Up == ButtonState.Pressed && currentState.DPad.Up == ButtonState.Released)
                    OnInput(InputMessage.MessageType.ControlsUp, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].DPad.Down == ButtonState.Pressed && currentState.DPad.Down == ButtonState.Released)
                    OnInput(InputMessage.MessageType.ControlsDown, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].DPad.Left == ButtonState.Pressed && currentState.DPad.Left == ButtonState.Released)
                    OnInput(InputMessage.MessageType.ControlsLeft, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].DPad.Right == ButtonState.Pressed && currentState.DPad.Right == ButtonState.Released)
                    OnInput(InputMessage.MessageType.ControlsRight, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].IsButtonDown(Buttons.B) && currentState.IsButtonUp(Buttons.B))
                    OnInput(InputMessage.MessageType.ControlsBack, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].IsButtonDown(Buttons.A) && currentState.IsButtonUp(Buttons.A))
                    OnInput(InputMessage.MessageType.ControlsAction, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
                if (previousGamePadState[p - 1].IsButtonDown(Buttons.X) && currentState.IsButtonUp(Buttons.X))
                    OnInput(InputMessage.MessageType.ControlsJump, false, char.MinValue, Ballz.The().Match?.PlayerByNumber(p));
            }

            previousGamePadState[p - 1] = currentState;
        }