package org.halvors.electrometrics.common.tile.machine;
import cofh.api.energy.IEnergyReceiver;
import net.minecraftforge.common.util.ForgeDirection;
import org.halvors.electrometrics.common.base.MachineType;
import java.util.EnumSet;
/**
* When extended, this makes a TileEntity able to receive electricity.
*
* @author halvors
*/
public class TileEntityElectricityReceiver extends TileEntityElectricityStorage implements IEnergyReceiver {
protected TileEntityElectricityReceiver(MachineType machineType, int capacity) {
super(machineType, capacity);
}
protected TileEntityElectricityReceiver(MachineType machineType, int capacity, int maxReceive, int maxExtract) {
super(machineType, capacity, maxReceive, maxExtract);
}
protected TileEntityElectricityReceiver(MachineType machineType, int capacity, int maxTransfer) {
super(machineType, capacity, maxTransfer);
}
@Override
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
if (getReceivingDirections().contains(from)) {
return storage.receiveEnergy(maxReceive, simulate);
}
return 0;
}
@Override
public int getEnergyStored(ForgeDirection from) {
return storage.getEnergyStored();
}
@Override
public int getMaxEnergyStored(ForgeDirection from) {
return storage.getMaxEnergyStored();
}
@Override
public boolean canConnectEnergy(ForgeDirection from) {
return getReceivingDirections().contains(from);
}
protected EnumSet<ForgeDirection> getReceivingDirections() {
EnumSet<ForgeDirection> directions = EnumSet.allOf(ForgeDirection.class);
directions.remove(ForgeDirection.UNKNOWN);
return directions;
}
}