68 lines
2.2 KiB
Java
68 lines
2.2 KiB
Java
package dev.bigduckie.simplehammers.material;
|
|
|
|
import dev.bigduckie.simplehammers.data.HammerData;
|
|
import net.minecraft.item.ToolMaterial;
|
|
import net.minecraft.recipe.Ingredient;
|
|
import net.minecraft.registry.Registries;
|
|
import net.minecraft.util.Identifier;
|
|
|
|
public class CustomToolMaterial implements ToolMaterial {
|
|
|
|
private final int enchantability;
|
|
private final float miningSpeedMultiplier;
|
|
private final int durability;
|
|
private final float attackDamage;
|
|
private final int miningLevel;
|
|
private final Ingredient ingredient;
|
|
|
|
public CustomToolMaterial(int enchantability, float miningSpeedMultiplier, int durability, float attackDamage, int miningLevel, Ingredient ingredient) {
|
|
this.enchantability = enchantability;
|
|
this.miningSpeedMultiplier = miningSpeedMultiplier;
|
|
this.durability = durability;
|
|
this.attackDamage = attackDamage;
|
|
this.miningLevel = miningLevel;
|
|
this.ingredient = ingredient;
|
|
}
|
|
|
|
public static CustomToolMaterial from(HammerData data) {
|
|
return new CustomToolMaterial(
|
|
data.getEnchantability() == 0 ? 15 : data.getEnchantability(),
|
|
data.getBlockBreakSpeed() == 0 ? 1 : data.getBlockBreakSpeed(),
|
|
(data.getDurability() == 0 ? 500 : data.getDurability()) * dev.bigduckie.simplehammers.SimpleHammers.CONFIG.durabilityModifier,
|
|
data.getAttackDamage() == 0 ? 4 : data.getAttackDamage(),
|
|
data.getMiningLevel(),
|
|
Ingredient.ofItems(Registries.ITEM.get(data.getRepairIngredient() == null ? new Identifier("iron_ingot") : data.getRepairIngredient()))
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public int getDurability() {
|
|
return durability;
|
|
}
|
|
|
|
@Override
|
|
public float getMiningSpeedMultiplier() {
|
|
return miningSpeedMultiplier;
|
|
}
|
|
|
|
@Override
|
|
public float getAttackDamage() {
|
|
return attackDamage;
|
|
}
|
|
|
|
@Override
|
|
public int getMiningLevel() {
|
|
return miningLevel;
|
|
}
|
|
|
|
@Override
|
|
public int getEnchantability() {
|
|
return enchantability;
|
|
}
|
|
|
|
@Override
|
|
public Ingredient getRepairIngredient() {
|
|
return ingredient;
|
|
}
|
|
}
|