feat: Add Storage overlay search

This commit is contained in:
Linnea Gräf
2024-11-18 20:53:20 +01:00
parent d37d13daca
commit 139fa705b3
9 changed files with 237 additions and 73 deletions

View File

@@ -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,

View File

@@ -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()
}
}

View File

@@ -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
}
}