Fixed a bug where RF and IC2 tunnels could vaporize them selves.

Fixed Bug: #0514 - An unknown error occurs frequently
This commit is contained in:
AlgorithmX2
2014-06-08 18:10:19 -05:00
parent a1acc1d2d3
commit 8dcf25a652
14 changed files with 128 additions and 35 deletions
+15 -2
View File
@@ -30,10 +30,20 @@ public class LayerIEnergySink extends LayerBase implements IEnergySink
{
if ( getEnergySinkTile() == null )
return null;
return getEnergySinkTile().getWorldObj();
}
private boolean isTileValid()
{
TileEntity te = getEnergySinkTile();
if ( te == null )
return false;
return !te.isInvalid() && te.getWorldObj().blockExists( te.xCoord, te.yCoord, te.zCoord );
}
final private void addToENet()
{
if ( getEnergySinkWorld() == null )
@@ -42,7 +52,7 @@ public class LayerIEnergySink extends LayerBase implements IEnergySink
// re-add
removeFromENet();
if ( !isInIC2() && Platform.isServer() )
if ( !isInIC2() && Platform.isServer() && isTileValid() )
{
getLayerFlags().add( LayerFlags.IC2_ENET );
MinecraftForge.EVENT_BUS.post( new ic2.api.energy.event.EnergyTileLoadEvent( (IEnergySink) getEnergySinkTile() ) );
@@ -63,6 +73,9 @@ public class LayerIEnergySink extends LayerBase implements IEnergySink
final private boolean interestedInIC2()
{
if ( !((IPartHost) this).isInWorld() )
return false;
int interested = 0;
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
{