package cofh.api.transport;
/**
* This interface is implemented on Ender Attuned objects which can receive Energy (Redstone Flux).
*
* @author King Lemming
*
*/
public interface IEnderEnergyHandler extends IEnderAttuned {
/**
* Return whether or not the Ender Attuned object can currently send energy (Redstone Flux).
*/
boolean canSendEnergy();
/**
* This should be checked to see if the Ender Attuned object can currently receive energy (Redstone Flux).
*
* Note: In practice, this can (and should) be used to ensure that something does not send to itself.
*/
boolean canReceiveEnergy();
/**
* This tells the Ender Attuned object to receive energy. This returns the amount remaining, *not* the amount received - a return of 0 means that all energy
* was received!
*
* @param energy
* Amount of energy to be received.
* @param simulate
* If TRUE, the result will only be simulated.
* @return Amount of energy that is remaining (or would be remaining, if simulated).
*/
int receiveEnergy(int energy, boolean simulate);
}