package am2.api.power;
import net.minecraft.tileentity.TileEntity;
/**
*
* @author Mithion
* This will eventually allow you to interface with the AM power network - currently it is not fully working.
*/
public interface IPowerNode <T extends TileEntity> {
/**
* Gets the current capacity in the power block
*/
public float getCapacity();
/**
* Can this block provide power?
* @param type The power type we are checking for
*/
public boolean canProvidePower(PowerTypes type);
/**
* Can this block relay power?
* @param type The type of power we are looking for
*/
public boolean canRelayPower(PowerTypes type);
/**
* Can this block request power?
*/
public boolean canRequestPower();
/**
* Is this block a nexus?
*/
public boolean isSource();
/**
* How fast does this block charge?
*/
public int getChargeRate();
/**
* Gets the current power type of the block.
*/
public PowerTypes[] getValidPowerTypes();
/**
* Offset of any particle effects to the origin of the block
* @param axis The axis in question. 0=x, 1=y, 2=z
*/
public float particleOffset(int axis);
}