From 16a0be44df73b7afe69b54e04e9f9f19b3787c3e Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 9 Nov 2016 18:50:30 +0900 Subject: [PATCH] Add local InputManager to Player; handle Z and X. --- osu.Game/GameModes/Play/Player.cs | 49 ++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/osu.Game/GameModes/Play/Player.cs b/osu.Game/GameModes/Play/Player.cs index fecb076e63..145cbd220c 100644 --- a/osu.Game/GameModes/Play/Player.cs +++ b/osu.Game/GameModes/Play/Player.cs @@ -13,6 +13,14 @@ using osu.Game.Database; using osu.Framework.Timing; using osu.Framework.Audio.Track; using osu.Framework.Extensions.IEnumerableExtensions; +using osu.Framework.Graphics.Cursor; +using osu.Framework.Input; +using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Cursor; +using osu.Framework.Platform; +using OpenTK.Input; +using MouseState = osu.Framework.Input.MouseState; +using osu.Framework.Graphics.Primitives; namespace osu.Game.GameModes.Play { @@ -26,6 +34,38 @@ namespace osu.Game.GameModes.Play 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; @@ -132,7 +172,14 @@ namespace osu.Game.GameModes.Play Children = new Drawable[] { - hitRenderer, + inputManager = new PlayerInputManager(game.Host) + { + PassThrough = false, + Children = new Drawable[] + { + hitRenderer, + } + }, scoreOverlay, }; }