From a033eb46d3361e321aaccf24e7569adfdaa988c5 Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Tue, 21 Nov 2017 16:12:23 +0100 Subject: [PATCH 01/13] Changed to LoadComponentAsync call instead of adding an AsyncLoadWrapper instance. --- osu.Game/Overlays/Direct/PlayButton.cs | 11 ++++----- osu.Game/Overlays/Profile/ProfileHeader.cs | 10 ++++---- osu.Game/Screens/Multiplayer/DrawableRoom.cs | 21 +++++++++-------- osu.Game/Screens/Multiplayer/RoomInspector.cs | 23 +++++++++++-------- osu.Game/Screens/Play/Player.cs | 3 ++- 5 files changed, 37 insertions(+), 31 deletions(-) diff --git a/osu.Game/Overlays/Direct/PlayButton.cs b/osu.Game/Overlays/Direct/PlayButton.cs index 9317bc06cf..7fff2821e3 100644 --- a/osu.Game/Overlays/Direct/PlayButton.cs +++ b/osu.Game/Overlays/Direct/PlayButton.cs @@ -146,18 +146,17 @@ namespace osu.Game.Overlays.Direct loading = true; - Add(new AsyncLoadWrapper(trackLoader = new TrackLoader($"https://b.ppy.sh/preview/{BeatmapSet.OnlineBeatmapSetID}.mp3") - { - OnLoadComplete = d => + LoadComponentAsync(trackLoader = new TrackLoader($"https://b.ppy.sh/preview/{BeatmapSet.OnlineBeatmapSetID}.mp3"), + d => { - // we may have been replaced by another loader + // We may have been replaced by another loader if (trackLoader != d) return; Preview = (d as TrackLoader)?.Preview; Playing.TriggerChange(); loading = false; - }, - })); + Add(trackLoader); + }); } private class TrackLoader : Drawable diff --git a/osu.Game/Overlays/Profile/ProfileHeader.cs b/osu.Game/Overlays/Profile/ProfileHeader.cs index 22e34be34c..6a9247e73b 100644 --- a/osu.Game/Overlays/Profile/ProfileHeader.cs +++ b/osu.Game/Overlays/Profile/ProfileHeader.cs @@ -316,18 +316,18 @@ namespace osu.Game.Overlays.Profile private void loadUser() { - coverContainer.Add(new AsyncLoadWrapper(new UserCoverBackground(user) + LoadComponentAsync(new UserCoverBackground(user) { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, FillMode = FillMode.Fill, OnLoadComplete = d => d.FadeInFromZero(200) - }) + }, + ucb => { - Masking = true, - RelativeSizeAxes = Axes.Both, - Depth = float.MaxValue + ucb.Depth = float.MaxValue; + coverContainer.Add(ucb); }); if (user.IsSupporter) supporterTag.Show(); diff --git a/osu.Game/Screens/Multiplayer/DrawableRoom.cs b/osu.Game/Screens/Multiplayer/DrawableRoom.cs index d2f88224c2..dd69ec9db1 100644 --- a/osu.Game/Screens/Multiplayer/DrawableRoom.cs +++ b/osu.Game/Screens/Multiplayer/DrawableRoom.cs @@ -228,16 +228,19 @@ namespace osu.Game.Screens.Multiplayer if (value != null) { coverContainer.FadeIn(transition_duration); - coverContainer.Children = new[] + + LoadComponentAsync(new BeatmapSetCover(value.BeatmapSet) { - new AsyncLoadWrapper(new BeatmapSetCover(value.BeatmapSet) - { - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - FillMode = FillMode.Fill, - OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), - }) { RelativeSizeAxes = Axes.Both }, - }; + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + FillMode = FillMode.Fill, + OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), + }, + bsc => + { + bsc.RelativeSizeAxes = Axes.Both; + coverContainer.Add(bsc); + }); beatmapTitle.Current = localisation.GetUnicodePreference(value.Metadata.TitleUnicode, value.Metadata.Title); beatmapDash.Text = @" - "; diff --git a/osu.Game/Screens/Multiplayer/RoomInspector.cs b/osu.Game/Screens/Multiplayer/RoomInspector.cs index 66ce51b428..fec35d3d7e 100644 --- a/osu.Game/Screens/Multiplayer/RoomInspector.cs +++ b/osu.Game/Screens/Multiplayer/RoomInspector.cs @@ -329,17 +329,20 @@ namespace osu.Game.Screens.Multiplayer if (value != null) { coverContainer.FadeIn(transition_duration); - coverContainer.Children = new[] + + LoadComponentAsync(new BeatmapSetCover(value.BeatmapSet) { - new AsyncLoadWrapper(new BeatmapSetCover(value.BeatmapSet) - { - RelativeSizeAxes = Axes.Both, - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - FillMode = FillMode.Fill, - OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), - }) { RelativeSizeAxes = Axes.Both }, - }; + RelativeSizeAxes = Axes.Both, + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + FillMode = FillMode.Fill, + OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), + }, + bsc => + { + bsc.RelativeSizeAxes = Axes.Both; + coverContainer.Add(bsc); + }); beatmapTitle.Current = localisation.GetUnicodePreference(value.Metadata.TitleUnicode, value.Metadata.Title); beatmapDash.Text = @" - "; diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index cd2818398d..5f7ef03218 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -248,7 +248,8 @@ namespace osu.Game.Screens.Play storyboard = beatmap.Storyboard.CreateDrawable(Beatmap.Value); storyboard.Masking = true; - storyboardContainer.Add(asyncLoad ? new AsyncLoadWrapper(storyboard) { RelativeSizeAxes = Axes.Both } : (Drawable)storyboard); + if (asyncLoad) LoadComponentAsync(storyboard, s => storyboardContainer.Add(s)); + else storyboardContainer.Add((Drawable)storyboard); } public void Restart() From 870807c26588b0e967d94174bbc54104a1be58b0 Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Tue, 21 Nov 2017 16:17:33 +0100 Subject: [PATCH 02/13] Switched over to the new LoadWrapper class for all delayed loading. --- osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs | 4 ++-- osu.Game/Overlays/BeatmapSet/Header.cs | 4 ++-- osu.Game/Overlays/Direct/DirectPanel.cs | 2 +- osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs | 2 +- osu.Game/Users/UpdateableAvatar.cs | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs index 8a589ccd30..3644c1b26f 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs @@ -43,7 +43,7 @@ namespace osu.Game.Beatmaps.Drawables Children = new Drawable[] { - new DelayedLoadWrapper( + new LoadWrapper( new PanelBackground(beatmap) { RelativeSizeAxes = Axes.Both, @@ -185,4 +185,4 @@ namespace osu.Game.Beatmaps.Drawables } } } -} \ No newline at end of file +} diff --git a/osu.Game/Overlays/BeatmapSet/Header.cs b/osu.Game/Overlays/BeatmapSet/Header.cs index 96bb613f9f..3c7266bb57 100644 --- a/osu.Game/Overlays/BeatmapSet/Header.cs +++ b/osu.Game/Overlays/BeatmapSet/Header.cs @@ -31,7 +31,7 @@ namespace osu.Game.Overlays.BeatmapSet private readonly AuthorInfo author; public Details Details; - private DelayedLoadWrapper cover; + private LoadWrapper cover; public readonly BeatmapPicker Picker; @@ -52,7 +52,7 @@ namespace osu.Game.Overlays.BeatmapSet videoButtons.FadeTo(BeatmapSet.OnlineInfo.HasVideo ? 1 : 0, transition_duration); cover?.FadeOut(400, Easing.Out); - coverContainer.Add(cover = new DelayedLoadWrapper(new BeatmapSetCover(BeatmapSet) + coverContainer.Add(cover = new LoadWrapper(new BeatmapSetCover(BeatmapSet) { Anchor = Anchor.Centre, Origin = Anchor.Centre, diff --git a/osu.Game/Overlays/Direct/DirectPanel.cs b/osu.Game/Overlays/Direct/DirectPanel.cs index ef89c0022b..692e561435 100644 --- a/osu.Game/Overlays/Direct/DirectPanel.cs +++ b/osu.Game/Overlays/Direct/DirectPanel.cs @@ -219,7 +219,7 @@ namespace osu.Game.Overlays.Direct return icons; } - protected Drawable CreateBackground() => new DelayedLoadWrapper(new BeatmapSetCover(SetInfo) + protected Drawable CreateBackground() => new LoadWrapper(new BeatmapSetCover(SetInfo) { Anchor = Anchor.Centre, Origin = Anchor.Centre, diff --git a/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs b/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs index 7b50d36b44..92fc6aef2b 100644 --- a/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs +++ b/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs @@ -99,7 +99,7 @@ namespace osu.Game.Screens.Select.Leaderboards Padding = new MarginPadding(edge_margin), Children = new Drawable[] { - avatar = new DelayedLoadWrapper( + avatar = new LoadWrapper( new Avatar(Score.User) { RelativeSizeAxes = Axes.Both, diff --git a/osu.Game/Users/UpdateableAvatar.cs b/osu.Game/Users/UpdateableAvatar.cs index 7c020fce91..12a189f18f 100644 --- a/osu.Game/Users/UpdateableAvatar.cs +++ b/osu.Game/Users/UpdateableAvatar.cs @@ -40,7 +40,7 @@ namespace osu.Game.Users { displayedAvatar?.FadeOut(300); displayedAvatar?.Expire(); - Add(displayedAvatar = new DelayedLoadWrapper(new Avatar(user) + Add(displayedAvatar = new LoadWrapper(new Avatar(user) { RelativeSizeAxes = Axes.Both, OnLoadComplete = d => d.FadeInFromZero(200), From fd7ac9b6fcdb1a476499d5f89714565f62dfa132 Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Tue, 21 Nov 2017 16:18:32 +0100 Subject: [PATCH 03/13] Switched to the new LoadWrapper class for asynchronous loading (LoadComponentAsync not used here since it's not possible to call that method on a component that has not finished loading, and we're in the constructor where it would be called) --- osu.Game/Users/UserPanel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Users/UserPanel.cs b/osu.Game/Users/UserPanel.cs index ab4d55027d..e4fdcb4c1b 100644 --- a/osu.Game/Users/UserPanel.cs +++ b/osu.Game/Users/UserPanel.cs @@ -58,7 +58,7 @@ namespace osu.Game.Users Children = new Drawable[] { - new AsyncLoadWrapper(new UserCoverBackground(user) + new LoadWrapper(new UserCoverBackground(user) { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, From 2203a8430000b00d539bbfc29000556a789d0a54 Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Tue, 21 Nov 2017 19:16:44 +0100 Subject: [PATCH 04/13] Small fixes and style corrections --- osu.Game/Overlays/BeatmapSet/Header.cs | 21 +++++++++-------- osu.Game/Overlays/Direct/DirectPanel.cs | 23 ++++++++++--------- osu.Game/Screens/Multiplayer/DrawableRoom.cs | 7 ++---- osu.Game/Screens/Multiplayer/RoomInspector.cs | 6 +---- osu.Game/Users/UpdateableAvatar.cs | 12 ++++++---- 5 files changed, 33 insertions(+), 36 deletions(-) diff --git a/osu.Game/Overlays/BeatmapSet/Header.cs b/osu.Game/Overlays/BeatmapSet/Header.cs index 3c7266bb57..5fed0c096a 100644 --- a/osu.Game/Overlays/BeatmapSet/Header.cs +++ b/osu.Game/Overlays/BeatmapSet/Header.cs @@ -52,17 +52,18 @@ namespace osu.Game.Overlays.BeatmapSet videoButtons.FadeTo(BeatmapSet.OnlineInfo.HasVideo ? 1 : 0, transition_duration); cover?.FadeOut(400, Easing.Out); - coverContainer.Add(cover = new LoadWrapper(new BeatmapSetCover(BeatmapSet) - { - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - RelativeSizeAxes = Axes.Both, - FillMode = FillMode.Fill, - OnLoadComplete = d => + coverContainer.Add(cover = new LoadWrapper( + new BeatmapSetCover(BeatmapSet) { - d.FadeInFromZero(400, Easing.Out); - }, - }) + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + RelativeSizeAxes = Axes.Both, + FillMode = FillMode.Fill, + OnLoadComplete = d => + { + d.FadeInFromZero(400, Easing.Out); + }, + }) { RelativeSizeAxes = Axes.Both, TimeBeforeLoad = 300 diff --git a/osu.Game/Overlays/Direct/DirectPanel.cs b/osu.Game/Overlays/Direct/DirectPanel.cs index 692e561435..98aa5ef0cb 100644 --- a/osu.Game/Overlays/Direct/DirectPanel.cs +++ b/osu.Game/Overlays/Direct/DirectPanel.cs @@ -219,18 +219,19 @@ namespace osu.Game.Overlays.Direct return icons; } - protected Drawable CreateBackground() => new LoadWrapper(new BeatmapSetCover(SetInfo) - { - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - RelativeSizeAxes = Axes.Both, - FillMode = FillMode.Fill, - OnLoadComplete = d => + protected Drawable CreateBackground() => new LoadWrapper( + new BeatmapSetCover(SetInfo) { - d.FadeInFromZero(400, Easing.Out); - BlackBackground.Delay(400).FadeOut(); - }, - }) + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + RelativeSizeAxes = Axes.Both, + FillMode = FillMode.Fill, + OnLoadComplete = d => + { + d.FadeInFromZero(400, Easing.Out); + BlackBackground.Delay(400).FadeOut(); + }, + }) { RelativeSizeAxes = Axes.Both, TimeBeforeLoad = 300 diff --git a/osu.Game/Screens/Multiplayer/DrawableRoom.cs b/osu.Game/Screens/Multiplayer/DrawableRoom.cs index dd69ec9db1..77e32752e4 100644 --- a/osu.Game/Screens/Multiplayer/DrawableRoom.cs +++ b/osu.Game/Screens/Multiplayer/DrawableRoom.cs @@ -229,6 +229,7 @@ namespace osu.Game.Screens.Multiplayer { coverContainer.FadeIn(transition_duration); + LoadComponentAsync(new BeatmapSetCover(value.BeatmapSet) { Anchor = Anchor.Centre, @@ -236,11 +237,7 @@ namespace osu.Game.Screens.Multiplayer FillMode = FillMode.Fill, OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), }, - bsc => - { - bsc.RelativeSizeAxes = Axes.Both; - coverContainer.Add(bsc); - }); + bsc => coverContainer.Add(bsc)); beatmapTitle.Current = localisation.GetUnicodePreference(value.Metadata.TitleUnicode, value.Metadata.Title); beatmapDash.Text = @" - "; diff --git a/osu.Game/Screens/Multiplayer/RoomInspector.cs b/osu.Game/Screens/Multiplayer/RoomInspector.cs index fec35d3d7e..30c2aa8505 100644 --- a/osu.Game/Screens/Multiplayer/RoomInspector.cs +++ b/osu.Game/Screens/Multiplayer/RoomInspector.cs @@ -338,11 +338,7 @@ namespace osu.Game.Screens.Multiplayer FillMode = FillMode.Fill, OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), }, - bsc => - { - bsc.RelativeSizeAxes = Axes.Both; - coverContainer.Add(bsc); - }); + bsc => coverContainer.Add(bsc)); beatmapTitle.Current = localisation.GetUnicodePreference(value.Metadata.TitleUnicode, value.Metadata.Title); beatmapDash.Text = @" - "; diff --git a/osu.Game/Users/UpdateableAvatar.cs b/osu.Game/Users/UpdateableAvatar.cs index 12a189f18f..02018ee1f4 100644 --- a/osu.Game/Users/UpdateableAvatar.cs +++ b/osu.Game/Users/UpdateableAvatar.cs @@ -40,11 +40,13 @@ namespace osu.Game.Users { displayedAvatar?.FadeOut(300); displayedAvatar?.Expire(); - Add(displayedAvatar = new LoadWrapper(new Avatar(user) - { - RelativeSizeAxes = Axes.Both, - OnLoadComplete = d => d.FadeInFromZero(200), - })); + Add(displayedAvatar = new LoadWrapper( + new Avatar(user) + { + RelativeSizeAxes = Axes.Both, + OnLoadComplete = d => d.FadeInFromZero(200), + }) + ); } } } From bf0184c06dc1cbef794c3e617bdb97caa7145bf1 Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Tue, 21 Nov 2017 19:34:01 +0100 Subject: [PATCH 05/13] One more small style fix --- osu.Game/Overlays/BeatmapSet/Header.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/osu.Game/Overlays/BeatmapSet/Header.cs b/osu.Game/Overlays/BeatmapSet/Header.cs index 5fed0c096a..b9d04e7b55 100644 --- a/osu.Game/Overlays/BeatmapSet/Header.cs +++ b/osu.Game/Overlays/BeatmapSet/Header.cs @@ -59,10 +59,7 @@ namespace osu.Game.Overlays.BeatmapSet Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, FillMode = FillMode.Fill, - OnLoadComplete = d => - { - d.FadeInFromZero(400, Easing.Out); - }, + OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), }) { RelativeSizeAxes = Axes.Both, From 1d41e7cc8a8ea5a750004bbfe8ad1cd4936521da Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Tue, 21 Nov 2017 20:15:42 +0100 Subject: [PATCH 06/13] Removed newline at end --- osu.Game/Screens/Multiplayer/DrawableRoom.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osu.Game/Screens/Multiplayer/DrawableRoom.cs b/osu.Game/Screens/Multiplayer/DrawableRoom.cs index 77e32752e4..60a0bd7a82 100644 --- a/osu.Game/Screens/Multiplayer/DrawableRoom.cs +++ b/osu.Game/Screens/Multiplayer/DrawableRoom.cs @@ -229,7 +229,7 @@ namespace osu.Game.Screens.Multiplayer { coverContainer.FadeIn(transition_duration); - + LoadComponentAsync(new BeatmapSetCover(value.BeatmapSet) { Anchor = Anchor.Centre, @@ -260,4 +260,4 @@ namespace osu.Game.Screens.Multiplayer participantInfo.Participants = value; } } -} +} \ No newline at end of file From 7d428875b8c0a4537ef3bde6531393ca3edc0459 Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Wed, 22 Nov 2017 15:46:04 +0100 Subject: [PATCH 07/13] Changed LoadWrapper back to DelayedLoadWrapper and fixed the implementation (dependent on framework change, delay now in ctor) --- osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs | 10 ++++------ osu.Game/Overlays/BeatmapSet/Header.cs | 8 ++++---- osu.Game/Overlays/Direct/DirectPanel.cs | 6 +++--- .../Screens/Select/Leaderboards/LeaderboardScore.cs | 6 +++--- osu.Game/Users/UpdateableAvatar.cs | 5 +++-- osu.Game/Users/UserPanel.cs | 2 +- 6 files changed, 18 insertions(+), 19 deletions(-) diff --git a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs index 3644c1b26f..ec39f86c5c 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs @@ -43,16 +43,14 @@ namespace osu.Game.Beatmaps.Drawables Children = new Drawable[] { - new LoadWrapper( + new DelayedLoadWrapper( new PanelBackground(beatmap) { RelativeSizeAxes = Axes.Both, OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), - } - ) - { - TimeBeforeLoad = 300, - }, + }, + 300 + ), new FillFlowContainer { Direction = FillDirection.Vertical, diff --git a/osu.Game/Overlays/BeatmapSet/Header.cs b/osu.Game/Overlays/BeatmapSet/Header.cs index b9d04e7b55..9bf14e1f90 100644 --- a/osu.Game/Overlays/BeatmapSet/Header.cs +++ b/osu.Game/Overlays/BeatmapSet/Header.cs @@ -31,7 +31,7 @@ namespace osu.Game.Overlays.BeatmapSet private readonly AuthorInfo author; public Details Details; - private LoadWrapper cover; + private DelayedLoadWrapper cover; public readonly BeatmapPicker Picker; @@ -52,7 +52,7 @@ namespace osu.Game.Overlays.BeatmapSet videoButtons.FadeTo(BeatmapSet.OnlineInfo.HasVideo ? 1 : 0, transition_duration); cover?.FadeOut(400, Easing.Out); - coverContainer.Add(cover = new LoadWrapper( + coverContainer.Add(cover = new DelayedLoadWrapper( new BeatmapSetCover(BeatmapSet) { Anchor = Anchor.Centre, @@ -60,10 +60,10 @@ namespace osu.Game.Overlays.BeatmapSet RelativeSizeAxes = Axes.Both, FillMode = FillMode.Fill, OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), - }) + }, + 300) { RelativeSizeAxes = Axes.Both, - TimeBeforeLoad = 300 }); } } diff --git a/osu.Game/Overlays/Direct/DirectPanel.cs b/osu.Game/Overlays/Direct/DirectPanel.cs index 98aa5ef0cb..bef8697552 100644 --- a/osu.Game/Overlays/Direct/DirectPanel.cs +++ b/osu.Game/Overlays/Direct/DirectPanel.cs @@ -219,7 +219,7 @@ namespace osu.Game.Overlays.Direct return icons; } - protected Drawable CreateBackground() => new LoadWrapper( + protected Drawable CreateBackground() => new DelayedLoadWrapper( new BeatmapSetCover(SetInfo) { Anchor = Anchor.Centre, @@ -231,10 +231,10 @@ namespace osu.Game.Overlays.Direct d.FadeInFromZero(400, Easing.Out); BlackBackground.Delay(400).FadeOut(); }, - }) + }, + 300) { RelativeSizeAxes = Axes.Both, - TimeBeforeLoad = 300 }; public class Statistic : FillFlowContainer diff --git a/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs b/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs index 92fc6aef2b..14cd7e6f07 100644 --- a/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs +++ b/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs @@ -99,7 +99,7 @@ namespace osu.Game.Screens.Select.Leaderboards Padding = new MarginPadding(edge_margin), Children = new Drawable[] { - avatar = new LoadWrapper( + avatar = new DelayedLoadWrapper( new Avatar(Score.User) { RelativeSizeAxes = Axes.Both, @@ -112,9 +112,9 @@ namespace osu.Game.Screens.Select.Leaderboards Radius = 1, Colour = Color4.Black.Opacity(0.2f), }, - }) + }, + 500) { - TimeBeforeLoad = 500, RelativeSizeAxes = Axes.None, Size = new Vector2(HEIGHT - edge_margin * 2, HEIGHT - edge_margin * 2), }, diff --git a/osu.Game/Users/UpdateableAvatar.cs b/osu.Game/Users/UpdateableAvatar.cs index 02018ee1f4..1700046653 100644 --- a/osu.Game/Users/UpdateableAvatar.cs +++ b/osu.Game/Users/UpdateableAvatar.cs @@ -40,12 +40,13 @@ namespace osu.Game.Users { displayedAvatar?.FadeOut(300); displayedAvatar?.Expire(); - Add(displayedAvatar = new LoadWrapper( + Add(displayedAvatar = new DelayedLoadWrapper( new Avatar(user) { RelativeSizeAxes = Axes.Both, OnLoadComplete = d => d.FadeInFromZero(200), - }) + }, + 500) ); } } diff --git a/osu.Game/Users/UserPanel.cs b/osu.Game/Users/UserPanel.cs index e4fdcb4c1b..923c62f8ef 100644 --- a/osu.Game/Users/UserPanel.cs +++ b/osu.Game/Users/UserPanel.cs @@ -58,7 +58,7 @@ namespace osu.Game.Users Children = new Drawable[] { - new LoadWrapper(new UserCoverBackground(user) + new DelayedLoadWrapper(new UserCoverBackground(user) { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, From 18b0b77f0ae27c1dddd976a6ae7e7405463e1656 Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Wed, 22 Nov 2017 21:41:50 +0100 Subject: [PATCH 08/13] Added requested changes. Mainly changing lambdas to direct function references. --- osu.Game/Overlays/Profile/ProfileHeader.cs | 9 +++------ osu.Game/Screens/Multiplayer/DrawableRoom.cs | 4 ++-- osu.Game/Screens/Multiplayer/RoomInspector.cs | 2 +- osu.Game/Screens/Play/Player.cs | 6 ++++-- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/osu.Game/Overlays/Profile/ProfileHeader.cs b/osu.Game/Overlays/Profile/ProfileHeader.cs index 6a9247e73b..c7bc5c1d93 100644 --- a/osu.Game/Overlays/Profile/ProfileHeader.cs +++ b/osu.Game/Overlays/Profile/ProfileHeader.cs @@ -322,13 +322,10 @@ namespace osu.Game.Overlays.Profile Anchor = Anchor.Centre, Origin = Anchor.Centre, FillMode = FillMode.Fill, - OnLoadComplete = d => d.FadeInFromZero(200) + OnLoadComplete = d => d.FadeInFromZero(200), + Depth = float.MaxValue, }, - ucb => - { - ucb.Depth = float.MaxValue; - coverContainer.Add(ucb); - }); + coverContainer.Add); if (user.IsSupporter) supporterTag.Show(); diff --git a/osu.Game/Screens/Multiplayer/DrawableRoom.cs b/osu.Game/Screens/Multiplayer/DrawableRoom.cs index 60a0bd7a82..0ba4aaa364 100644 --- a/osu.Game/Screens/Multiplayer/DrawableRoom.cs +++ b/osu.Game/Screens/Multiplayer/DrawableRoom.cs @@ -237,7 +237,7 @@ namespace osu.Game.Screens.Multiplayer FillMode = FillMode.Fill, OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), }, - bsc => coverContainer.Add(bsc)); + coverContainer.Add); beatmapTitle.Current = localisation.GetUnicodePreference(value.Metadata.TitleUnicode, value.Metadata.Title); beatmapDash.Text = @" - "; @@ -260,4 +260,4 @@ namespace osu.Game.Screens.Multiplayer participantInfo.Participants = value; } } -} \ No newline at end of file +} diff --git a/osu.Game/Screens/Multiplayer/RoomInspector.cs b/osu.Game/Screens/Multiplayer/RoomInspector.cs index 30c2aa8505..8d7401500f 100644 --- a/osu.Game/Screens/Multiplayer/RoomInspector.cs +++ b/osu.Game/Screens/Multiplayer/RoomInspector.cs @@ -338,7 +338,7 @@ namespace osu.Game.Screens.Multiplayer FillMode = FillMode.Fill, OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), }, - bsc => coverContainer.Add(bsc)); + coverContainer.Add); beatmapTitle.Current = localisation.GetUnicodePreference(value.Metadata.TitleUnicode, value.Metadata.Title); beatmapDash.Text = @" - "; diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index 5f7ef03218..1e1b7bac93 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -248,8 +248,10 @@ namespace osu.Game.Screens.Play storyboard = beatmap.Storyboard.CreateDrawable(Beatmap.Value); storyboard.Masking = true; - if (asyncLoad) LoadComponentAsync(storyboard, s => storyboardContainer.Add(s)); - else storyboardContainer.Add((Drawable)storyboard); + if (asyncLoad) + LoadComponentAsync(storyboard, storyboardContainer.Add); + else + storyboardContainer.Add(storyboard); } public void Restart() From d6f532171b83a9c58c19ef99843643233430e05b Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Thu, 23 Nov 2017 09:11:52 +0100 Subject: [PATCH 09/13] Implementation fix (since the default delay is now 500 and not 0 this is necessary to ensure the same functionality) --- osu.Game/Users/UserPanel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Users/UserPanel.cs b/osu.Game/Users/UserPanel.cs index 923c62f8ef..1f235e3893 100644 --- a/osu.Game/Users/UserPanel.cs +++ b/osu.Game/Users/UserPanel.cs @@ -65,7 +65,7 @@ namespace osu.Game.Users Origin = Anchor.Centre, FillMode = FillMode.Fill, OnLoadComplete = d => d.FadeInFromZero(200), - }) { RelativeSizeAxes = Axes.Both }, + }, 0) { RelativeSizeAxes = Axes.Both }, new Box { RelativeSizeAxes = Axes.Both, From 2cc2323791b59fa615db3371b89cc3f5dd64ff9a Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Thu, 23 Nov 2017 09:12:23 +0100 Subject: [PATCH 10/13] Style changes (removing newline from before second constructor parameter) --- osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs | 4 +--- osu.Game/Overlays/BeatmapSet/Header.cs | 3 +-- osu.Game/Overlays/Direct/DirectPanel.cs | 3 +-- osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs | 3 +-- osu.Game/Users/UpdateableAvatar.cs | 3 +-- 5 files changed, 5 insertions(+), 11 deletions(-) diff --git a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs index ec39f86c5c..5b84fa7c6e 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs @@ -48,9 +48,7 @@ namespace osu.Game.Beatmaps.Drawables { RelativeSizeAxes = Axes.Both, OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), - }, - 300 - ), + }, 300), new FillFlowContainer { Direction = FillDirection.Vertical, diff --git a/osu.Game/Overlays/BeatmapSet/Header.cs b/osu.Game/Overlays/BeatmapSet/Header.cs index 9bf14e1f90..195ff63ca5 100644 --- a/osu.Game/Overlays/BeatmapSet/Header.cs +++ b/osu.Game/Overlays/BeatmapSet/Header.cs @@ -60,8 +60,7 @@ namespace osu.Game.Overlays.BeatmapSet RelativeSizeAxes = Axes.Both, FillMode = FillMode.Fill, OnLoadComplete = d => d.FadeInFromZero(400, Easing.Out), - }, - 300) + }, 300) { RelativeSizeAxes = Axes.Both, }); diff --git a/osu.Game/Overlays/Direct/DirectPanel.cs b/osu.Game/Overlays/Direct/DirectPanel.cs index bef8697552..2e842af614 100644 --- a/osu.Game/Overlays/Direct/DirectPanel.cs +++ b/osu.Game/Overlays/Direct/DirectPanel.cs @@ -231,8 +231,7 @@ namespace osu.Game.Overlays.Direct d.FadeInFromZero(400, Easing.Out); BlackBackground.Delay(400).FadeOut(); }, - }, - 300) + }, 300) { RelativeSizeAxes = Axes.Both, }; diff --git a/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs b/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs index 14cd7e6f07..0d898ad7d2 100644 --- a/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs +++ b/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs @@ -112,8 +112,7 @@ namespace osu.Game.Screens.Select.Leaderboards Radius = 1, Colour = Color4.Black.Opacity(0.2f), }, - }, - 500) + }, 500) { RelativeSizeAxes = Axes.None, Size = new Vector2(HEIGHT - edge_margin * 2, HEIGHT - edge_margin * 2), diff --git a/osu.Game/Users/UpdateableAvatar.cs b/osu.Game/Users/UpdateableAvatar.cs index 1700046653..895407064c 100644 --- a/osu.Game/Users/UpdateableAvatar.cs +++ b/osu.Game/Users/UpdateableAvatar.cs @@ -45,8 +45,7 @@ namespace osu.Game.Users { RelativeSizeAxes = Axes.Both, OnLoadComplete = d => d.FadeInFromZero(200), - }, - 500) + }, 500) ); } } From cf4fc05be3567c9233a78735986b02ad6be3aa86 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 23 Nov 2017 17:33:46 +0900 Subject: [PATCH 11/13] Fix nullref on disposing BeatmapSetOverlay before load Only affects VisualTests --- osu.Game/Overlays/BeatmapSet/Header.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Overlays/BeatmapSet/Header.cs b/osu.Game/Overlays/BeatmapSet/Header.cs index 27ef6208be..b02df76996 100644 --- a/osu.Game/Overlays/BeatmapSet/Header.cs +++ b/osu.Game/Overlays/BeatmapSet/Header.cs @@ -232,7 +232,7 @@ namespace osu.Game.Overlays.BeatmapSet protected override void Dispose(bool isDisposing) { base.Dispose(isDisposing); - beatmaps.BeatmapSetAdded -= handleBeatmapAdd; + if (beatmaps != null) beatmaps.BeatmapSetAdded -= handleBeatmapAdd; } private void handleBeatmapAdd(BeatmapSetInfo beatmap) From 6d88396139f3f88695f1aa877f2b844954a89917 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 23 Nov 2017 20:22:15 +0900 Subject: [PATCH 12/13] Update framework --- osu-framework | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu-framework b/osu-framework index eea84aaefc..d87dab204b 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit eea84aaefcc7a1a6732d105ba319272dd9744901 +Subproject commit d87dab204b3df50f62e6070b1970c135ea647d78 From 9db6ef6657c70d8f49809c6f04a1fba23b3988df Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 23 Nov 2017 20:23:47 +0900 Subject: [PATCH 13/13] Fix unfixed regressions --- osu.Game/Overlays/Direct/PlayButton.cs | 2 +- osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs | 8 ++++---- osu.Game/Users/UpdateableAvatar.cs | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/osu.Game/Overlays/Direct/PlayButton.cs b/osu.Game/Overlays/Direct/PlayButton.cs index 7fff2821e3..75a3358d51 100644 --- a/osu.Game/Overlays/Direct/PlayButton.cs +++ b/osu.Game/Overlays/Direct/PlayButton.cs @@ -152,7 +152,7 @@ namespace osu.Game.Overlays.Direct // We may have been replaced by another loader if (trackLoader != d) return; - Preview = (d as TrackLoader)?.Preview; + Preview = d?.Preview; Playing.TriggerChange(); loading = false; Add(trackLoader); diff --git a/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs b/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs index 0d898ad7d2..03466439ad 100644 --- a/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs +++ b/osu.Game/Screens/Select/Leaderboards/LeaderboardScore.cs @@ -33,7 +33,7 @@ namespace osu.Game.Screens.Select.Leaderboards private Box background; private Container content; - private Container avatar; + private Drawable avatar; private DrawableRank scoreRank; private OsuSpriteText nameLabel; private GlowingSpriteText scoreLabel; @@ -97,7 +97,7 @@ namespace osu.Game.Screens.Select.Leaderboards { RelativeSizeAxes = Axes.Both, Padding = new MarginPadding(edge_margin), - Children = new Drawable[] + Children = new[] { avatar = new DelayedLoadWrapper( new Avatar(Score.User) @@ -112,7 +112,7 @@ namespace osu.Game.Screens.Select.Leaderboards Radius = 1, Colour = Color4.Black.Opacity(0.2f), }, - }, 500) + }) { RelativeSizeAxes = Axes.None, Size = new Vector2(HEIGHT - edge_margin * 2, HEIGHT - edge_margin * 2), @@ -210,7 +210,7 @@ namespace osu.Game.Screens.Select.Leaderboards public override void Show() { - foreach (var d in new Drawable[] { avatar, nameLabel, scoreLabel, scoreRank, flagBadgeContainer, maxCombo, accuracy, modsContainer }) + foreach (var d in new[] { avatar, nameLabel, scoreLabel, scoreRank, flagBadgeContainer, maxCombo, accuracy, modsContainer }) d.FadeOut(); Alpha = 0; diff --git a/osu.Game/Users/UpdateableAvatar.cs b/osu.Game/Users/UpdateableAvatar.cs index 895407064c..d55c0caad7 100644 --- a/osu.Game/Users/UpdateableAvatar.cs +++ b/osu.Game/Users/UpdateableAvatar.cs @@ -11,7 +11,7 @@ namespace osu.Game.Users /// public class UpdateableAvatar : Container { - private Container displayedAvatar; + private Drawable displayedAvatar; private User user; @@ -45,7 +45,7 @@ namespace osu.Game.Users { RelativeSizeAxes = Axes.Both, OnLoadComplete = d => d.FadeInFromZero(200), - }, 500) + }) ); } }