Files
simple-hammers/src/main/java/dev/bigduckie/simplehammers/material/CustomToolMaterial.java
T
Shane Clark ad0e249aee
build / build (21) (push) Waiting to run
Commit of all existing code.
2024-11-28 16:49:55 -07:00

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;
}
}