1
1
package dev.sterner.api.item
2
2
3
+ import dev.sterner.common.item.tool.ichor.IchoriumTerraformer
4
+ import dev.sterner.registry.VoidBoundTags
3
5
import net.minecraft.nbt.CompoundTag
6
+ import net.minecraft.tags.TagKey
4
7
import net.minecraft.util.StringRepresentable
5
8
import net.minecraft.world.entity.EquipmentSlot
6
9
import net.minecraft.world.item.*
7
10
8
11
import kotlin.reflect.KClass
9
12
10
- enum class ItemAbility (private val equipmentSlot : EquipmentSlot ? , private val clazz : KClass <out Item >? ): StringRepresentable {
11
- NONE (null , null ),// TODO implement
12
- AUTOSMELT (null , DiggerItem ::class ),// Fully implemented
13
- MINING_3X3 (null , DiggerItem ::class ),// TODO implement
14
- MINING_5X5 (null , DiggerItem ::class ),// TODO implement
15
- VAMPIRISM (null , SwordItem ::class ),// TODO implement
16
- QUICKDRAW (null , ProjectileWeaponItem ::class ),// TODO implement
17
- DISPERSED_STRIKE (null , SwordItem ::class ),// TODO implement
18
- SLOW_FALL (EquipmentSlot .FEET , null );// TODO implement
13
+ enum class ItemAbility : StringRepresentable {
14
+ NONE ,// TODO implement
15
+ AUTOSMELT ,// Fully implemented
16
+ MINING_3X3 ,// Fully implemented
17
+ MINING_5X5 ,// Fully implemented
18
+ VAMPIRISM ,// TODO implement
19
+ OPENER ;// TODO implement
19
20
20
21
override fun getSerializedName (): String {
21
22
return this .name.lowercase()
@@ -34,14 +35,17 @@ enum class ItemAbility(private val equipmentSlot: EquipmentSlot?, private val cl
34
35
35
36
fun getAvailableAbilitiesFromItem (item : Item ): Set <ItemAbility > {
36
37
val list = mutableSetOf<ItemAbility >()
37
- for (ability in entries) {
38
- // Check if the item matches the clazz or the equipmentSlot
39
- if (ability.equipmentSlot == null && ability.clazz?.isInstance(item) == true ) {
40
- list.add(ability)
41
- } else if (ability.equipmentSlot != null && item is ArmorItem && item.equipmentSlot == ability.equipmentSlot) {
42
- list.add(ability)
43
- }
38
+ list.add(NONE )
39
+ if (item is IchoriumTerraformer ) {
40
+ list.add(AUTOSMELT )
41
+ list.add(MINING_3X3 )
42
+ list.add(MINING_5X5 )
44
43
}
44
+ if (item is IchoriumTerraformer ) {
45
+ list.add(VAMPIRISM )
46
+ list.add(OPENER )
47
+ }
48
+
45
49
return list
46
50
}
47
51
}
0 commit comments