package tech.nevets.vplus.tools; import net.minecraft.item.Items; import net.minecraft.item.ToolMaterial; import net.minecraft.recipe.Ingredient; import net.minecraft.util.Lazy; import tech.nevets.vplus.items.VPItems; import java.util.function.Supplier; public enum ToolMaterials implements ToolMaterial { COPPER (2, 200, 5.0F, 3.0F, 20, () -> Ingredient.ofItems(Items.COPPER_INGOT)), EMERALD(3, 750, 7.0F, 4.0F, 30, () -> Ingredient.ofItems(Items.EMERALD)), PLATINUM(4, 3000, 10.0F, 6.0F, 40, () -> Ingredient.ofItems(VPItems.PLATINUMINGOT)), RUBY(4, 5000, 12.0F, 10.0F, 100, () -> Ingredient.ofItems(VPItems.RUBY)); private final int miningLevel; private final int itemDurability; private final float miningSpeed; private final float attackDamage; private final int enchantability; private final Lazy repairIngredient; ToolMaterials(int miningLevel, int itemDurability, float miningSpeed, float attackDamage, int enchantability, Supplier repairIngredient) { this.miningLevel = miningLevel; this.itemDurability = itemDurability; this.miningSpeed = miningSpeed; this.attackDamage = attackDamage; this.enchantability = enchantability; this.repairIngredient = new Lazy<>(repairIngredient); } public int getDurability() { return this.itemDurability; } public float getMiningSpeedMultiplier() { return this.miningSpeed; } public float getAttackDamage() { return this.attackDamage; } public int getMiningLevel() { return this.miningLevel; } public int getEnchantability() { return this.enchantability; } public Ingredient getRepairIngredient() { return this.repairIngredient.get(); } }