aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/util/FragmentGuiScreen.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/util/FragmentGuiScreen.kt')
-rw-r--r--src/main/kotlin/util/FragmentGuiScreen.kt51
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(