aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/util/FragmentGuiScreen.kt
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-08-28 19:04:24 +0200
committerLinnea Gräf <nea@nea.moe>2024-08-28 19:04:24 +0200
commitd2f240ff0ca0d27f417f837e706c781a98c31311 (patch)
tree0db7aff6cc14deaf36eed83889d59fd6b3a6f599 /src/main/kotlin/moe/nea/firmament/util/FragmentGuiScreen.kt
parenta6906308163aa3b2d18fa1dc1aa71ac9bbcc83ab (diff)
downloadfirmament-d2f240ff0ca0d27f417f837e706c781a98c31311.tar.gz
firmament-d2f240ff0ca0d27f417f837e706c781a98c31311.tar.bz2
firmament-d2f240ff0ca0d27f417f837e706c781a98c31311.zip
Refactor source layout
Introduce compat source sets and move all kotlin sources to the main directory [no changelog]
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/util/FragmentGuiScreen.kt')
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/FragmentGuiScreen.kt93
1 files changed, 0 insertions, 93 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/util/FragmentGuiScreen.kt b/src/main/kotlin/moe/nea/firmament/util/FragmentGuiScreen.kt
deleted file mode 100644
index 5e13d51..0000000
--- a/src/main/kotlin/moe/nea/firmament/util/FragmentGuiScreen.kt
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-package moe.nea.firmament.util
-
-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
-
-abstract class FragmentGuiScreen(
- val dismissOnOutOfBounds: Boolean = true
-) : Screen(Text.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()
- }
-
- private inline fun ifPopup(ifYes: (MoulConfigFragment) -> Unit): Boolean {
- val p = popup ?: return false
- ifYes(p)
- return true
- }
-
- override fun keyPressed(keyCode: Int, scanCode: Int, modifiers: Int): Boolean {
- return ifPopup {
- it.keyPressed(keyCode, scanCode, modifiers)
- }
- }
-
- override fun keyReleased(keyCode: Int, scanCode: Int, modifiers: Int): Boolean {
- return ifPopup {
- it.keyReleased(keyCode, scanCode, modifiers)
- }
- }
-
- override fun mouseMoved(mouseX: Double, mouseY: Double) {
- ifPopup { it.mouseMoved(mouseX, mouseY) }
- }
-
- override fun mouseReleased(mouseX: Double, mouseY: Double, button: Int): Boolean {
- return ifPopup {
- it.mouseReleased(mouseX, mouseY, button)
- }
- }
-
- override fun mouseDragged(mouseX: Double, mouseY: Double, button: Int, deltaX: Double, deltaY: Double): Boolean {
- return ifPopup {
- it.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)
- }
- }
-
- override fun mouseClicked(mouseX: Double, mouseY: Double, button: Int): Boolean {
- return ifPopup {
- if (!Rectangle(
- it.position,
- Dimension(it.context.root.width, it.context.root.height)
- ).contains(Point(mouseX, mouseY))
- && dismissOnOutOfBounds
- ) {
- popup = null
- } else {
- it.mouseClicked(mouseX, mouseY, button)
- }
- }|| super.mouseClicked(mouseX, mouseY, button)
- }
-
- override fun charTyped(chr: Char, modifiers: Int): Boolean {
- return ifPopup { it.charTyped(chr, modifiers) }
- }
-
- override fun mouseScrolled(
- mouseX: Double,
- mouseY: Double,
- horizontalAmount: Double,
- verticalAmount: Double
- ): Boolean {
- return ifPopup {
- it.mouseScrolled(mouseX, mouseY, horizontalAmount, verticalAmount)
- }
- }
-}