public void Update(GameTime gameTime, MouseState mouse) { if (!Controls.Instance.leftMouse && mouse.LeftButton == ButtonState.Pressed) { Controls.Instance.acceptTextInput = false; } bool isOverButton = false; foreach (UIElement element in Elements) { if (element.canClick) { if (element.dimensions.Contains(new Point(mouse.X, mouse.Y))) { if (!element.mouseOver) { element.DoMouseOver(); } element.mouseOver = true; if (!Controls.Instance.leftMouse && mouse.LeftButton == ButtonState.Pressed) { element.DoClick(); } if (!Controls.Instance.rightMouse && mouse.RightButton == ButtonState.Pressed) { element.DoRightClick(); } isOverButton = true; } else { if (element.mouseOver) { element.DoMouseOff(); } element.mouseOver = false; } } if (element is UITextBox) { UITextBox textBox = (UITextBox)element; textBox.UpdateBlink(gameTime); } } if (!isOverButton && !Controls.Instance.leftMouse && mouse.LeftButton == ButtonState.Pressed) { DoClickAway(); } }