2013-08-22 17:36:31 +02:00
|
|
|
package ic2.api.energy;
|
|
|
|
|
|
|
|
import net.minecraft.tileentity.TileEntity;
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
|
|
|
|
import net.minecraftforge.common.ForgeDirection;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Interface representing the methods provided by the global EnergyNet class.
|
|
|
|
*
|
|
|
|
* See ic2/api/energy/usage.txt for an overall description of the energy net api.
|
|
|
|
*/
|
|
|
|
public interface IEnergyNet {
|
|
|
|
/**
|
|
|
|
* Get the EnergyNet-registered tile entity at the specified position.
|
|
|
|
*
|
|
|
|
* This is not the same as World.getBlockTileEntity(), it's possible to register delegate tile
|
|
|
|
* entities with the energy net which are different from what's actually in the world. Those
|
|
|
|
* delegates allow to use separate TileEntity objects just for the EnergyNet interfaces,
|
|
|
|
* simplifying cross-mod dependencies and multi-blocks.
|
|
|
|
*
|
|
|
|
* @param world World containing the tile entity
|
|
|
|
* @param x x-coordinate
|
|
|
|
* @param y y-coordinate
|
|
|
|
* @param z z-coordinate
|
|
|
|
* @return tile entity registered to the energy net or null if none is registered
|
|
|
|
*/
|
|
|
|
TileEntity getTileEntity(World world, int x, int y, int z);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the EnergyNet-registered neighbor tile entity at the specified position.
|
|
|
|
*
|
|
|
|
* @param te TileEntity indicating the world and position to search from
|
|
|
|
* @param dir direction the neighbor is to be found
|
|
|
|
* @return neighbor tile entity registered to the energy net or null if none is registered
|
|
|
|
*/
|
|
|
|
TileEntity getNeighbor(TileEntity te, ForgeDirection dir);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* determine how much energy has been emitted by the EnergyEmitter specified
|
|
|
|
*
|
|
|
|
* @note call this twice with x ticks delay to get the avg. emitted power p = (call2 - call1) / x EU/tick
|
|
|
|
*
|
|
|
|
* @param tileEntity energy emitter
|
|
|
|
*/
|
|
|
|
long getTotalEnergyEmitted(TileEntity tileEntity);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* determine how much energy has been sunken by the EnergySink specified
|
|
|
|
*
|
|
|
|
* @note call this twice with x ticks delay to get the avg. sunken power p = (call2 - call1) / x EU/tick
|
|
|
|
*
|
|
|
|
* @param tileEntity energy emitter
|
|
|
|
*/
|
|
|
|
long getTotalEnergySunken(TileEntity tileEntity);
|
2013-09-28 03:54:01 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Determine the typical power used by the specific tier, e.g. 128 eu/t for tier 2.
|
|
|
|
*
|
|
|
|
* @param tier tier
|
|
|
|
* @return power in eu/t
|
|
|
|
*/
|
|
|
|
int getPowerFromTier(int tier);
|
2013-08-22 17:36:31 +02:00
|
|
|
}
|