mirror of
https://github.com/Thorfusion/Mekanism-Community-Edition.git
synced 2026-11-08 19:04:46 +00:00
fix npe with ic2
This commit is contained in:
2 files changed
+42
-26
No files matched your search
@@ -69,7 +69,6 @@ import mekanism.common.security.SecurityFrequency;
|
||||
import mekanism.common.tile.TileEntityAdvancedBoundingBlock;
|
||||
import mekanism.common.tile.TileEntityBoundingBlock;
|
||||
import mekanism.common.tile.TileEntityCardboardBox;
|
||||
import mekanism.common.tile.TileEntityElectricBlock;
|
||||
import mekanism.common.tile.TileEntityPressureDisperser;
|
||||
import mekanism.common.tile.TileEntitySuperheatingElement;
|
||||
import mekanism.common.tile.TileEntityThermalEvaporationBlock;
|
||||
@@ -1654,9 +1653,7 @@ public class Mekanism
|
||||
HashMap<ChunkPosition, TileEntity> chunkData = new HashMap<ChunkPosition, TileEntity>(event.getChunk().chunkTileEntityMap);
|
||||
|
||||
for (TileEntity tileEntity : chunkData.values()) {
|
||||
if (tileEntity instanceof TileEntityElectricBlock && MekanismUtils.useIC2()) {
|
||||
((TileEntityElectricBlock) tileEntity).register();
|
||||
} else if (tileEntity instanceof IChunkLoadHandler) {
|
||||
if (tileEntity instanceof IChunkLoadHandler) {
|
||||
((IChunkLoadHandler) tileEntity).onChunkLoad();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,37 +52,56 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
|
||||
@Method(modid = "IC2")
|
||||
public void register()
|
||||
{
|
||||
if(!worldObj.isRemote)
|
||||
if(worldObj == null || worldObj.isRemote || isInvalid())
|
||||
{
|
||||
TileEntity registered = EnergyNet.instance.getTileEntity(worldObj, xCoord, yCoord, zCoord);
|
||||
|
||||
if(registered != this)
|
||||
{
|
||||
if(registered instanceof IEnergyTile)
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent((IEnergyTile)registered));
|
||||
}
|
||||
else if(registered == null)
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
|
||||
ic2Registered = true;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(!worldObj.checkChunksExist(xCoord-1, yCoord, zCoord-1, xCoord+1, yCoord, zCoord+1))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TileEntity registered = EnergyNet.instance.getTileEntity(worldObj, xCoord, yCoord, zCoord);
|
||||
|
||||
if(registered == this)
|
||||
{
|
||||
ic2Registered = true;
|
||||
return;
|
||||
}
|
||||
|
||||
if(registered instanceof IEnergyTile)
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent((IEnergyTile)registered));
|
||||
}
|
||||
else if(registered == null)
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
|
||||
ic2Registered = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Method(modid = "IC2")
|
||||
public void deregister()
|
||||
{
|
||||
if(!worldObj.isRemote)
|
||||
if(worldObj == null || worldObj.isRemote)
|
||||
{
|
||||
TileEntity registered = EnergyNet.instance.getTileEntity(worldObj, xCoord, yCoord, zCoord);
|
||||
|
||||
if(registered instanceof IEnergyTile)
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent((IEnergyTile)registered));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
TileEntity registered = EnergyNet.instance.getTileEntity(worldObj, xCoord, yCoord, zCoord);
|
||||
|
||||
if(registered instanceof IEnergyTile)
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent((IEnergyTile)registered));
|
||||
}
|
||||
|
||||
ic2Registered = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in new issue
Block a user