| package mekanism.api.energy; |
| |
| import net.minecraft.item.ItemStack; |
| |
| /** |
| * Implement this in an item's class if it should be able to store electricity. |
| * @author aidancbrady |
| * |
| */ |
| public interface IEnergizedItem |
| { |
| /** |
| * Gets and returns the amount of energy stored in this item. |
| * @param itemStack - the ItemStack to check |
| * @return energy stored |
| */ |
| public double getEnergy(ItemStack itemStack); |
| |
| /** |
| * Sets this item's stored energy value to a new amount. |
| * @param itemStack - the ItemStack who's energy value is to be change |
| * @param amount - new amount of energy |
| */ |
| public void setEnergy(ItemStack itemStack, double amount); |
| |
| /** |
| * Gets and returns this item's maximum amount of energy that can be stored. |
| * @param itemStack - the ItemStack to check |
| * @return maximum energy |
| */ |
| public double getMaxEnergy(ItemStack itemStack); |
| |
| /** |
| * Gets and returns how much energy this item can transfer to and from charging slots. |
| * @param itemStack - the ItemStack to check |
| * @return transfer amount |
| */ |
| public double getMaxTransfer(ItemStack itemStack); |
| |
| /** |
| * Gets and returns whether or not this item can receive energy from a charging slot. |
| * @param itemStack - the ItemStack to check |
| * @return if the item can receive energy |
| */ |
| public boolean canReceive(ItemStack itemStack); |
| |
| /** |
| * Gets and returns whether or not this item can send energy to a charging slot. |
| * @param itemStack - the ItemStack to check |
| * @return if the item can send energy |
| */ |
| public boolean canSend(ItemStack itemStack); |
| |
| /** |
| * Returns whether or not this item contains metadata-specific subtypes instead of using metadata for damage display. |
| * @return if the item contains metadata-specific subtypes |
| */ |
| public boolean isMetadataSpecific(ItemStack itemStack); |
| } |