content: package thebetweenlands.common.item.tools;
  
  import java.util.List;
  
  import javax.annotation.Nullable;
  
  import com.google.common.collect.Multimap;
  
  import net.minecraft.block.state.IBlockState;
  import net.minecraft.client.util.ITooltipFlag;
  import net.minecraft.entity.Entity;
  import net.minecraft.entity.ai.attributes.AttributeModifier;
  import net.minecraft.inventory.EntityEquipmentSlot;
  import net.minecraft.item.ItemPickaxe;
  import net.minecraft.item.ItemStack;
  import net.minecraft.world.World;
  import net.minecraftforge.fml.relauncher.Side;
  import net.minecraftforge.fml.relauncher.SideOnly;
  import thebetweenlands.api.item.CorrosionHelper;
  import thebetweenlands.api.item.IAnimatorRepairable;
  import thebetweenlands.api.item.ICorrodible;
  import thebetweenlands.common.item.BLMaterialRegistry;
  
  public class ItemBLPickaxe extends ItemPickaxe implements ICorrodible, IAnimatorRepairable {
      public ItemBLPickaxe(ToolMaterial material) {
          super(material);
  
          CorrosionHelper.addCorrosionPropertyOverrides(this);
      }
  
      @Override
      public boolean shouldCauseBlockBreakReset(ItemStack oldStack, ItemStack newStack) {
          return CorrosionHelper.shouldCauseBlockBreakReset(oldStack, newStack);
      }
  
      @Override
      public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) {
          return CorrosionHelper.shouldCauseReequipAnimation(oldStack, newStack, slotChanged);
      }
  
      @Override
      public float getDestroySpeed(ItemStack stack, IBlockState state) {
          return CorrosionHelper.getDestroySpeed(super.getDestroySpeed(stack, state), stack, state);
      }
  
      @Override
      public void onUpdate(ItemStack itemStack, World world, Entity holder, int slot, boolean isHeldItem) {
          CorrosionHelper.updateCorrosion(itemStack, world, holder, slot, isHeldItem);
      }
  
      @Override
      public Multimap<String, AttributeModifier> getAttributeModifiers(EntityEquipmentSlot slot, ItemStack stack) {
          return CorrosionHelper.getAttributeModifiers(super.getAttributeModifiers(slot, stack), slot, stack, ATTACK_DAMAGE_MODIFIER, this.attackDamage);
      }
  
      @SideOnly(Side.CLIENT)
      @Override
      public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
          CorrosionHelper.addCorrosionTooltips(stack, tooltip, flagIn.isAdvanced());
      }
      
      @Override
  	public int getMinRepairFuelCost(ItemStack stack) {
  		return BLMaterialRegistry.getMinRepairFuelCost(this.toolMaterial);
  	}
  
  	@Override
  	public int getFullRepairFuelCost(ItemStack stack) {
  		return BLMaterialRegistry.getFullRepairFuelCost(this.toolMaterial);
  	}
  
  	@Override
  	public int getMinRepairLifeCost(ItemStack stack) {
  		return BLMaterialRegistry.getMinRepairLifeCost(this.toolMaterial);
  	}
  
  	@Override
  	public int getFullRepairLifeCost(ItemStack stack) {
  		return BLMaterialRegistry.getFullRepairLifeCost(this.toolMaterial);
  	}
  }
  