diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java index 46963ba96..4f1220a18 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java @@ -113,6 +113,17 @@ public abstract class BlockBase extends Block { @Override public void breakBlock(World world, BlockPos pos, IBlockState state) { + dropContents(world, pos); + removeTile(world, pos, state); + } + + protected void removeTile(World world, BlockPos pos, IBlockState state) { + if (hasTileEntity(state)) { + world.removeTileEntity(pos); + } + } + + protected void dropContents(World world, BlockPos pos) { TileEntity tile = IntegrationMCMP.isLoaded() ? RSMCMPAddon.unwrapTile(world, pos) : world.getTileEntity(pos); if (tile instanceof TileBase && ((TileBase) tile).getDrops() != null) { @@ -124,8 +135,6 @@ public abstract class BlockBase extends Block { } } } - - super.breakBlock(world, pos, state); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java index 66ff17ee2..28ea6af7c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java @@ -54,15 +54,17 @@ public abstract class BlockNode extends BlockBase { INetworkNode node = manager.getNode(pos); + dropContents(world, pos); + manager.removeNode(pos, true); API.instance().markNetworkNodesDirty(world); + removeTile(world, pos, state); + if (node.getNetwork() != null) { node.getNetwork().getNodeGraph().rebuild(); } - - super.breakBlock(world, pos, state); } @Override