From dc03f36793265cb52a403f18bd4f9ad817f6f559 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Fri, 4 Nov 2016 18:18:08 -0400 Subject: [PATCH] Use DI for Player --- osu-framework | 2 +- osu.Desktop.VisualTests/Tests/TestCasePlayer.cs | 16 ++++++++++++---- osu.Game/GameModes/Play/PlaySongSelect.cs | 11 +++++++---- osu.Game/GameModes/Play/Player.cs | 7 ++++++- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/osu-framework b/osu-framework index 25b8c3c6cf..eb16219058 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit 25b8c3c6cfead49acf5659a750c7e604289d5b81 +Subproject commit eb16219058e87210c9ad90b1e214ccc2c1556058 diff --git a/osu.Desktop.VisualTests/Tests/TestCasePlayer.cs b/osu.Desktop.VisualTests/Tests/TestCasePlayer.cs index bb7b86db43..f46bf5055c 100644 --- a/osu.Desktop.VisualTests/Tests/TestCasePlayer.cs +++ b/osu.Desktop.VisualTests/Tests/TestCasePlayer.cs @@ -11,6 +11,7 @@ using osu.Game.Beatmaps.Objects; using osu.Game.Beatmaps.Objects.Osu; using osu.Game.GameModes.Play; using OpenTK; +using osu.Framework; namespace osu.Desktop.VisualTests.Tests { @@ -24,6 +25,14 @@ namespace osu.Desktop.VisualTests.Tests protected override IFrameBasedClock Clock => localClock; + private BaseGame game; + + protected override void Load(BaseGame game) + { + base.Load(game); + this.game = game; + } + public override void Reset() { base.Reset(); @@ -55,10 +64,9 @@ namespace osu.Desktop.VisualTests.Tests decoder.Process(b); - Add(new Player - { - Beatmap = new WorkingBeatmap(b) - }); + var player = game.Dependencies.Get(); + player.Beatmap = new WorkingBeatmap(b); + Add(player); } protected override void Update() diff --git a/osu.Game/GameModes/Play/PlaySongSelect.cs b/osu.Game/GameModes/Play/PlaySongSelect.cs index 9a62d8f071..9bb115aba4 100644 --- a/osu.Game/GameModes/Play/PlaySongSelect.cs +++ b/osu.Game/GameModes/Play/PlaySongSelect.cs @@ -113,10 +113,13 @@ namespace osu.Game.GameModes.Play Width = 100, Text = "Play", Colour = new Color4(238, 51, 153, 255), - Action = () => Push(new Player { - BeatmapInfo = selectedBeatmapGroup.SelectedPanel.Beatmap, - PreferredPlayMode = playMode.Value - }), + Action = () => + { + var player = Game.Dependencies.Get(); + player.BeatmapInfo = selectedBeatmapGroup.SelectedPanel.Beatmap; + player.PreferredPlayMode = playMode.Value; + Push(player); + } }, } } diff --git a/osu.Game/GameModes/Play/Player.cs b/osu.Game/GameModes/Play/Player.cs index a76f29c49f..eadb3ae2ae 100644 --- a/osu.Game/GameModes/Play/Player.cs +++ b/osu.Game/GameModes/Play/Player.cs @@ -30,6 +30,12 @@ namespace osu.Game.GameModes.Play private InterpolatingFramedClock playerClock; private IAdjustableClock sourceClock; + private BeatmapDatabase beatmaps; + + public Player(BeatmapDatabase beatmaps) + { + this.beatmaps = beatmaps; + } protected override void Load(BaseGame game) { @@ -37,7 +43,6 @@ namespace osu.Game.GameModes.Play try { - var beatmaps = Game.Dependencies.Get(); if (Beatmap == null) Beatmap = beatmaps.GetWorkingBeatmap(BeatmapInfo); }