package thermalexpansion.api.item; | |
import net.minecraft.item.ItemStack; | |
/** | |
* Implement this interface on Item classes that support external manipulation of their internal | |
* energy storages. This interface does not provide methods for the underlying internal energy | |
* usage. | |
*/ | |
public interface IChargeableItem { | |
/** | |
* Adds energy to an item. Returns the quantity of energy that was accepted. This should always | |
* return 0 if the item cannot be externally charged. | |
* | |
* @param theItem | |
* ItemStack to be charged. | |
* @param energy | |
* Maximum amount of energy to be sent into the item. | |
* @param doReceive | |
* If false, the charge will only be simulated. | |
* @return Amount of energy that was accepted by the item. | |
*/ | |
public float receiveEnergy(ItemStack theItem, float energy, boolean doReceive); | |
/** | |
* Removes energy from an item. Returns the quantity of energy that was removed. This should | |
* always return 0 if the item cannot be externally discharged. | |
* | |
* @param theItem | |
* ItemStack to be discharged. | |
* @param energy | |
* Maximum amount of energy to be removed from the item. | |
* @param doTransfer | |
* If false, the discharge will only be simulated. | |
* @return Amount of energy that was removed from the item. | |
*/ | |
public float transferEnergy(ItemStack theItem, float energy, boolean doTransfer); | |
/** | |
* Get the amount of energy currently stored in the item. | |
*/ | |
public float getEnergyStored(ItemStack theItem); | |
/** | |
* Get the max amount of energy that can be stored in the item. | |
*/ | |
public float getMaxEnergyStored(ItemStack theItem); | |
} |