diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-11-25 00:23:57 +0100 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-11-25 00:23:57 +0100 |
| commit | 707652b59e10371cf4826f9f65d653cac528c6bb (patch) | |
| tree | 65edeffdc0c14703771035222e18d7ff1cfd65b5 /src/main/kotlin/impl/v1 | |
| parent | 6dd14e7225ff60361fe9f87020c424c0eb89a68b (diff) | |
| download | Firmament-707652b59e10371cf4826f9f65d653cac528c6bb.tar.gz Firmament-707652b59e10371cf4826f9f65d653cac528c6bb.tar.bz2 Firmament-707652b59e10371cf4826f9f65d653cac528c6bb.zip | |
feat: add item list
Diffstat (limited to 'src/main/kotlin/impl/v1')
| -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() } |
