diff options
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/util/MoulConfigFragment.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/firmament/util/MoulConfigFragment.kt | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/util/MoulConfigFragment.kt b/src/main/kotlin/moe/nea/firmament/util/MoulConfigFragment.kt new file mode 100644 index 0000000..bb4a860 --- /dev/null +++ b/src/main/kotlin/moe/nea/firmament/util/MoulConfigFragment.kt @@ -0,0 +1,49 @@ +/* + * SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe> + * + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +package moe.nea.firmament.util + +import io.github.moulberry.moulconfig.gui.GuiContext +import io.github.moulberry.moulconfig.gui.GuiImmediateContext +import io.github.notenoughupdates.moulconfig.gui.GuiComponentWrapper +import me.shedaniel.math.Point +import net.minecraft.client.gui.DrawContext +import moe.nea.firmament.util.MC + +class MoulConfigFragment( + context: GuiContext, + val position: Point, + val dismiss: () -> Unit +) : GuiComponentWrapper(context) { + init { + this.init(MC.instance, MC.screen!!.width, MC.screen!!.height) + } + + override fun createContext(drawContext: DrawContext?): GuiImmediateContext { + val oldContext = super.createContext(drawContext) + return oldContext.translated( + position.x, + position.y, + context.root.width, + context.root.height, + ) + } + + + override fun render(drawContext: DrawContext?, i: Int, j: Int, f: Float) { + val ctx = createContext(drawContext) + val m = drawContext!!.matrices + m.push() + m.translate(position.x.toFloat(), position.y.toFloat(), 0F) + context.root.render(ctx) + m.pop() + ctx.renderContext.doDrawTooltip() + } + + override fun close() { + dismiss() + } +} |