diff options
author | Linnea Gräf <nea@nea.moe> | 2024-11-18 20:53:20 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-11-18 20:53:20 +0100 |
commit | 139fa705b36b845759cff9318191ff1cca526f2a (patch) | |
tree | a8e297627a078ac97abe03f0e56ea7e3744db042 /src/main/kotlin/util | |
parent | d37d13dacad45af717e1f97488e739ef617fd89d (diff) | |
download | Firmament-139fa705b36b845759cff9318191ff1cca526f2a.tar.gz Firmament-139fa705b36b845759cff9318191ff1cca526f2a.tar.bz2 Firmament-139fa705b36b845759cff9318191ff1cca526f2a.zip |
Diffstat (limited to 'src/main/kotlin/util')
-rw-r--r-- | src/main/kotlin/util/MoulConfigUtils.kt | 13 | ||||
-rw-r--r-- | src/main/kotlin/util/StringUtil.kt | 9 | ||||
-rw-r--r-- | src/main/kotlin/util/customgui/CustomGui.kt | 12 |
3 files changed, 34 insertions, 0 deletions
diff --git a/src/main/kotlin/util/MoulConfigUtils.kt b/src/main/kotlin/util/MoulConfigUtils.kt index 2e52092..62bf3dd 100644 --- a/src/main/kotlin/util/MoulConfigUtils.kt +++ b/src/main/kotlin/util/MoulConfigUtils.kt @@ -7,6 +7,7 @@ import io.github.notenoughupdates.moulconfig.gui.GuiComponent import io.github.notenoughupdates.moulconfig.gui.GuiComponentWrapper import io.github.notenoughupdates.moulconfig.gui.GuiContext import io.github.notenoughupdates.moulconfig.gui.GuiImmediateContext +import io.github.notenoughupdates.moulconfig.gui.KeyboardEvent import io.github.notenoughupdates.moulconfig.gui.MouseEvent import io.github.notenoughupdates.moulconfig.observer.GetSetter import io.github.notenoughupdates.moulconfig.platform.ModernRenderContext @@ -247,6 +248,18 @@ object MoulConfigUtils { } } + fun typeMCComponentInPlace( + component: GuiComponent, + x: Int, + y: Int, + w: Int, + h: Int, + keyboardEvent: KeyboardEvent + ): Boolean { + val immContext = createInPlaceFullContext(null, IMinecraft.instance.mouseX, IMinecraft.instance.mouseY) + return component.keyboardEvent(keyboardEvent, immContext.translated(x, y, w, h)) + } + fun clickMCComponentInPlace( component: GuiComponent, x: Int, diff --git a/src/main/kotlin/util/StringUtil.kt b/src/main/kotlin/util/StringUtil.kt index f080d5a..68e161a 100644 --- a/src/main/kotlin/util/StringUtil.kt +++ b/src/main/kotlin/util/StringUtil.kt @@ -10,4 +10,13 @@ object StringUtil { } fun Iterable<String>.unwords() = joinToString(" ") + fun nextLexicographicStringOfSameLength(string: String): String { + val next = StringBuilder(string) + while (next.lastOrNull() == Character.MAX_VALUE) next.setLength(next.length - 1) + if (next.isEmpty()) return "" // There is no upper bound. Fall back to the empty string + val lastIdx = next.indices.last + next[lastIdx] = (next[lastIdx] + 1) + return next.toString() + } + } diff --git a/src/main/kotlin/util/customgui/CustomGui.kt b/src/main/kotlin/util/customgui/CustomGui.kt index 5224448..35c60ac 100644 --- a/src/main/kotlin/util/customgui/CustomGui.kt +++ b/src/main/kotlin/util/customgui/CustomGui.kt @@ -76,4 +76,16 @@ abstract class CustomGui { open fun mouseDragged(mouseX: Double, mouseY: Double, button: Int, deltaX: Double, deltaY: Double): Boolean { return false } + + open fun keyPressed(keyCode: Int, scanCode: Int, modifiers: Int): Boolean { + return false + } + + open fun charTyped(chr: Char, modifiers: Int): Boolean { + return false + } + + open fun keyReleased(keyCode: Int, scanCode: Int, modifiers: Int): Boolean { + return false + } } |