You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.8 KiB
83 lines
2.8 KiB
package com.technovision.tutorial.util.enums;
|
|
|
|
import com.technovision.tutorial.Tutorial;
|
|
import com.technovision.tutorial.init.ModItems;
|
|
import net.minecraft.inventory.EquipmentSlotType;
|
|
import net.minecraft.item.IArmorMaterial;
|
|
import net.minecraft.item.crafting.Ingredient;
|
|
import net.minecraft.util.SoundEvent;
|
|
import net.minecraft.util.SoundEvents;
|
|
import net.minecraftforge.api.distmarker.Dist;
|
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
|
|
import java.util.function.Supplier;
|
|
|
|
public enum ModArmorMaterial implements IArmorMaterial {
|
|
|
|
RUBY(Tutorial.MOD_ID + ":ruby", 25, new int[] { 2, 5, 6, 2 }, 18,
|
|
SoundEvents.ITEM_ARMOR_EQUIP_GENERIC, 0, () -> { return Ingredient.fromItems(ModItems.RUBY.get()); },0);
|
|
|
|
private static final int[] MAX_DAMAGE_ARRAY = new int[] { 11, 16, 15, 13 };
|
|
private final String name;
|
|
private final int maxDamageFactor; //Durability, Iron=15, Diamond=33, Gold=7, Leather=5
|
|
private final int[] damageReductionAmountArray; //Armor Bar Protection, 1 = 1/2 armor bar
|
|
private final int enchantability;
|
|
private final SoundEvent soundEvent;
|
|
private final float toughness; //Increases Protection, 0.0F=Iron/Gold/Leather, 2.0F=Diamond, 3.0F=Netherite
|
|
private final Supplier<Ingredient> repairMaterial;
|
|
private final float knockbackResistance; //1.0F=No Knockback, 0.0F=Disabled
|
|
|
|
ModArmorMaterial(String name, int maxDamageFactor, int[] damageReductionAmountArray, int enchantability,
|
|
SoundEvent soundEvent, float toughness, Supplier<Ingredient> repairMaterial, float knockbackResistance) {
|
|
this.name = name;
|
|
this.maxDamageFactor = maxDamageFactor;
|
|
this.damageReductionAmountArray = damageReductionAmountArray;
|
|
this.enchantability = enchantability;
|
|
this.soundEvent = soundEvent;
|
|
this.toughness = toughness;
|
|
this.repairMaterial = repairMaterial;
|
|
this.knockbackResistance = knockbackResistance;
|
|
}
|
|
|
|
@Override
|
|
public int getDurability(EquipmentSlotType slotIn) {
|
|
return MAX_DAMAGE_ARRAY[slotIn.getIndex()] * this.maxDamageFactor;
|
|
}
|
|
|
|
@Override
|
|
public int getDamageReductionAmount(EquipmentSlotType slotIn) {
|
|
return this.damageReductionAmountArray[slotIn.getIndex()];
|
|
}
|
|
|
|
@Override
|
|
public int getEnchantability() {
|
|
return this.enchantability;
|
|
}
|
|
|
|
@Override
|
|
public SoundEvent getSoundEvent() {
|
|
return this.soundEvent;
|
|
}
|
|
|
|
@Override
|
|
public Ingredient getRepairMaterial() {
|
|
return this.repairMaterial.get();
|
|
}
|
|
|
|
@OnlyIn(Dist.CLIENT)
|
|
@Override
|
|
public String getName() {
|
|
return this.name;
|
|
}
|
|
|
|
@Override
|
|
public float getToughness() {
|
|
return this.toughness;
|
|
}
|
|
|
|
@Override
|
|
public float getKnockbackResistance() {
|
|
return this.knockbackResistance;
|
|
}
|
|
}
|