Advertisement
konalisp

CheckMouseInput

Aug 25th, 2017
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.67 KB | None | 0 0
  1.         public void CheckMouseInput(GameTime gt)
  2.         {
  3.             if (!InputEnabled) return;
  4.            
  5.             Int32 scrollDelta = 0;
  6.             var pressedList = new List<MouseButton>();
  7.             MouseState ms = Mouse.GetState();
  8.            
  9.             if (ms.LeftButton   == ButtonState.Pressed) pressedList.Add(MouseButton.Left);
  10.             if (ms.RightButton  == ButtonState.Pressed) pressedList.Add(MouseButton.Right);
  11.             if (ms.MiddleButton == ButtonState.Pressed) pressedList.Add(MouseButton.Middle);
  12.             if (ms.XButton1     == ButtonState.Pressed) pressedList.Add(MouseButton.XButton1);
  13.             if (ms.XButton2     == ButtonState.Pressed) pressedList.Add(MouseButton.XButton2);
  14.            
  15.             //TODO: Make sure this works.
  16.             if (this.lastScrollValue > ms.ScrollWheelValue)
  17.                 pressedList.Add(MouseButton.ScrollUp);
  18.             else if (this.lastScrollValue < ms.ScrollWheelValue)
  19.                 pressedList.Add(MouseButton.ScrollDown);
  20.            
  21.             scrollDelta = this.lastScrollValue - ms.ScrollWheelValue;
  22.             this.ScrollValue = scrollDelta;
  23.            
  24.             lock (locker)
  25.             {
  26.                 foreach (var m in MouseLookup)
  27.                 {
  28.                     foreach (var p in Enum.GetNames(typeof(MouseButton)))
  29.                     {
  30.                         if ((!pressedList.Contains((MouseButton)Enum.Parse(typeof(MouseButton), p))))
  31.                         {
  32.                             if ((m.State == ButtonState.Released) &&
  33.                             (m.Context == Globals.GameContext || m.Context == GameContext.Any))
  34.                             {
  35.                                 m.Callback(scrollDelta, gt);
  36.                             }
  37.                            
  38.                             if (m.State == ButtonState.Pressed && m.__clicked)
  39.                                 m.__clicked = false;
  40.                         }
  41.                     }
  42.                    
  43.                     if (pressedList.Contains(m.Button) && (m.State == ButtonState.Pressed) && (m.Context == Globals.GameContext || m.Context == GameContext.Any))
  44.                     {
  45.                         if (m.PreventSpam && !m.__clicked)
  46.                         {
  47.                             m.Callback(scrollDelta, gt);
  48.                             m.__clicked = true;
  49.                         }
  50.                         else if (!m.PreventSpam)
  51.                             m.Callback(scrollDelta, gt);
  52.                         //else nothing
  53.                     }
  54.                 }
  55.             }
  56.            
  57.             this.lastScrollValue = ms.ScrollWheelValue;
  58.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement