aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/features/items/recipes/MoulConfigWidget.kt
blob: aad3bdab98fd83ac5a9ccc7854ac6959a3df58de (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
44
45
46
package moe.nea.firmament.features.items.recipes

import io.github.notenoughupdates.moulconfig.gui.GuiComponent
import io.github.notenoughupdates.moulconfig.gui.MouseEvent
import me.shedaniel.math.Dimension
import me.shedaniel.math.Point
import net.minecraft.client.gui.GuiGraphics
import net.minecraft.client.input.MouseButtonEvent
import moe.nea.firmament.util.MoulConfigUtils.createAndTranslateFullContext

class MoulConfigWidget(
	val component: GuiComponent,
	override var position: Point,
	override val size: Dimension,
) : RecipeWidget() {
	override fun render(
		guiGraphics: GuiGraphics,
		mouseX: Int,
		mouseY: Int,
		partialTick: Float
	) {
		createAndTranslateFullContext(
			guiGraphics, mouseX, mouseY, rect,
			component::render
		)
	}

	override fun mouseClicked(event: MouseButtonEvent, isDoubleClick: Boolean): Boolean {
		return createAndTranslateFullContext(null, event.x.toInt(), event.y.toInt(), rect) {
			component.mouseEvent(MouseEvent.Click(event.button(), true), it)
		}
	}

	override fun mouseMoved(mouseX: Double, mouseY: Double) {
		createAndTranslateFullContext(null, mouseX, mouseY, rect) {
			component.mouseEvent(MouseEvent.Move(0F, 0F), it)
		}
	}

	override fun mouseReleased(event: MouseButtonEvent): Boolean {
		return createAndTranslateFullContext(null, event.x, event.y, rect) {
			component.mouseEvent(MouseEvent.Click(event.button(), false), it)
		}
	}

}