package redstonedistortion.factory.base; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import cofh.api.energy.IEnergyReceiver; public class TileMachine extends TileEntity implements IEnergyReceiver { protected int energy; private int maxEnergy; protected TileMachine(int maxEnergy) { this.maxEnergy = maxEnergy; } @Override public void readFromNBT(NBTTagCompound tag) { energy = tag.getInteger("energy"); readFromNBT(tag); } @Override public void writeToNBT(NBTTagCompound tag) { tag.setInteger("energy", energy); writeToNBT(tag); } @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { if (energy >= maxEnergy) return 0; int energyRecieved = maxReceive; if (energyRecieved > maxEnergy - energy) energyRecieved = maxEnergy - energy; if (!simulate) energy += energyRecieved; return energyRecieved; } @Override public int getEnergyStored(ForgeDirection from) { return energy; } @Override public int getMaxEnergyStored(ForgeDirection from) { return maxEnergy; } @Override public boolean canConnectEnergy(ForgeDirection from) { return true; } }