Allow to use scroll wheel to switch enum button mode

This commit is contained in:
DBotThePony 2024-11-10 14:16:00 +07:00
parent a50cad6832
commit eb38466467
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -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<out S : Screen, T : Enum<T>>(
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 ||