aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/kotlin/util/HoveredItemStack.kt11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/kotlin/util/HoveredItemStack.kt b/src/main/kotlin/util/HoveredItemStack.kt
index 526820a..ad07aa0 100644
--- a/src/main/kotlin/util/HoveredItemStack.kt
+++ b/src/main/kotlin/util/HoveredItemStack.kt
@@ -6,19 +6,28 @@ import net.minecraft.item.ItemStack
import moe.nea.firmament.mixins.accessor.AccessorHandledScreen
import moe.nea.firmament.util.compatloader.CompatLoader
-interface HoveredItemStackProvider {
+interface HoveredItemStackProvider : Comparable<HoveredItemStackProvider> {
fun provideHoveredItemStack(screen: HandledScreen<*>): ItemStack?
+ override fun compareTo(other: HoveredItemStackProvider): Int {
+ return compareValues(this.prio, other.prio)
+ }
+
+ val prio: Int get() = 0
companion object : CompatLoader<HoveredItemStackProvider>(HoveredItemStackProvider::class)
}
@AutoService(HoveredItemStackProvider::class)
class VanillaScreenProvider : HoveredItemStackProvider {
+
override fun provideHoveredItemStack(screen: HandledScreen<*>): ItemStack? {
screen as AccessorHandledScreen
val vanillaSlot = screen.focusedSlot_Firmament?.stack
return vanillaSlot
}
+
+ override val prio: Int
+ get() = -1
}
val HandledScreen<*>.focusedItemStack: ItemStack?