mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-11-22 20:58:34 +01:00
allow querying all gamepad buttons at the same time
This commit is contained in:
parent
35fccfcd83
commit
78273d6401
1 changed files with 36 additions and 12 deletions
|
@ -110,51 +110,75 @@ namespace MLEM.Input {
|
|||
return this.WasMouseButtonUp(button) && this.IsMouseButtonDown(button);
|
||||
}
|
||||
|
||||
public bool IsGamepadButtonDown(int index, Buttons button) {
|
||||
public bool IsGamepadButtonDown(Buttons button, int index = -1) {
|
||||
if (index < 0) {
|
||||
for (var i = 0; i < GamePad.MaximumGamePadCount; i++)
|
||||
if (this.GetGamepadState(i).IsButtonDown(button))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
return this.GetGamepadState(index).IsButtonDown(button);
|
||||
}
|
||||
|
||||
public bool IsGamepadButtonUp(int index, Buttons button) {
|
||||
public bool IsGamepadButtonUp(Buttons button, int index = -1) {
|
||||
if (index < 0) {
|
||||
for (var i = 0; i < GamePad.MaximumGamePadCount; i++)
|
||||
if (this.GetGamepadState(i).IsButtonUp(button))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
return this.GetGamepadState(index).IsButtonUp(button);
|
||||
}
|
||||
|
||||
public bool WasGamepadButtonDown(int index, Buttons button) {
|
||||
public bool WasGamepadButtonDown(Buttons button, int index = -1) {
|
||||
if (index < 0) {
|
||||
for (var i = 0; i < GamePad.MaximumGamePadCount; i++)
|
||||
if (this.GetLastGamepadState(i).IsButtonDown(button))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
return this.GetLastGamepadState(index).IsButtonDown(button);
|
||||
}
|
||||
|
||||
public bool WasGamepadButtonUp(int index, Buttons button) {
|
||||
public bool WasGamepadButtonUp(Buttons button, int index = -1) {
|
||||
if (index < 0) {
|
||||
for (var i = 0; i < GamePad.MaximumGamePadCount; i++)
|
||||
if (this.GetLastGamepadState(i).IsButtonUp(button))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
return this.GetLastGamepadState(index).IsButtonUp(button);
|
||||
}
|
||||
|
||||
public bool IsGamepadButtonPressed(int index, Buttons button) {
|
||||
return this.WasGamepadButtonUp(index, button) && this.IsGamepadButtonDown(index, button);
|
||||
public bool IsGamepadButtonPressed(Buttons button, int index = -1) {
|
||||
return this.WasGamepadButtonUp(button, index) && this.IsGamepadButtonDown(button, index);
|
||||
}
|
||||
|
||||
public bool IsDown(object control, int index = 0) {
|
||||
public bool IsDown(object control, int index = -1) {
|
||||
if (control is Keys key)
|
||||
return this.IsKeyDown(key);
|
||||
if (control is Buttons button)
|
||||
return this.IsGamepadButtonDown(index, button);
|
||||
return this.IsGamepadButtonDown(button, index);
|
||||
if (control is MouseButton mouse)
|
||||
return this.IsMouseButtonDown(mouse);
|
||||
throw new ArgumentException(nameof(control));
|
||||
}
|
||||
|
||||
public bool IsUp(object control, int index = 0) {
|
||||
public bool IsUp(object control, int index = -1) {
|
||||
if (control is Keys key)
|
||||
return this.IsKeyUp(key);
|
||||
if (control is Buttons button)
|
||||
return this.IsGamepadButtonUp(index, button);
|
||||
return this.IsGamepadButtonUp(button, index);
|
||||
if (control is MouseButton mouse)
|
||||
return this.IsMouseButtonUp(mouse);
|
||||
throw new ArgumentException(nameof(control));
|
||||
}
|
||||
|
||||
public bool IsPressed(object control, int index = 0) {
|
||||
public bool IsPressed(object control, int index = -1) {
|
||||
if (control is Keys key)
|
||||
return this.IsKeyPressed(key);
|
||||
if (control is Buttons button)
|
||||
return this.IsGamepadButtonPressed(index, button);
|
||||
return this.IsGamepadButtonPressed(button, index);
|
||||
if (control is MouseButton mouse)
|
||||
return this.IsMouseButtonPressed(mouse);
|
||||
throw new ArgumentException(nameof(control));
|
||||
|
|
Loading…
Reference in a new issue