aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/features/items/recipes/RecipeWidget.kt
blob: f13707cd332c05593f2c6611d9a49e5089f6bcdb (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
package moe.nea.firmament.features.items.recipes

import me.shedaniel.math.Dimension
import me.shedaniel.math.Point
import me.shedaniel.math.Rectangle
import net.minecraft.client.gui.components.Renderable
import net.minecraft.client.gui.components.events.GuiEventListener
import net.minecraft.client.gui.narration.NarratableEntry
import net.minecraft.client.gui.narration.NarrationElementOutput
import net.minecraft.client.gui.navigation.ScreenRectangle
import moe.nea.firmament.util.mc.asScreenRectangle

abstract class RecipeWidget : GuiEventListener, Renderable, NarratableEntry {
	override fun narrationPriority(): NarratableEntry.NarrationPriority? {
		return NarratableEntry.NarrationPriority.NONE// I am so sorry
	}

	override fun updateNarration(narrationElementOutput: NarrationElementOutput) {
	}

	open fun tick() {}
	private var _focused = false
	abstract var position: Point
	abstract val size: Dimension
	open val rect: Rectangle get() = Rectangle(position, size)
	override fun setFocused(focused: Boolean) {
		this._focused = focused
	}

	override fun isFocused(): Boolean {
		return this._focused
	}

	override fun isMouseOver(mouseX: Double, mouseY: Double): Boolean {
		return rect.contains(mouseX, mouseY)
	}
}