public async Task PressAsync(Ps4Button buttonFlags) { _currentPress = new ButtonAction(buttonFlags); Interceptor.Callback += ResolveAction; await Task.Run(() => { while (!_currentPress.Up) { Thread.Sleep(CheckInterval); } // ReSharper disable once DelegateSubtraction Interceptor.Callback -= ResolveAction; }); }
public ButtonAction(Ps4Button button) : this() { Button = button; if (button.HasFlag(Ps4Button.Cross)) { State.Cross = true; } if (button.HasFlag(Ps4Button.Circle)) { State.Circle = true; } if (button.HasFlag(Ps4Button.Triangle)) { State.Triangle = true; } if (button.HasFlag(Ps4Button.Square)) { State.Square = true; } if (button.HasFlag(Ps4Button.Up)) { State.DPad_Up = true; } if (button.HasFlag(Ps4Button.Down)) { State.DPad_Down = true; } if (button.HasFlag(Ps4Button.Left)) { State.DPad_Left = true; } if (button.HasFlag(Ps4Button.Right)) { State.DPad_Right = true; } }
private KeyCode GetKeyCode(Ps4Button button) { switch (button) { case Ps4Button.Square: if (player == 0) { return(KeyCode.J); } if (player == 1) { return(KeyCode.Joystick1Button0); } if (player == 2) { return(KeyCode.Joystick2Button0); } if (player == 3) { return(KeyCode.Joystick3Button0); } if (player == 4) { return(KeyCode.Joystick4Button0); } break; case Ps4Button.Cross: if (player == 0) { return(KeyCode.K); } if (player == 1) { return(KeyCode.Joystick1Button1); } if (player == 2) { return(KeyCode.Joystick2Button1); } if (player == 3) { return(KeyCode.Joystick3Button1); } if (player == 4) { return(KeyCode.Joystick4Button1); } break; case Ps4Button.Circle: if (player == 0) { return(KeyCode.L); } if (player == 1) { return(KeyCode.Joystick1Button2); } if (player == 2) { return(KeyCode.Joystick2Button2); } if (player == 3) { return(KeyCode.Joystick3Button2); } if (player == 4) { return(KeyCode.Joystick4Button2); } break; case Ps4Button.Triangle: if (player == 0) { return(KeyCode.I); } if (player == 1) { return(KeyCode.Joystick1Button3); } if (player == 2) { return(KeyCode.Joystick2Button3); } if (player == 3) { return(KeyCode.Joystick3Button3); } if (player == 4) { return(KeyCode.Joystick4Button3); } break; } throw new NotImplementedException(); }
public bool GetButton(Ps4Button button) { var keyCode = GetKeyCode(button); return(Input.GetKey(keyCode)); }