diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/EnumButtonPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/EnumButtonPanel.kt index 65c667ba8..c156f0ba2 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/EnumButtonPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/EnumButtonPanel.kt @@ -9,6 +9,7 @@ import ru.dbotthepony.kommons.util.Delegate import ru.dbotthepony.kommons.util.value import ru.dbotthepony.mc.otm.client.render.MGUIGraphics import ru.dbotthepony.mc.otm.client.minecraft +import ru.dbotthepony.mc.otm.client.playGuiClickSound import ru.dbotthepony.mc.otm.client.render.IGUIRenderable import ru.dbotthepony.mc.otm.client.render.UVWindingOrder import ru.dbotthepony.mc.otm.client.screen.panels.EditablePanel @@ -109,6 +110,29 @@ open class EnumButtonPanel>( return super.mouseReleasedInner(x, y, button) } + private var lastScroll = System.nanoTime() + var handleScrolling = true + + override fun mouseScrolledInner(x: Double, y: Double, scroll: Double): Boolean { + if (!handleScrolling) + return false + + if (System.nanoTime() - lastScroll <= 200_000_000L) + return true + + lastScroll = System.nanoTime() + + if (scroll > 0.0) { + onClick(InputConstants.MOUSE_BUTTON_RIGHT) + playGuiClickSound() + } else if (scroll < 0.0) { + onClick(InputConstants.MOUSE_BUTTON_LEFT) + playGuiClickSound() + } + + return true + } + override fun test(value: Int): Boolean { return value == InputConstants.MOUSE_BUTTON_LEFT || value == InputConstants.MOUSE_BUTTON_RIGHT ||