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