Make Beatmap (bindable) non-nullable.

This commit is contained in:
Dean Herbert
2017-07-19 13:32:16 +09:00
parent 0846414c5b
commit d0dea33faa
14 changed files with 139 additions and 161 deletions

View File

@ -51,28 +51,30 @@ namespace osu.Game.Screens.Select
ValidForResume = false;
Push(new Editor());
}, Key.Number3);
Beatmap.ValueChanged += beatmap_ValueChanged;
}
protected override void OnBeatmapChanged(WorkingBeatmap beatmap)
private void beatmap_ValueChanged(WorkingBeatmap beatmap)
{
if (!IsCurrentScreen) return;
beatmap?.Mods.BindTo(modSelect.SelectedMods);
if (Beatmap?.Track != null)
Beatmap.Track.Looping = false;
if (Beatmap.Value?.Track != null)
Beatmap.Value.Track.Looping = false;
beatmapDetails.Beatmap = beatmap;
if (beatmap?.Track != null)
beatmap.Track.Looping = true;
base.OnBeatmapChanged(beatmap);
}
protected override void OnResuming(Screen last)
{
player = null;
Beatmap.Track.Looping = true;
Beatmap.Value.Track.Looping = true;
base.OnResuming(last);
}
@ -95,8 +97,8 @@ namespace osu.Game.Screens.Select
if (base.OnExiting(next))
return true;
if (Beatmap?.Track != null)
Beatmap.Track.Looping = false;
if (Beatmap.Value?.Track != null)
Beatmap.Value.Track.Looping = false;
return false;
}
@ -105,12 +107,9 @@ namespace osu.Game.Screens.Select
{
if (player != null) return;
Beatmap.Track.Looping = false;
Beatmap.Value.Track.Looping = false;
LoadComponentAsync(player = new PlayerLoader(new Player
{
Beatmap = Beatmap, //eagerly set this so it's present before push.
}), l => Push(player));
LoadComponentAsync(player = new PlayerLoader(new Player()), l => Push(player));
}
}
}