mirror of
https://github.com/ppy/osu.git
synced 2025-02-13 21:12:55 +08:00
Fix BreakTracker.IsBreakTime
not updated properly on breaks set
Causes a pause from focus lose when playing a beatmap that has a break section at the beginning, due to `IsBreakTime` incorrectly set to `false`
This commit is contained in:
parent
e1789c29b1
commit
8d18c7e929
@ -23,16 +23,16 @@ namespace osu.Game.Screens.Play
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public IBindable<bool> IsBreakTime => isBreakTime;
|
public IBindable<bool> IsBreakTime => isBreakTime;
|
||||||
|
|
||||||
private readonly BindableBool isBreakTime = new BindableBool();
|
private readonly BindableBool isBreakTime = new BindableBool(true);
|
||||||
|
|
||||||
public IReadOnlyList<BreakPeriod> Breaks
|
public IReadOnlyList<BreakPeriod> Breaks
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
isBreakTime.Value = false;
|
|
||||||
|
|
||||||
breaks = new PeriodTracker(value.Where(b => b.HasEffect)
|
breaks = new PeriodTracker(value.Where(b => b.HasEffect)
|
||||||
.Select(b => new Period(b.StartTime, b.EndTime - BreakOverlay.BREAK_FADE_DURATION)));
|
.Select(b => new Period(b.StartTime, b.EndTime - BreakOverlay.BREAK_FADE_DURATION)));
|
||||||
|
|
||||||
|
updateBreakTime();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,8 +45,12 @@ namespace osu.Game.Screens.Play
|
|||||||
protected override void Update()
|
protected override void Update()
|
||||||
{
|
{
|
||||||
base.Update();
|
base.Update();
|
||||||
|
updateBreakTime();
|
||||||
|
}
|
||||||
|
|
||||||
var time = Clock.CurrentTime;
|
private void updateBreakTime()
|
||||||
|
{
|
||||||
|
var time = Clock?.CurrentTime ?? 0;
|
||||||
|
|
||||||
isBreakTime.Value = breaks?.IsInAny(time) == true
|
isBreakTime.Value = breaks?.IsInAny(time) == true
|
||||||
|| time < gameplayStartTime
|
|| time < gameplayStartTime
|
||||||
|
Loading…
Reference in New Issue
Block a user