diff options
author | Linnea Gräf <nea@nea.moe> | 2025-03-11 17:58:47 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2025-03-11 17:58:47 +0100 |
commit | 03a1a00e57633ff30048d5af09fa10db9dcf423b (patch) | |
tree | 8ff130eb0684fa4839c85f6e1bb2d0bd5271f735 /src/main/kotlin/repo/item/SBRecombobulator.kt | |
parent | 17a855a4bdfcca00b29f85981d8fb86968d9038c (diff) | |
download | Firmament-03a1a00e57633ff30048d5af09fa10db9dcf423b.tar.gz Firmament-03a1a00e57633ff30048d5af09fa10db9dcf423b.tar.bz2 Firmament-03a1a00e57633ff30048d5af09fa10db9dcf423b.zip |
feat: Add SBRecombobulatedexperiment/itemstacks
Diffstat (limited to 'src/main/kotlin/repo/item/SBRecombobulator.kt')
-rw-r--r-- | src/main/kotlin/repo/item/SBRecombobulator.kt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/main/kotlin/repo/item/SBRecombobulator.kt b/src/main/kotlin/repo/item/SBRecombobulator.kt new file mode 100644 index 0000000..8798493 --- /dev/null +++ b/src/main/kotlin/repo/item/SBRecombobulator.kt @@ -0,0 +1,38 @@ +package moe.nea.firmament.repo.item + +import com.google.auto.service.AutoService +import net.minecraft.item.ItemStack +import net.minecraft.nbt.NbtInt +import moe.nea.firmament.repo.set +import moe.nea.firmament.util.extraAttributes +import moe.nea.firmament.util.mc.modifyLore +import moe.nea.firmament.util.modifyExtraAttributes +import moe.nea.firmament.util.skyblock.Rarity + +@AutoService(SBItemProperty::class) +object SBRecombobulator : SBItemProperty.State<Boolean>() { + override fun applyToStack( + stack: ItemStack, + store: SBItemData, + value: Boolean? + ): ItemStack { + if (value != true) return stack + stack.modifyLore { lore -> + Rarity.recombobulateLore(lore) + } + stack.modifyExtraAttributes { + it["rarity_upgrades"] = NbtInt.of(1) + } + return stack + } + + override fun fromStack( + stack: ItemStack, + store: SBItemData + ): Boolean? { + return stack.extraAttributes.getInt("rarity_upgrades") > 0 + } + + override val order: Int + get() = -100 +} |