aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/util/MoulConfigFragment.kt
blob: 7e7f5db4f5d42218f701f46d2f5a512118e146d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package moe.nea.firmament.util

import io.github.notenoughupdates.moulconfig.gui.GuiContext
import io.github.notenoughupdates.moulconfig.gui.GuiImmediateContext
import io.github.notenoughupdates.moulconfig.platform.MoulConfigScreenComponent
import me.shedaniel.math.Point
import net.minecraft.client.gui.DrawContext
import net.minecraft.text.Text

class MoulConfigFragment(
	context: GuiContext,
	val position: Point,
	val dismiss: () -> Unit
) : MoulConfigScreenComponent(Text.empty(), context, null) {
	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,
			guiContext.root.width,
			guiContext.root.height,
		)
	}


	override fun render(drawContext: DrawContext, i: Int, j: Int, f: Float) {
		val ctx = createContext(drawContext)
		val m = drawContext.matrices
		m.pushMatrix()
		m.translate(position.x.toFloat(), position.y.toFloat())
		guiContext.root.render(ctx)
		m.popMatrix()
		ctx.renderContext.renderExtraLayers()
	}

	override fun close() {
		dismiss()
	}
}