diff options
Diffstat (limited to 'src/main/kotlin/util/FragmentGuiScreen.kt')
| -rw-r--r-- | src/main/kotlin/util/FragmentGuiScreen.kt | 51 |
1 files changed, 25 insertions, 26 deletions
diff --git a/src/main/kotlin/util/FragmentGuiScreen.kt b/src/main/kotlin/util/FragmentGuiScreen.kt index 5e13d51..8797a31 100644 --- a/src/main/kotlin/util/FragmentGuiScreen.kt +++ b/src/main/kotlin/util/FragmentGuiScreen.kt @@ -6,26 +6,25 @@ import io.github.notenoughupdates.moulconfig.gui.GuiContext import me.shedaniel.math.Dimension import me.shedaniel.math.Point import me.shedaniel.math.Rectangle -import net.minecraft.client.gui.DrawContext -import net.minecraft.client.gui.screen.Screen -import net.minecraft.text.Text +import net.minecraft.client.input.MouseButtonEvent +import net.minecraft.client.gui.GuiGraphics +import net.minecraft.client.gui.screens.Screen +import net.minecraft.client.input.CharacterEvent +import net.minecraft.client.input.KeyEvent +import net.minecraft.network.chat.Component abstract class FragmentGuiScreen( val dismissOnOutOfBounds: Boolean = true -) : Screen(Text.literal("")) { +) : Screen(Component.literal("")) { var popup: MoulConfigFragment? = null fun createPopup(context: GuiContext, position: Point) { popup = MoulConfigFragment(context, position) { popup = null } } - override fun render(context: DrawContext, mouseX: Int, mouseY: Int, delta: Float) { - super.render(context, mouseX, mouseY, delta) - context.matrices.push() - context.matrices.translate(0f, 0f, 1000f) - popup?.render(context, mouseX, mouseY, delta) - context.matrices.pop() - } + fun renderPopup(context: GuiGraphics, mouseX: Int, mouseY: Int, delta: Float) { + popup?.render(context, mouseX, mouseY, delta) + } private inline fun ifPopup(ifYes: (MoulConfigFragment) -> Unit): Boolean { val p = popup ?: return false @@ -33,15 +32,15 @@ abstract class FragmentGuiScreen( return true } - override fun keyPressed(keyCode: Int, scanCode: Int, modifiers: Int): Boolean { + override fun keyPressed(input: KeyEvent): Boolean { return ifPopup { - it.keyPressed(keyCode, scanCode, modifiers) + it.keyPressed(input) } } - override fun keyReleased(keyCode: Int, scanCode: Int, modifiers: Int): Boolean { + override fun keyReleased(input: KeyEvent): Boolean { return ifPopup { - it.keyReleased(keyCode, scanCode, modifiers) + it.keyReleased(input) } } @@ -49,35 +48,35 @@ abstract class FragmentGuiScreen( ifPopup { it.mouseMoved(mouseX, mouseY) } } - override fun mouseReleased(mouseX: Double, mouseY: Double, button: Int): Boolean { + override fun mouseReleased(click: MouseButtonEvent): Boolean { return ifPopup { - it.mouseReleased(mouseX, mouseY, button) + it.mouseReleased(click) } } - override fun mouseDragged(mouseX: Double, mouseY: Double, button: Int, deltaX: Double, deltaY: Double): Boolean { + override fun mouseDragged(click: MouseButtonEvent, offsetX: Double, offsetY: Double): Boolean { return ifPopup { - it.mouseDragged(mouseX, mouseY, button, deltaX, deltaY) + it.mouseDragged(click, offsetX, offsetY) } } - override fun mouseClicked(mouseX: Double, mouseY: Double, button: Int): Boolean { + override fun mouseClicked(click: MouseButtonEvent, doubled: Boolean): Boolean { return ifPopup { if (!Rectangle( it.position, - Dimension(it.context.root.width, it.context.root.height) - ).contains(Point(mouseX, mouseY)) + Dimension(it.guiContext.root.width, it.guiContext.root.height) + ).contains(Point(click.x, click.y)) && dismissOnOutOfBounds ) { popup = null } else { - it.mouseClicked(mouseX, mouseY, button) + it.mouseClicked(click, doubled) } - }|| super.mouseClicked(mouseX, mouseY, button) + }|| super.mouseClicked(click, doubled) } - override fun charTyped(chr: Char, modifiers: Int): Boolean { - return ifPopup { it.charTyped(chr, modifiers) } + override fun charTyped(input: CharacterEvent): Boolean { + return ifPopup { it.charTyped(input) } } override fun mouseScrolled( |
