Mekanism-tilera-Edition/common/thermalexpansion/api/item/IChargeableItem.java
Aidan C. Brady 53323279c7 MekanismInduction module - done!
Still need to configure the build
2013-11-16 10:21:37 -05:00

46 lines
1.5 KiB
Java

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);
}