diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index 3dcfbc5bef..d0aea37bed 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -13,7 +13,6 @@ using osu.Game.Modes; using osu.Game.Modes.Objects; using osu.Game.Modes.Objects.Drawables; -using osu.Game.Modes.UI; using osu.Game.Screens.Backgrounds; using OpenTK.Input; using MouseState = osu.Framework.Input.MouseState; @@ -30,45 +29,14 @@ public class Player : OsuGameMode public BeatmapInfo BeatmapInfo; - PlayerInputManager inputManager; - - class PlayerInputManager : UserInputManager - { - public PlayerInputManager(BasicGameHost host) - : base(host) - { - } - - protected override void UpdateMouseState(InputState state) - { - base.UpdateMouseState(state); - - MouseState mouse = (MouseState)state.Mouse; - - foreach (Key k in state.Keyboard.Keys) - { - switch (k) - { - case Key.Z: - mouse.ButtonStates.Find(s => s.Button == MouseButton.Left).State = true; - break; - case Key.X: - mouse.ButtonStates.Find(s => s.Button == MouseButton.Right).State = true; - break; - } - } - - } - } - - public PlayMode PreferredPlayMode; protected override IFrameBasedClock Clock => playerClock; private InterpolatingFramedClock playerClock; private IAdjustableClock sourceClock; - private Ruleset Ruleset; + + private Ruleset ruleset; [BackgroundDependencyLoader] private void load(AudioManager audio, BeatmapDatabase beatmaps, OsuGameBase game) @@ -102,9 +70,6 @@ private void load(AudioManager audio, BeatmapDatabase beatmaps, OsuGameBase game sourceClock.Start(); }); - HitRenderer hitRenderer; - ScoreOverlay scoreOverlay; - var beatmap = Beatmap.Beatmap; if (beatmap.BeatmapInfo?.Mode > PlayMode.Osu) @@ -116,11 +81,10 @@ private void load(AudioManager audio, BeatmapDatabase beatmaps, OsuGameBase game PlayMode usablePlayMode = beatmap.BeatmapInfo?.Mode > PlayMode.Osu ? beatmap.BeatmapInfo.Mode : PreferredPlayMode; - Ruleset = Ruleset.GetRuleset(usablePlayMode); + ruleset = Ruleset.GetRuleset(usablePlayMode); - scoreOverlay = Ruleset.CreateScoreOverlay(); - - hitRenderer = Ruleset.CreateHitRendererWith(beatmap.HitObjects); + var scoreOverlay = ruleset.CreateScoreOverlay(); + var hitRenderer = ruleset.CreateHitRendererWith(beatmap.HitObjects); hitRenderer.OnHit += delegate (HitObject h) { scoreOverlay.OnHit(h); }; hitRenderer.OnMiss += delegate (HitObject h) { scoreOverlay.OnMiss(h); }; @@ -130,7 +94,7 @@ private void load(AudioManager audio, BeatmapDatabase beatmaps, OsuGameBase game Children = new Drawable[] { - inputManager = new PlayerInputManager(game.Host) + new PlayerInputManager(game.Host) { PassThrough = false, Children = new Drawable[] @@ -147,5 +111,34 @@ protected override void Update() base.Update(); playerClock.ProcessFrame(); } + + class PlayerInputManager : UserInputManager + { + public PlayerInputManager(BasicGameHost host) + : base(host) + { + } + + protected override void UpdateMouseState(InputState state) + { + base.UpdateMouseState(state); + + MouseState mouse = (MouseState)state.Mouse; + + foreach (Key k in state.Keyboard.Keys) + { + switch (k) + { + case Key.Z: + mouse.ButtonStates.Find(s => s.Button == MouseButton.Left).State = true; + break; + case Key.X: + mouse.ButtonStates.Find(s => s.Button == MouseButton.Right).State = true; + break; + } + } + + } + } } }