aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/repo/item/SBRecombobulator.kt
blob: 8798493fc3dd578fd3c64c7725d77a8ebce04d84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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
}