diff options
Diffstat (limited to 'src/main/kotlin/impl/v1/FirmamentAPIImpl.kt')
| -rw-r--r-- | src/main/kotlin/impl/v1/FirmamentAPIImpl.kt | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/main/kotlin/impl/v1/FirmamentAPIImpl.kt b/src/main/kotlin/impl/v1/FirmamentAPIImpl.kt index d5fc0de..3ca4778 100644 --- a/src/main/kotlin/impl/v1/FirmamentAPIImpl.kt +++ b/src/main/kotlin/impl/v1/FirmamentAPIImpl.kt @@ -1,14 +1,16 @@ package moe.nea.firmament.impl.v1 -import com.mojang.blaze3d.platform.InputConstants import java.util.Collections import java.util.Optional import net.fabricmc.loader.api.FabricLoader import kotlin.jvm.optionals.getOrNull +import net.minecraft.world.item.ItemStack import moe.nea.firmament.Firmament import moe.nea.firmament.api.v1.FirmamentAPI import moe.nea.firmament.api.v1.FirmamentExtension import moe.nea.firmament.api.v1.FirmamentItemWidget +import moe.nea.firmament.features.items.recipes.ItemList +import moe.nea.firmament.repo.ExpensiveItemCacheApi import moe.nea.firmament.util.MC import moe.nea.firmament.util.intoOptional @@ -21,6 +23,7 @@ object FirmamentAPIImpl : FirmamentAPI() { return Collections.unmodifiableList(_extensions) } + @OptIn(ExpensiveItemCacheApi::class) override fun getHoveredItemWidget(): Optional<FirmamentItemWidget> { val mouse = MC.instance.mouseHandler val window = MC.window @@ -30,6 +33,22 @@ object FirmamentAPIImpl : FirmamentAPI() { ?.getChildAt(xpos, ypos) ?.getOrNull() if (widget is FirmamentItemWidget) return widget.intoOptional() + val itemListStack = ItemList.findStackUnder(xpos.toInt(), ypos.toInt()) + if (itemListStack != null) + return object : FirmamentItemWidget { + override fun getPlacement(): FirmamentItemWidget.Placement { + return FirmamentItemWidget.Placement.ITEM_LIST + } + + override fun getItemStack(): ItemStack { + return itemListStack.second.asImmutableItemStack() + } + + override fun getSkyBlockId(): String { + return itemListStack.second.skyblockId.neuItem + } + + }.intoOptional() return Optional.empty() } |
