|  | package ic2.api.tile; | 
|  |  | 
|  | import net.minecraftforge.common.util.ForgeDirection; | 
|  |  | 
|  | /** | 
|  | * Interface implemented by the tile entity of energy storage blocks. | 
|  | */ | 
|  | public interface IEnergyStorage { | 
|  | /** | 
|  | * Get the amount of energy currently stored in the block. | 
|  | * | 
|  | * @return Energy stored in the block | 
|  | */ | 
|  | public int getStored(); | 
|  |  | 
|  | /** | 
|  | * Set the amount of energy currently stored in the block. | 
|  | * | 
|  | * @param energy stored energy | 
|  | */ | 
|  | public void setStored(int energy); | 
|  |  | 
|  | /** | 
|  | * Add the specified amount of energy. | 
|  | * | 
|  | * Use negative values to decrease. | 
|  | * | 
|  | * @param amount of energy to add | 
|  | * @return Energy stored in the block after adding the specified amount | 
|  | */ | 
|  | public int addEnergy(int amount); | 
|  |  | 
|  | /** | 
|  | * Get the maximum amount of energy the block can store. | 
|  | * | 
|  | * @return Maximum energy stored | 
|  | */ | 
|  | public int getCapacity(); | 
|  |  | 
|  | /** | 
|  | * Get the block's energy output. | 
|  | * | 
|  | * @return Energy output in EU/t | 
|  | */ | 
|  | public int getOutput(); | 
|  |  | 
|  | /** | 
|  | * Get the block's energy output. | 
|  | * | 
|  | * @return Energy output in EU/t | 
|  | */ | 
|  | public double getOutputEnergyUnitsPerTick(); | 
|  |  | 
|  | /** | 
|  | * Get whether this block can have its energy used by an adjacent teleporter. | 
|  | * | 
|  | * @param side side the teleporter is draining energy from | 
|  | * @return Whether the block is teleporter compatible | 
|  | */ | 
|  | public boolean isTeleporterCompatible(ForgeDirection side); | 
|  | } |