mirror of
https://github.com/ppy/osu.git
synced 2024-09-22 06:47:24 +08:00
Hide resume overlay when re-pausing gameplay (#6611)
Hide resume overlay when re-pausing gameplay Co-authored-by: Dean Herbert <pe@ppy.sh>
This commit is contained in:
commit
0820fde743
@ -38,9 +38,10 @@ namespace osu.Game.Rulesets.Osu.UI
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Show()
|
protected override void PopIn()
|
||||||
{
|
{
|
||||||
base.Show();
|
base.PopIn();
|
||||||
|
|
||||||
GameplayCursor.ActiveCursor.Hide();
|
GameplayCursor.ActiveCursor.Hide();
|
||||||
cursorScaleContainer.MoveTo(GameplayCursor.ActiveCursor.Position);
|
cursorScaleContainer.MoveTo(GameplayCursor.ActiveCursor.Position);
|
||||||
clickToResumeCursor.Appear();
|
clickToResumeCursor.Appear();
|
||||||
@ -55,13 +56,13 @@ namespace osu.Game.Rulesets.Osu.UI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Hide()
|
protected override void PopOut()
|
||||||
{
|
{
|
||||||
|
base.PopOut();
|
||||||
|
|
||||||
localCursorContainer?.Expire();
|
localCursorContainer?.Expire();
|
||||||
localCursorContainer = null;
|
localCursorContainer = null;
|
||||||
GameplayCursor.ActiveCursor.Show();
|
GameplayCursor?.ActiveCursor?.Show();
|
||||||
|
|
||||||
base.Hide();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool OnHover(HoverEvent e) => true;
|
protected override bool OnHover(HoverEvent e) => true;
|
||||||
|
@ -69,6 +69,24 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
confirmClockRunning(true);
|
confirmClockRunning(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestPauseWithResumeOverlay()
|
||||||
|
{
|
||||||
|
AddStep("move cursor to center", () => InputManager.MoveMouseTo(Player.ScreenSpaceDrawQuad.Centre));
|
||||||
|
AddUntilStep("wait for hitobjects", () => Player.ScoreProcessor.Health.Value < 1);
|
||||||
|
|
||||||
|
pauseAndConfirm();
|
||||||
|
|
||||||
|
resume();
|
||||||
|
confirmClockRunning(false);
|
||||||
|
confirmPauseOverlayShown(false);
|
||||||
|
|
||||||
|
pauseAndConfirm();
|
||||||
|
|
||||||
|
AddUntilStep("resume overlay is not active", () => Player.DrawableRuleset.ResumeOverlay.State.Value == Visibility.Hidden);
|
||||||
|
confirmPaused();
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestResumeWithResumeOverlaySkipped()
|
public void TestResumeWithResumeOverlaySkipped()
|
||||||
{
|
{
|
||||||
|
@ -239,6 +239,12 @@ namespace osu.Game.Rulesets.UI
|
|||||||
continueResume();
|
continueResume();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void CancelResume()
|
||||||
|
{
|
||||||
|
// called if the user pauses while the resume overlay is open
|
||||||
|
ResumeOverlay?.Hide();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates and adds the visual representation of a <see cref="TObject"/> to this <see cref="DrawableRuleset{TObject}"/>.
|
/// Creates and adds the visual representation of a <see cref="TObject"/> to this <see cref="DrawableRuleset{TObject}"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -453,6 +459,11 @@ namespace osu.Game.Rulesets.UI
|
|||||||
/// <param name="continueResume">The action to run when resuming is to be completed.</param>
|
/// <param name="continueResume">The action to run when resuming is to be completed.</param>
|
||||||
public abstract void RequestResume(Action continueResume);
|
public abstract void RequestResume(Action continueResume);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Invoked when the user requests to pause while the resume overlay is active.
|
||||||
|
/// </summary>
|
||||||
|
public abstract void CancelResume();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Create a <see cref="ScoreProcessor"/> for the associated ruleset and link with this
|
/// Create a <see cref="ScoreProcessor"/> for the associated ruleset and link with this
|
||||||
/// <see cref="DrawableRuleset"/>.
|
/// <see cref="DrawableRuleset"/>.
|
||||||
|
@ -443,7 +443,12 @@ namespace osu.Game.Screens.Play
|
|||||||
{
|
{
|
||||||
if (!canPause) return;
|
if (!canPause) return;
|
||||||
|
|
||||||
|
if (IsResuming)
|
||||||
|
{
|
||||||
|
DrawableRuleset.CancelResume();
|
||||||
IsResuming = false;
|
IsResuming = false;
|
||||||
|
}
|
||||||
|
|
||||||
GameplayClockContainer.Stop();
|
GameplayClockContainer.Stop();
|
||||||
PauseOverlay.Show();
|
PauseOverlay.Show();
|
||||||
lastPauseActionTime = GameplayClockContainer.GameplayClock.CurrentTime;
|
lastPauseActionTime = GameplayClockContainer.GameplayClock.CurrentTime;
|
||||||
|
Loading…
Reference in New Issue
Block a user