From bb9c43ad692af03978cba44993fdeaa898ba0bc6 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Sat, 11 Mar 2017 10:43:33 +0100 Subject: [PATCH] Fixed inv not dropping on nodes --- .../refinedstorage/block/BlockBase.java | 13 +++++++++++-- .../refinedstorage/block/BlockNode.java | 6 ++++-- 2 files changed, 15 insertions(+), 4 deletions(-) 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