package crazypants.enderio.power;
import net.minecraftforge.common.util.ForgeDirection;
import cofh.api.energy.IEnergyReceiver;
public class EnergyReceiverPI implements IPowerInterface {
private IEnergyReceiver rfPower;
public EnergyReceiverPI(IEnergyReceiver powerReceptor) {
rfPower = powerReceptor;
}
@Override
public Object getDelegate() {
return rfPower;
}
@Override
public boolean canConduitConnect(ForgeDirection direction) {
if(rfPower != null && direction != null) {
return rfPower.canConnectEnergy(direction.getOpposite());
}
return false;
}
@Override
public int getEnergyStored(ForgeDirection dir) {
if(rfPower != null && dir != null) {
return rfPower.getEnergyStored(dir);
}
return 0;
}
@Override
public int getMaxEnergyStored(ForgeDirection dir) {
if(rfPower != null && dir != null) {
return rfPower.getMaxEnergyStored(dir);
}
return 0;
}
@Override
public int getPowerRequest(ForgeDirection dir) {
if(rfPower != null && dir != null && rfPower.canConnectEnergy(dir)) {
return rfPower.receiveEnergy(dir, 99999999, true);
}
return 0;
}
public static int getPowerRequest(ForgeDirection dir, IEnergyReceiver handler) {
if(handler != null && dir != null && handler.canConnectEnergy(dir)) {
return handler.receiveEnergy(dir, 99999999, true);
}
return 0;
}
@Override
public int getMinEnergyReceived(ForgeDirection dir) {
return 0;
}
@Override
public int recieveEnergy(ForgeDirection opposite, int canOffer) {
if(rfPower != null && opposite != null) {
return rfPower.receiveEnergy(opposite, canOffer, false);
}
return 0;
}
@Override
public boolean isOutputOnly() {
return false;
}
@Override
public boolean isInputOnly() {
return true;
}
}