private static void UpdateScrollBar() { if (slotFocus >= 0) { scrollBarFocus = false; return; } Rectangle dim = scrollBar.GetClippingRectangle(Main.spriteBatch); Vector2 boxPos = new Vector2(dim.X, dim.Y + dim.Height * (scrollBar.ViewPosition / scrollBarMaxViewSize)); float boxWidth = 20f * Main.UIScale; float boxHeight = dim.Height * (scrollBarViewSize / scrollBarMaxViewSize); if (scrollBarFocus) { if (curMouse.LeftButton == ButtonState.Released) { scrollBarFocus = false; } else { int difference = curMouse.Y - scrollBarFocusMouseStart; scrollBar.ViewPosition = scrollBarFocusPositionStart + (float)difference / boxHeight; } } else if (MouseClicked) { if (curMouse.X > boxPos.X && curMouse.X < boxPos.X + boxWidth && curMouse.Y > boxPos.Y - 3f && curMouse.Y < boxPos.Y + boxHeight + 4f) { scrollBarFocus = true; scrollBarFocusMouseStart = curMouse.Y; scrollBarFocusPositionStart = scrollBar.ViewPosition; } } if (!scrollBarFocus) { int difference = oldMouse.ScrollWheelValue / 250 - curMouse.ScrollWheelValue / 250; scrollBar.ViewPosition += difference; } }