PowerReceiver can sometimes be null

This commit is contained in:
Ben Spiers 2013-08-19 21:29:14 +01:00
parent 18868398b4
commit 19cea5b35c
2 changed files with 14 additions and 8 deletions

View file

@ -91,10 +91,13 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
else if(tileEntity instanceof IPowerReceptor && Mekanism.hooks.BuildCraftLoaded)
{
PowerReceiver receiver = ((IPowerReceptor)tileEntity).getPowerReceiver(ForgeDirection.getOrientation(facing).getOpposite());
double electricityNeeded = Math.min(receiver.powerRequest(), receiver.getMaxEnergyStored() - receiver.getEnergyStored())*Mekanism.FROM_BC;
double transferEnergy = Math.min(electricityStored, Math.min(electricityNeeded, tier.OUTPUT));
receiver.receiveEnergy(Type.STORAGE, (float)(transferEnergy*Mekanism.TO_BC), ForgeDirection.getOrientation(facing).getOpposite());
setEnergy(electricityStored - transferEnergy);
if(receiver != null)
{
double electricityNeeded = Math.min(receiver.powerRequest(), receiver.getMaxEnergyStored() - receiver.getEnergyStored())*Mekanism.FROM_BC;
double transferEnergy = Math.min(electricityStored, Math.min(electricityNeeded, tier.OUTPUT));
receiver.receiveEnergy(Type.STORAGE, (float)(transferEnergy*Mekanism.TO_BC), ForgeDirection.getOrientation(facing).getOpposite());
setEnergy(electricityStored - transferEnergy);
}
}
}

View file

@ -123,10 +123,13 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
else if(tileEntity instanceof IPowerReceptor && Mekanism.hooks.BuildCraftLoaded)
{
PowerReceiver receiver = ((IPowerReceptor)tileEntity).getPowerReceiver(ForgeDirection.getOrientation(facing).getOpposite());
double electricityNeeded = Math.min(receiver.powerRequest(), receiver.getMaxEnergyStored() - receiver.getEnergyStored())*Mekanism.FROM_BC;
double transferEnergy = Math.min(electricityStored, Math.min(electricityNeeded, output));
receiver.receiveEnergy(Type.STORAGE, (float)(transferEnergy*Mekanism.TO_BC), ForgeDirection.getOrientation(facing).getOpposite());
setEnergy(electricityStored - transferEnergy);
if(receiver != null)
{
double electricityNeeded = Math.min(receiver.powerRequest(), receiver.getMaxEnergyStored() - receiver.getEnergyStored())*Mekanism.FROM_BC;
double transferEnergy = Math.min(electricityStored, Math.min(electricityNeeded, output));
receiver.receiveEnergy(Type.STORAGE, (float)(transferEnergy*Mekanism.TO_BC), ForgeDirection.getOrientation(facing).getOpposite());
setEnergy(electricityStored - transferEnergy);
}
}
}
}