Remove necessity for MusicController to be always visible

This commit is contained in:
Dean Herbert
2019-06-20 23:40:25 +09:00
parent 35ce032be1
commit f2200594c9
2 changed files with 29 additions and 22 deletions

View File

@ -184,6 +184,8 @@ namespace osu.Game
LocalConfig.BindWith(OsuSetting.VolumeInactive, userInactiveVolume);
IsActive.BindValueChanged(active => updateActiveState(active.NewValue), true);
Beatmap.BindValueChanged(beatmapChanged, true);
}
private ExternalLinkOpener externalLinkOpener;
@ -284,6 +286,23 @@ namespace osu.Game
}, $"watch {databasedScoreInfo}", bypassScreenAllowChecks: true);
}
#region Beatmap jukebox progression
private void beatmapChanged(ValueChangedEvent<WorkingBeatmap> beatmap)
{
var nextBeatmap = beatmap.NewValue;
if (nextBeatmap?.Track != null)
nextBeatmap.Track.Completed += currentTrackCompleted;
}
private void currentTrackCompleted()
{
if (!Beatmap.Value.Track.Looping && !Beatmap.Disabled)
musicController.NextTrack();
}
#endregion
private ScheduledDelegate performFromMainMenuTask;
/// <summary>
@ -446,7 +465,7 @@ namespace osu.Game
Origin = Anchor.TopRight,
}, rightFloatingOverlayContent.Add, true);
loadComponentSingleFile(new MusicController
loadComponentSingleFile(musicController = new MusicController
{
GetToolbarHeight = () => ToolbarOffset,
Anchor = Anchor.TopRight,
@ -719,8 +738,11 @@ namespace osu.Game
private Container topMostOverlayContent;
private FrameworkConfigManager frameworkConfig;
private ScalingContainer screenContainer;
private MusicController musicController;
protected override bool OnExiting()
{
if (screenStack.CurrentScreen is Loader)