mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-10-31 21:00:51 +01:00
Added InputHandler.WasPressedForLess and related methods
This commit is contained in:
parent
10bea0f820
commit
79a2eaa8d2
2 changed files with 38 additions and 0 deletions
|
@ -20,6 +20,7 @@ Additions
|
||||||
- Added UniformTextureAtlas methods ToList and ToDictionary
|
- Added UniformTextureAtlas methods ToList and ToDictionary
|
||||||
- Added SingleRandom and SeedSource
|
- Added SingleRandom and SeedSource
|
||||||
- Added TokenizedString.GetArea
|
- Added TokenizedString.GetArea
|
||||||
|
- Added InputHandler.WasPressedForLess and related methods
|
||||||
- **Added the ability to find paths to one of multiple goals using AStar**
|
- **Added the ability to find paths to one of multiple goals using AStar**
|
||||||
|
|
||||||
Improvements
|
Improvements
|
||||||
|
|
|
@ -859,6 +859,43 @@ namespace MLEM.Input {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns if a given control of any kind was just let go this frame, and had been down for less than the given <paramref name="time"/> before that. Essentially, this action signifies a short press action.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="control">The control whose pressed state to query.</param>
|
||||||
|
/// <param name="time">The maximum time that the control should have been down for.</param>
|
||||||
|
/// <param name="index">The index of the gamepad to query (if applicable), or -1 for any gamepad.</param>
|
||||||
|
/// <returns>Whether the given control was pressed for less than the given time.</returns>
|
||||||
|
public bool WasPressedForLess(GenericInput control, TimeSpan time, int index = -1) {
|
||||||
|
return this.WasDown(control, index) && this.IsUp(control, index) && this.GetDownTime(control, index) < time;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns if a given control of any kind was just let go this frame, and had been down for less than the given <paramref name="time"/> before that, and if the press has not been consumed yet using <see cref="TryConsumePressedForLess"/>. Essentially, this action signifies a short press action.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="control">The control whose pressed state to query.</param>
|
||||||
|
/// <param name="time">The maximum time that the control should have been down for.</param>
|
||||||
|
/// <param name="index">The index of the gamepad to query (if applicable), or -1 for any gamepad.</param>
|
||||||
|
/// <returns>Whether the given control was pressed for less than the given time, and the press has not been consumed yet.</returns>
|
||||||
|
public bool WasPressedForLessAvailable(GenericInput control, TimeSpan time, int index = -1) {
|
||||||
|
return this.WasPressedForLess(control, time, index) && !this.IsPressConsumed(control, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns if a given control of any kind was just let go this frame, and had been down for less than the given <paramref name="time"/> before that, and if the press has not been consumed yet using <see cref="TryConsumePressedForLess"/>, and marks the press as consumed if it is. Essentially, this action signifies a short press action.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="control">The control whose pressed state to query.</param>
|
||||||
|
/// <param name="time">The maximum time that the control should have been down for.</param>
|
||||||
|
/// <param name="index">The index of the gamepad to query (if applicable), or -1 for any gamepad.</param>
|
||||||
|
/// <returns>Whether the given control was pressed for less than the given time, and the press was successfully consumed.</returns>
|
||||||
|
public bool TryConsumePressedForLess(GenericInput control, TimeSpan time, int index = -1) {
|
||||||
|
if (this.WasPressedForLessAvailable(control, time, index)) {
|
||||||
|
this.consumedPresses.Add((control, index));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/// <inheritdoc cref="IsDown"/>
|
/// <inheritdoc cref="IsDown"/>
|
||||||
public bool IsAnyDown(params GenericInput[] controls) {
|
public bool IsAnyDown(params GenericInput[] controls) {
|
||||||
foreach (var control in controls) {
|
foreach (var control in controls) {
|
||||||
|
|
Loading…
Reference in a new issue