Repairable Items

Package: thaumcraft.api

Author: Azanor

Interfaces for items that can be repaired by the Repair enchantment.

IRepairable

File: IRepairable.java

Marker interface for items, armor, and tools that can receive the Repair enchantment.

public interface IRepairable {
}

Behavior:

  • Repairs 1 point of durability every 10 seconds
  • Repair II enchantment repairs 2 points per 10 seconds

Usage

public class MyRepairableTool extends ItemTool implements IRepairable {
    // This tool can now receive the Repair enchantment
}

IRepairableExtended

File: IRepairableExtended.java

Extends: IRepairable

Extended repair interface that allows custom repair logic.

public interface IRepairableExtended extends IRepairable {
    public boolean doRepair(ItemStack stack, EntityPlayer player, int enchantlevel);
}

Methods

Method Signature Description
doRepair ItemStack stack, EntityPlayer player, int enchantlevel → boolean Called during repair tick. Return true if repair was performed. The enchantlevel parameter indicates Repair I (1) or Repair II (2).

Usage

public class MySpecialRepairable extends ItemTool implements IRepairableExtended {
    
    @Override
    public boolean doRepair(ItemStack stack, EntityPlayer player, int enchantlevel) {
        // Custom repair logic
        if (someCondition) {
            stack.setItemDamage(stack.getItemDamage() - enchantlevel);
            return true;
        }
        return false;
    }
}

Comparison

Feature IRepairable IRepairableExtended
Custom logic No Yes
Repair rate control No Yes
Complexity Simple Advanced
Use case Standard repairable items Items needing custom behavior

Tags

#api #item-effect #repair #enchantment