From 012e737c5d1430e10621ba29800c20bea8f8677a Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 6 Jul 2016 14:24:11 +0200 Subject: [PATCH] Re-added Controllers exploding when two of them are connected to the same network --- CHANGELOG.md | 3 +++ src/main/java/refinedstorage/block/BlockNode.java | 6 +++++- .../java/refinedstorage/tile/controller/TileController.java | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ed394d70..c5dec43f8 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ - Fixed wireless signal starting from Controller instead of per Wireless Transmitter individually - Huge performance improvements to large networks +**Features** +- Re-added Controllers exploding when two of them are connected to the same network + ### 0.8.5 **Bugfixes** - Fixed crash when Tesla API is not installed diff --git a/src/main/java/refinedstorage/block/BlockNode.java b/src/main/java/refinedstorage/block/BlockNode.java index 218789872..7065244b7 100755 --- a/src/main/java/refinedstorage/block/BlockNode.java +++ b/src/main/java/refinedstorage/block/BlockNode.java @@ -59,7 +59,11 @@ public abstract class BlockNode extends BlockBase { @Override public void breakBlock(World world, BlockPos pos, IBlockState state) { if (!world.isRemote) { - (((TileNode) world.getTileEntity(pos)).getNetwork()).rebuildNodes(); + TileEntity tile = world.getTileEntity(pos); + + if (tile instanceof TileNode && ((TileNode) tile).isConnected()) { + (((TileNode) tile).getNetwork()).rebuildNodes(); + } } super.breakBlock(world, pos, state); diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index 57fda0a7b..cdbe992a2 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -398,6 +398,10 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR while ((currentPos = toCheck.poll()) != null) { TileEntity tile = worldObj.getTileEntity(currentPos); + if (tile instanceof TileController && !pos.equals(tile.getPos())) { + worldObj.createExplosion(null, tile.getPos().getX(), tile.getPos().getY(), tile.getPos().getZ(), 4.5f, true); + } + if (!(tile instanceof INetworkNode)) { continue; }