Merge pull request #30718 from frenzibyte/initial-key-counter-state

Fix key counter not updating activation state on initial load
This commit is contained in:
Dean Herbert 2024-11-20 15:39:44 +09:00 committed by GitHub
commit b070a50ac9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 0 deletions

View File

@ -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>
@ -49,6 +54,7 @@ protected void Activate(bool forwardPlayback = true)
if (forwardPlayback && isCounting.Value)
activationCount.Value++;
IsActive = true;
OnActivate?.Invoke(forwardPlayback);
}
@ -57,6 +63,7 @@ protected void Deactivate(bool forwardPlayback = true)
if (!forwardPlayback && isCounting.Value)
activationCount.Value--;
IsActive = false;
OnDeactivate?.Invoke(forwardPlayback);
}
}

View File

@ -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;