From 5a507838d619f7157ed761d8e80c4afd11d96727 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 8 Oct 2016 19:12:31 +0900 Subject: [PATCH 1/6] Fix event not being unbound. --- osu.Game/GameModes/Play/PlaySongSelect.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/osu.Game/GameModes/Play/PlaySongSelect.cs b/osu.Game/GameModes/Play/PlaySongSelect.cs index c790036d7f..06f7d8f914 100644 --- a/osu.Game/GameModes/Play/PlaySongSelect.cs +++ b/osu.Game/GameModes/Play/PlaySongSelect.cs @@ -3,12 +3,15 @@ using System; using System.Collections.Generic; +using osu.Framework.Configuration; using osu.Game.GameModes.Backgrounds; namespace osu.Game.GameModes.Play { class PlaySongSelect : GameModeWhiteBox { + private Bindable playMode; + protected override BackgroundMode CreateBackground() => new BackgroundModeCustom(@"Backgrounds/bg4"); protected override IEnumerable PossibleChildren => new[] { @@ -22,7 +25,15 @@ namespace osu.Game.GameModes.Play OsuGame osu = Game as OsuGame; - osu.PlayMode.ValueChanged += PlayMode_ValueChanged; + playMode = osu.PlayMode; + playMode.ValueChanged += PlayMode_ValueChanged; + } + + protected override void Dispose(bool isDisposing) + { + base.Dispose(isDisposing); + + playMode.ValueChanged -= PlayMode_ValueChanged; } private void PlayMode_ValueChanged(object sender, EventArgs e) From 5ff37670388d75799241f853e31ed7ce37247895 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 8 Oct 2016 19:18:50 +0900 Subject: [PATCH 2/6] Fix typo in comment. --- osu.Game/OsuGame.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs index a524a4f925..87c6c30c51 100644 --- a/osu.Game/OsuGame.cs +++ b/osu.Game/OsuGame.cs @@ -37,7 +37,7 @@ namespace osu.Game { base.Load(); - //attach out bindables to the audio subsystem. + //attach our bindables to the audio subsystem. Audio.Volume.Weld(Config.GetBindable(OsuConfig.VolumeGlobal)); Audio.VolumeSample.Weld(Config.GetBindable(OsuConfig.VolumeEffect)); Audio.VolumeTrack.Weld(Config.GetBindable(OsuConfig.VolumeMusic)); From 0a10bf9a516817ebe718606e3542c6281e88827b Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sun, 9 Oct 2016 20:06:07 +0900 Subject: [PATCH 3/6] Update framework. --- osu-framework | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu-framework b/osu-framework index c3a7ebd979..1f770847b2 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit c3a7ebd979c9a6b19871dc84337905f97c56a6aa +Subproject commit 1f770847b245e6d250e63e60c24e9e84131d15e7 From 36bb4a39880d6d3bba50c96fc63d3bdb7e6bdb81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sun, 9 Oct 2016 11:55:38 +0200 Subject: [PATCH 4/6] Don't call Container.Add within KeyCounterCollection.Reset. --- .../Tests/TestCaseKeyCounter.cs | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/osu.Desktop.VisualTests/Tests/TestCaseKeyCounter.cs b/osu.Desktop.VisualTests/Tests/TestCaseKeyCounter.cs index 87642f3004..7be7d24860 100644 --- a/osu.Desktop.VisualTests/Tests/TestCaseKeyCounter.cs +++ b/osu.Desktop.VisualTests/Tests/TestCaseKeyCounter.cs @@ -19,17 +19,22 @@ namespace osu.Desktop.Tests { base.Reset(); - KeyCounterCollection kc = new KeyCounterCollection + Children = new[] { - Origin = Anchor.Centre, - Anchor = Anchor.Centre, - IsCounting = true + new KeyCounterCollection + { + Origin = Anchor.Centre, + Anchor = Anchor.Centre, + IsCounting = true, + Counters = new KeyCounter[] + { + new KeyCounterKeyboard(@"Z", Key.Z), + new KeyCounterKeyboard(@"X", Key.X), + new KeyCounterMouse(@"M1", MouseButton.Left), + new KeyCounterMouse(@"M2", MouseButton.Right), + }, + }, }; - Add(kc); - kc.AddKey(new KeyCounterKeyboard(@"Z", Key.Z)); - kc.AddKey(new KeyCounterKeyboard(@"X", Key.X)); - kc.AddKey(new KeyCounterMouse(@"M1", MouseButton.Left)); - kc.AddKey(new KeyCounterMouse(@"M2", MouseButton.Right)); } } } From bcb5a02221087ec1909c6769bf87106b9d3312f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sun, 9 Oct 2016 11:55:52 +0200 Subject: [PATCH 5/6] Don't rely on return value of Container.Add. --- osu.Game/GameModes/Menu/ButtonSystem.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/osu.Game/GameModes/Menu/ButtonSystem.cs b/osu.Game/GameModes/Menu/ButtonSystem.cs index 87a78c335d..93701e6c18 100644 --- a/osu.Game/GameModes/Menu/ButtonSystem.cs +++ b/osu.Game/GameModes/Menu/ButtonSystem.cs @@ -113,14 +113,17 @@ namespace osu.Game.GameModes.Menu buttonFlow.Position = new Vector2(wedge_width * 2 - (button_width + osuLogo.SizeForFlow / 4), 0); - buttonsPlay.Add((Button)buttonFlow.Add(new Button(@"solo", @"freeplay", FontAwesome.user, new Color4(102, 68, 204, 255), OnSolo, wedge_width, Key.P))); - buttonsPlay.Add((Button)buttonFlow.Add(new Button(@"multi", @"multiplayer", FontAwesome.users, new Color4(94, 63, 186, 255), OnMulti, 0, Key.M))); - buttonsPlay.Add((Button)buttonFlow.Add(new Button(@"chart", @"charts", FontAwesome.fa_osu_charts, new Color4(80, 53, 160, 255), OnChart))); + buttonsPlay.Add(new Button(@"solo", @"freeplay", FontAwesome.user, new Color4(102, 68, 204, 255), OnSolo, wedge_width, Key.P)); + buttonsPlay.Add(new Button(@"multi", @"multiplayer", FontAwesome.users, new Color4(94, 63, 186, 255), OnMulti, 0, Key.M)); + buttonsPlay.Add(new Button(@"chart", @"charts", FontAwesome.fa_osu_charts, new Color4(80, 53, 160, 255), OnChart)); - buttonsTopLevel.Add((Button)buttonFlow.Add(new Button(@"play", @"play", FontAwesome.fa_osu_logo, new Color4(102, 68, 204, 255), onPlay, wedge_width, Key.P))); - buttonsTopLevel.Add((Button)buttonFlow.Add(new Button(@"osu!editor", @"edit", FontAwesome.fa_osu_edit_o, new Color4(238, 170, 0, 255), OnEdit, 0, Key.E))); - buttonsTopLevel.Add((Button)buttonFlow.Add(new Button(@"osu!direct", @"direct", FontAwesome.fa_osu_chevron_down_o, new Color4(165, 204, 0, 255), OnDirect, 0, Key.D))); - buttonsTopLevel.Add((Button)buttonFlow.Add(new Button(@"exit", @"exit", FontAwesome.fa_osu_cross_o, new Color4(238, 51, 153, 255), onExit, 0, Key.Q))); + buttonsTopLevel.Add(new Button(@"play", @"play", FontAwesome.fa_osu_logo, new Color4(102, 68, 204, 255), onPlay, wedge_width, Key.P)); + buttonsTopLevel.Add(new Button(@"osu!editor", @"edit", FontAwesome.fa_osu_edit_o, new Color4(238, 170, 0, 255), OnEdit, 0, Key.E)); + buttonsTopLevel.Add(new Button(@"osu!direct", @"direct", FontAwesome.fa_osu_chevron_down_o, new Color4(165, 204, 0, 255), OnDirect, 0, Key.D)); + buttonsTopLevel.Add(new Button(@"exit", @"exit", FontAwesome.fa_osu_cross_o, new Color4(238, 51, 153, 255), onExit, 0, Key.Q)); + + buttonFlow.Add(buttonsPlay); + buttonFlow.Add(buttonsTopLevel); } protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) From dd04b33232e889ef4988b838d546d1c05deed719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sun, 9 Oct 2016 11:56:41 +0200 Subject: [PATCH 6/6] Use AddInternal instead of AddTopLevel. --- osu.Game/GameModes/OsuGameMode.cs | 3 +-- .../Graphics/Containers/ParallaxContainer.cs | 16 ++++++++-------- .../UserInterface/KeyCounterCollection.cs | 15 ++++++++------- osu.Game/OsuGameBase.cs | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/osu.Game/GameModes/OsuGameMode.cs b/osu.Game/GameModes/OsuGameMode.cs index d81d30f0d5..b0928d8214 100644 --- a/osu.Game/GameModes/OsuGameMode.cs +++ b/osu.Game/GameModes/OsuGameMode.cs @@ -41,7 +41,7 @@ namespace osu.Game.GameModes } else if (bg != null) { - AddTopLevel(new ParallaxContainer + AddInternal(new ParallaxContainer { Depth = float.MinValue, Children = new[] @@ -51,7 +51,6 @@ namespace osu.Game.GameModes }); } - base.OnEntering(last); } diff --git a/osu.Game/Graphics/Containers/ParallaxContainer.cs b/osu.Game/Graphics/Containers/ParallaxContainer.cs index 3c6cb18162..183b0c054a 100644 --- a/osu.Game/Graphics/Containers/ParallaxContainer.cs +++ b/osu.Game/Graphics/Containers/ParallaxContainer.cs @@ -14,21 +14,21 @@ namespace osu.Game.Graphics.Containers public ParallaxContainer() { RelativeSizeAxes = Axes.Both; + AddInternal(content = new Container() + { + RelativeSizeAxes = Axes.Both, + Anchor = Anchor.Centre, + Origin = Anchor.Centre + }); } - private Container content = new Container() - { - RelativeSizeAxes = Axes.Both, - Anchor = Anchor.Centre, - Origin = Anchor.Centre - }; + private Container content; - protected override Container AddTarget => content; + protected override Container Content => content; public override void Load() { base.Load(); - Add(content); } protected override bool OnMouseMove(InputState state) diff --git a/osu.Game/Graphics/UserInterface/KeyCounterCollection.cs b/osu.Game/Graphics/UserInterface/KeyCounterCollection.cs index 288d1e2018..c9d22d2f06 100644 --- a/osu.Game/Graphics/UserInterface/KeyCounterCollection.cs +++ b/osu.Game/Graphics/UserInterface/KeyCounterCollection.cs @@ -22,18 +22,19 @@ namespace osu.Game.Graphics.UserInterface set { foreach (var k in value) - AddKey(k); + addKey(k); + + Children = value; } } - public void AddKey(KeyCounter key) + private void addKey(KeyCounter key) { counters.Add(key); - key.IsCounting = this.IsCounting; - key.FadeTime = this.FadeTime; - key.KeyDownTextColor = this.KeyDownTextColor; - key.KeyUpTextColor = this.KeyUpTextColor; - base.Add(key); + key.IsCounting = IsCounting; + key.FadeTime = FadeTime; + key.KeyDownTextColor = KeyDownTextColor; + key.KeyUpTextColor = KeyUpTextColor; } public void ResetCount() diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs index 0f0a9116a0..bd3990d5ef 100644 --- a/osu.Game/OsuGameBase.cs +++ b/osu.Game/OsuGameBase.cs @@ -21,7 +21,7 @@ namespace osu.Game public Options Options; public APIAccess API; - protected override Container AddTarget => ratioContainer?.IsLoaded == true ? ratioContainer : base.AddTarget; + protected override Container Content => ratioContainer?.IsLoaded == true ? ratioContainer : base.Content; private RatioAdjust ratioContainer;