public void SetButtonState(MouseButtons button, ButtonState.States state) { var oldState = _buttonStates[button]; _buttonStates[button] = new ButtonState(state == ButtonState.States.Down, oldState.IsClicked); OnButtonStateChanged?.Invoke(button, _buttonStates[button], oldState); }
/// <summary> /// Updates all input information. /// </summary> internal void Refresh() { for (int i = 0; i < GamePad.MaximumGamePadCount; i++) { GamePadState currentState = GamePads[i] = GamePad.GetState(i); foreach (Buttons b in Enum.GetValues(typeof(Buttons))) { ButtonState bs = currentState.IsButtonDown(b) ? ButtonState.Pressed : ButtonState.Released; if (buttonStates[i][b] != bs) { buttonStates[i][b] = bs; OnButtonStateChanged?.Invoke(i, b, bs); } } } }
private void Press(int index, bool state) => OnButtonStateChanged?.Invoke(index, state);