Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void CheckMouseInput(GameTime gt)
- {
- if (!InputEnabled) return;
- Int32 scrollDelta = 0;
- var pressedList = new List<MouseButton>();
- MouseState ms = Mouse.GetState();
- if (ms.LeftButton == ButtonState.Pressed) pressedList.Add(MouseButton.Left);
- if (ms.RightButton == ButtonState.Pressed) pressedList.Add(MouseButton.Right);
- if (ms.MiddleButton == ButtonState.Pressed) pressedList.Add(MouseButton.Middle);
- if (ms.XButton1 == ButtonState.Pressed) pressedList.Add(MouseButton.XButton1);
- if (ms.XButton2 == ButtonState.Pressed) pressedList.Add(MouseButton.XButton2);
- //TODO: Make sure this works.
- if (this.lastScrollValue > ms.ScrollWheelValue)
- pressedList.Add(MouseButton.ScrollUp);
- else if (this.lastScrollValue < ms.ScrollWheelValue)
- pressedList.Add(MouseButton.ScrollDown);
- scrollDelta = this.lastScrollValue - ms.ScrollWheelValue;
- this.ScrollValue = scrollDelta;
- lock (locker)
- {
- foreach (var m in MouseLookup)
- {
- foreach (var p in Enum.GetNames(typeof(MouseButton)))
- {
- if ((!pressedList.Contains((MouseButton)Enum.Parse(typeof(MouseButton), p))))
- {
- if ((m.State == ButtonState.Released) &&
- (m.Context == Globals.GameContext || m.Context == GameContext.Any))
- {
- m.Callback(scrollDelta, gt);
- }
- if (m.State == ButtonState.Pressed && m.__clicked)
- m.__clicked = false;
- }
- }
- if (pressedList.Contains(m.Button) && (m.State == ButtonState.Pressed) && (m.Context == Globals.GameContext || m.Context == GameContext.Any))
- {
- if (m.PreventSpam && !m.__clicked)
- {
- m.Callback(scrollDelta, gt);
- m.__clicked = true;
- }
- else if (!m.PreventSpam)
- m.Callback(scrollDelta, gt);
- //else nothing
- }
- }
- }
- this.lastScrollValue = ms.ScrollWheelValue;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement