From e47faf4e85e0bf6154cbfb3087792962af17196c Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 18 Jul 2017 16:51:34 +0900 Subject: [PATCH] Add a dummy beatmap provider for use in BeatmapInfoWedge --- osu.Game/Beatmaps/DummyWorkingBeatmap.cs | 37 +++++++++++++++++++++ osu.Game/Screens/Select/BeatmapInfoWedge.cs | 24 ++++++------- osu.Game/osu.Game.csproj | 3 +- 3 files changed, 51 insertions(+), 13 deletions(-) create mode 100644 osu.Game/Beatmaps/DummyWorkingBeatmap.cs diff --git a/osu.Game/Beatmaps/DummyWorkingBeatmap.cs b/osu.Game/Beatmaps/DummyWorkingBeatmap.cs new file mode 100644 index 0000000000..2226d63189 --- /dev/null +++ b/osu.Game/Beatmaps/DummyWorkingBeatmap.cs @@ -0,0 +1,37 @@ +// Copyright (c) 2007-2017 ppy Pty Ltd . +// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using System.Collections.Generic; +using osu.Framework.Audio.Track; +using osu.Framework.Graphics.Textures; +using osu.Game.Database; +using osu.Game.Rulesets.Objects; + +namespace osu.Game.Beatmaps +{ + internal class DummyWorkingBeatmap : WorkingBeatmap + { + public DummyWorkingBeatmap() + : base(new BeatmapInfo + { + Metadata = new BeatmapMetadata + { + Artist = "please load a beatmap!", + Title = "no beatmaps available!", + Author = "no one", + }, + Difficulty = new BeatmapDifficulty(), + }) + { + } + + protected override Beatmap GetBeatmap() => new Beatmap + { + HitObjects = new List(), + }; + + protected override Texture GetBackground() => null; + + protected override Track GetTrack() => null; + } +} diff --git a/osu.Game/Screens/Select/BeatmapInfoWedge.cs b/osu.Game/Screens/Select/BeatmapInfoWedge.cs index 42f9598096..518e799980 100644 --- a/osu.Game/Screens/Select/BeatmapInfoWedge.cs +++ b/osu.Game/Screens/Select/BeatmapInfoWedge.cs @@ -45,6 +45,14 @@ namespace osu.Game.Screens.Select }; } + protected override void LoadComplete() + { + base.LoadComplete(); + + State = Visibility.Visible; + AlwaysPresent = true; + } + protected override bool HideOnEscape => false; protected override bool BlockPassThroughMouse => false; @@ -63,17 +71,8 @@ namespace osu.Game.Screens.Select public void UpdateBeatmap(WorkingBeatmap beatmap) { - if (beatmap?.BeatmapInfo == null) - { - State = Visibility.Hidden; - beatmapInfoContainer?.FadeOut(250); - beatmapInfoContainer?.Expire(); - beatmapInfoContainer = null; - return; - } - - State = Visibility.Visible; - AlwaysPresent = true; + if (beatmap == null) + beatmap = new DummyWorkingBeatmap(); var lastContainer = beatmapInfoContainer; float newDepth = lastContainer?.Depth + 1 ?? 0; @@ -124,7 +123,8 @@ namespace osu.Game.Screens.Select })); //get statistics from the current ruleset. - labels.AddRange(beatmapInfo.Ruleset.CreateInstance().GetBeatmapStatistics(beatmap).Select(s => new InfoLabel(s))); + if (beatmapInfo.Ruleset != null) + labels.AddRange(beatmapInfo.Ruleset.CreateInstance().GetBeatmapStatistics(beatmap).Select(s => new InfoLabel(s))); } PixelSnapping = true; diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index 42b5765a6d..95b339afb5 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -76,6 +76,7 @@ + @@ -538,4 +539,4 @@ --> - + \ No newline at end of file