Skip to content

Commit

Permalink
Merge pull request #30718 from frenzibyte/initial-key-counter-state
Browse files Browse the repository at this point in the history
Fix key counter not updating activation state on initial load
  • Loading branch information
peppy authored Nov 20, 2024
2 parents 273095f + b014bfe commit b070a50
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
7 changes: 7 additions & 0 deletions osu.Game/Screens/Play/HUD/InputTrigger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ public abstract partial class InputTrigger : Component
/// </summary>
public IBindable<int> ActivationCount => activationCount;

/// <summary>
/// Whether this <see cref="InputTrigger"/> is currently active.
/// </summary>
public bool IsActive { get; private set; }

/// <summary>
/// Whether any activation or deactivation of this <see cref="InputTrigger"/> impacts its <see cref="ActivationCount"/>
/// </summary>
Expand All @@ -49,6 +54,7 @@ protected void Activate(bool forwardPlayback = true)
if (forwardPlayback && isCounting.Value)
activationCount.Value++;

IsActive = true;
OnActivate?.Invoke(forwardPlayback);
}

Expand All @@ -57,6 +63,7 @@ protected void Deactivate(bool forwardPlayback = true)
if (!forwardPlayback && isCounting.Value)
activationCount.Value--;

IsActive = false;
OnDeactivate?.Invoke(forwardPlayback);
}
}
Expand Down
8 changes: 8 additions & 0 deletions osu.Game/Screens/Play/HUD/KeyCounter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ protected KeyCounter(InputTrigger trigger)
Trigger.OnDeactivate += Deactivate;
}

protected override void LoadComplete()
{
base.LoadComplete();

if (Trigger.IsActive)
Activate();
}

protected virtual void Activate(bool forwardPlayback = true)
{
isActive.Value = true;
Expand Down

0 comments on commit b070a50

Please sign in to comment.