diff options
Diffstat (limited to 'src/main/kotlin/repo/item/SBItemId.kt')
-rw-r--r-- | src/main/kotlin/repo/item/SBItemId.kt | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/main/kotlin/repo/item/SBItemId.kt b/src/main/kotlin/repo/item/SBItemId.kt new file mode 100644 index 0000000..fcafff0 --- /dev/null +++ b/src/main/kotlin/repo/item/SBItemId.kt @@ -0,0 +1,24 @@ +package moe.nea.firmament.repo.item + +import com.google.auto.service.AutoService +import net.minecraft.item.ItemStack +import moe.nea.firmament.repo.ItemCache.asItemStack +import moe.nea.firmament.repo.RepoManager +import moe.nea.firmament.util.SkyblockId +import moe.nea.firmament.util.skyBlockId + +@AutoService(SBItemProperty::class) +object SBItemId : SBItemProperty.State<SkyblockId>() { + + override fun fromStack(stack: ItemStack, store: SBItemData): SkyblockId? { + return stack.skyBlockId + } + + override fun applyToStack(stack: ItemStack, store: SBItemData, value: SkyblockId?): ItemStack { + val id = value ?: SkyblockId.NULL + return RepoManager.getNEUItem(id).asItemStack(idHint = id) + } + + override val order: Int + get() = -10000 +} |