public class TileEntityNode extends TileEntity implements IEnergyHandler
{
EnergyStorage energyStorage;
public EnergyStorage getEnergyStorage()
{
return this.energyStorage;
}
public void addPowerCore()
{
this.energyStorage = new EnergyStorage(228, 8);
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
}
public void remPowerCore()
{
this.energyStorage = null;
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
}
@Override
public void writeToNBT(NBTTagCompound tag)
{
super.writeToNBT(tag);
if (this.energyStorage != null)
{
energyStorage.writeToNBT(tag);
}
}
@Override
public void readFromNBT(NBTTagCompound tag)
{
super.readFromNBT(tag);
energyStorage.readFromNBT(tag);
}
@Override
public Packet getDescriptionPacket()
{
NBTTagCompound tag = new NBTTagCompound();
writeToNBT(tag);
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, this.blockMetadata, tag);
}
@Override
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt)
{
NBTTagCompound tag = pkt.func_148857_g();
readFromNBT(tag);
}
@Override
public boolean canConnectEnergy(ForgeDirection from)
{
return false;
}
@Override
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate)
{
return this.energyStorage != null ? energyStorage.receiveEnergy(maxReceive, simulate) : 0;
}
@Override
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate)
{
return this.energyStorage != null ? energyStorage.extractEnergy(maxExtract, simulate) : 0;
}
@Override
public int getEnergyStored(ForgeDirection from)
{
return this.energyStorage != null ? energyStorage.getEnergyStored() : 0;
}
@Override
public int getMaxEnergyStored(ForgeDirection from)
{
return this.energyStorage != null ? energyStorage.getMaxEnergyStored() : 0;
}
}