I have added a custom shield to the game which extends the ShieldItem class. Blocking works, switching between the two models using overrides works but I can't seem to get durability for this item to work.
Here is the custom shield item class:
package me.crimsondawn45.survivaladditions.object.item;
import me.crimsondawn45.survivaladditions.util.SAregistries;
import net.minecraft.block.DispenserBlock;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.Item;
import net.minecraft.item.ShieldItem;
public class SAshieldItem extends ShieldItem {
public SAshieldItem(Item.Properties builder) {
super(builder);
this.addPropertyOverride(SAregistries.resLoc("blocking"), (item, world, entity) -> {
return entity != null && entity.isHandActive() && entity.getActiveItemStack() == item ? 1.0F : 0.0F;
});
DispenserBlock.registerDispenseBehavior(this, ArmorItem.DISPENSER_BEHAVIOR);
}
}
And here is the instance I am passing into the .registerAll method:
SAitems.wooden_shield = new SAshieldItem(new Item.Properties().group(ITEM).maxStackSize(1).maxDamage(100)).setRegistryName(resLoc("wooden_shield")),
I have tried using ".defaultMaxDamage()" in the properties bulder and passing in durability directly in the item class using "getMaxUses()"