package net.minecraft.world.item; import com.google.common.base.Suppliers; import java.util.function.Supplier; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.block.Block; public enum Tiers implements Tier { WOOD(BlockTags.INCORRECT_FOR_WOODEN_TOOL, 59, 2.0F, 0.0F, 15, () -> Ingredient.of(ItemTags.PLANKS)), STONE(BlockTags.INCORRECT_FOR_STONE_TOOL, 131, 4.0F, 1.0F, 5, () -> Ingredient.of(ItemTags.STONE_TOOL_MATERIALS)), IRON(BlockTags.INCORRECT_FOR_IRON_TOOL, 250, 6.0F, 2.0F, 14, () -> Ingredient.of(Items.IRON_INGOT)), DIAMOND(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 1561, 8.0F, 3.0F, 10, () -> Ingredient.of(Items.DIAMOND)), GOLD(BlockTags.INCORRECT_FOR_GOLD_TOOL, 32, 12.0F, 0.0F, 22, () -> Ingredient.of(Items.GOLD_INGOT)), NETHERITE(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 2031, 9.0F, 4.0F, 15, () -> Ingredient.of(Items.NETHERITE_INGOT)); private final TagKey incorrectBlocksForDrops; private final int uses; private final float speed; private final float damage; private final int enchantmentValue; private final Supplier repairIngredient; private Tiers( final TagKey incorrectBlockForDrops, final int uses, final float speed, final float damage, final int enchantmentValue, final Supplier repairIngredient ) { this.incorrectBlocksForDrops = incorrectBlockForDrops; this.uses = uses; this.speed = speed; this.damage = damage; this.enchantmentValue = enchantmentValue; this.repairIngredient = Suppliers.memoize(repairIngredient::get); } @Override public int getUses() { return this.uses; } @Override public float getSpeed() { return this.speed; } @Override public float getAttackDamageBonus() { return this.damage; } @Override public TagKey getIncorrectBlocksForDrops() { return this.incorrectBlocksForDrops; } @Override public int getEnchantmentValue() { return this.enchantmentValue; } @Override public Ingredient getRepairIngredient() { return (Ingredient)this.repairIngredient.get(); } }