1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-11-26 06:28:35 +01:00

also added consuming variants of IsPressed to Keybind

This commit is contained in:
Ell 2022-04-30 11:38:05 +02:00
parent 8adee49e55
commit 4a88cca8bf
2 changed files with 27 additions and 1 deletions

View file

@ -11,7 +11,7 @@ Jump to version:
## 5.4.0 (Unreleased) ## 5.4.0 (Unreleased)
### MLEM ### MLEM
Additions Additions
- Added consuming variants of IsPressed methods to InputHandler - Added consuming variants of IsPressed methods to InputHandler and Keybind
- Added SpriteBatchContext struct and extensions - Added SpriteBatchContext struct and extensions
- Added InputHandler.InvertPressBehavior - Added InputHandler.InvertPressBehavior

View file

@ -131,6 +131,21 @@ namespace MLEM.Input {
return false; return false;
} }
/// <summary>
/// Returns whether this keybind is considered to be pressed.
/// See <see cref="InputHandler.IsPressed"/> for more information.
/// </summary>
/// <param name="handler">The input handler to query the keys with</param>
/// <param name="gamepadIndex">The index of the gamepad to query, or -1 to query all gamepads</param>
/// <returns>Whether this keybind is considered to be pressed</returns>
public bool TryConsumePressed(InputHandler handler, int gamepadIndex = -1) {
foreach (var combination in this.combinations) {
if (combination.TryConsumePressed(handler, gamepadIndex))
return true;
}
return false;
}
/// <summary> /// <summary>
/// Returns whether any of this keybind's modifier keys are currently down. /// Returns whether any of this keybind's modifier keys are currently down.
/// See <see cref="InputHandler.IsDown"/> for more information. /// See <see cref="InputHandler.IsDown"/> for more information.
@ -242,6 +257,17 @@ namespace MLEM.Input {
return this.IsModifierDown(handler, gamepadIndex) && handler.IsPressed(this.Key, gamepadIndex); return this.IsModifierDown(handler, gamepadIndex) && handler.IsPressed(this.Key, gamepadIndex);
} }
/// <summary>
/// Returns whether this combination is currently pressed and the press has not been consumed yet.
/// A combination is considered consumed if this method has already returned true previously since the last <see cref="InputHandler.Update()"/> call.
/// </summary>
/// <param name="handler">The input handler to query the keys with</param>
/// <param name="gamepadIndex">The index of the gamepad to query, or -1 to query all gamepads</param>
/// <returns>Whether this combination is pressed</returns>
public bool TryConsumePressed(InputHandler handler, int gamepadIndex = -1) {
return this.IsModifierDown(handler, gamepadIndex) && handler.TryConsumePressed(this.Key, gamepadIndex);
}
/// <summary> /// <summary>
/// Returns whether this combination's modifier keys are currently down /// Returns whether this combination's modifier keys are currently down
/// </summary> /// </summary>