From 0ee8ba827b13ed5dd33bfe7c5d09285d1211c9fb Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 5 Nov 2016 23:36:15 +0100 Subject: [PATCH] Revert "Correctly save stuff, should work for Funky Locomotion integration" This reverts commit f6b983f0b41642eeb48bd1c58223fc9a0a2585e2. --- .../apiimpl/network/NetworkNodeGraph.java | 2 +- .../refinedstorage/block/BlockCable.java | 26 ++++++++++++ .../refinedstorage/block/BlockController.java | 9 ++++ .../refinedstorage/block/BlockNode.java | 42 +++++++++++++++++++ .../refinedstorage/tile/TileController.java | 6 +-- .../refinedstorage/tile/TileDiskDrive.java | 7 ---- .../tile/TileDiskManipulator.java | 7 ---- .../refinedstorage/tile/TileFluidStorage.java | 7 ---- .../tile/TileMultipartNode.java | 3 +- .../refinedstorage/tile/TileNode.java | 33 --------------- .../refinedstorage/tile/TileStorage.java | 7 ---- 11 files changed, 81 insertions(+), 68 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeGraph.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeGraph.java index efe738096..1bd5943e6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeGraph.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeGraph.java @@ -80,7 +80,7 @@ public class NetworkNodeGraph implements INetworkNodeGraph { continue; } - if (!(tile instanceof INetworkNode) || (tile != null && tile.isInvalid())) { + if (!(tile instanceof INetworkNode)) { continue; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java index 6de6dd4e5..f2b4f4da2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java @@ -270,13 +270,35 @@ public class BlockCable extends BlockCoverable { if (getPlacementType() != null) { ((TileBase) world.getTileEntity(pos)).setDirection(state.getValue(DIRECTION)); } + + attemptConnect(world, pos); + } + + public void attemptConnect(World world, BlockPos pos) { + if (!world.isRemote) { + for (EnumFacing facing : EnumFacing.VALUES) { + TileEntity tile = world.getTileEntity(pos.offset(facing)); + + if (tile instanceof TileNode && ((TileNode) tile).isConnected()) { + ((TileNode) tile).getNetwork().getNodeGraph().rebuild(); + + break; + } + } + } } @Override public void breakBlock(World world, BlockPos pos, IBlockState state) { + INetworkMaster network = null; + if (!world.isRemote) { TileEntity tile = world.getTileEntity(pos); + if (tile instanceof TileNode) { + network = ((TileNode) tile).getNetwork(); + } + if (tile instanceof TileBase && ((TileBase) tile).getDrops() != null) { IItemHandler handler = ((TileBase) tile).getDrops(); @@ -289,6 +311,10 @@ public class BlockCable extends BlockCoverable { } super.breakBlock(world, pos, state); + + if (network != null) { + network.getNodeGraph().rebuild(); + } } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java index f93ed94bf..2e8e0ba1b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java @@ -102,6 +102,15 @@ public class BlockController extends BlockBase { super.onBlockPlacedBy(world, pos, state, player, stack); } + @Override + public void breakBlock(World world, BlockPos pos, IBlockState state) { + if (!world.isRemote) { + ((TileController) world.getTileEntity(pos)).onDestroyed(); + } + + super.breakBlock(world, pos, state); + } + @Override @SuppressWarnings("deprecation") public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java index 9fd7dae83..6e38770b2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java @@ -1,11 +1,17 @@ package com.raoulvdberge.refinedstorage.block; +import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.tile.TileNode; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; public abstract class BlockNode extends BlockBase { public static final PropertyBool CONNECTED = PropertyBool.create("connected"); @@ -44,6 +50,42 @@ public abstract class BlockNode extends BlockBase { return super.getActualState(state, world, pos); } + @Override + public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) { + super.onBlockPlacedBy(world, pos, state, player, stack); + + if (!world.isRemote) { + for (EnumFacing facing : EnumFacing.VALUES) { + TileEntity tile = world.getTileEntity(pos.offset(facing)); + + if (tile instanceof TileNode && ((TileNode) tile).isConnected()) { + ((TileNode) tile).getNetwork().getNodeGraph().rebuild(); + + break; + } + } + } + } + + @Override + public void breakBlock(World world, BlockPos pos, IBlockState state) { + INetworkMaster network = null; + + if (!world.isRemote) { + TileEntity tile = world.getTileEntity(pos); + + if (tile instanceof TileNode) { + network = ((TileNode) tile).getNetwork(); + } + } + + super.breakBlock(world, pos, state); + + if (network != null) { + network.getNodeGraph().rebuild(); + } + } + public boolean hasConnectivityState() { return false; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index a40b91668..eb0faed67 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -327,10 +327,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR super.invalidate(); energyEU.invalidate(); - - if (!worldObj.isRemote) { - onBreak(); - } } @Override @@ -355,7 +351,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR energyEU.onChunkUnload(); } - public void onBreak() { + public void onDestroyed() { nodeGraph.disconnectAll(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java index 02dffeb73..8a30835e2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java @@ -241,13 +241,6 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl } } - @Override - public void invalidate() { - onBreak(); - - super.invalidate(); - } - @Override public void onConnectionChange(INetworkMaster network, boolean state) { super.onConnectionChange(network, state); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java index a8c868140..6f3daa49f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java @@ -613,11 +613,4 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte } } } - - @Override - public void invalidate() { - onBreak(); - - super.invalidate(); - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java index d0c2b5ad1..56b8f115e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java @@ -124,13 +124,6 @@ public class TileFluidStorage extends TileNode implements IFluidStorageProvider, } } - @Override - public void invalidate() { - onBreak(); - - super.invalidate(); - } - @Override public void onConnectionChange(INetworkMaster network, boolean state) { super.onConnectionChange(network, state); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileMultipartNode.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileMultipartNode.java index e53028d87..575bc5714 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileMultipartNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileMultipartNode.java @@ -1,5 +1,6 @@ package com.raoulvdberge.refinedstorage.tile; +import com.raoulvdberge.refinedstorage.RSBlocks; import mcmultipart.capabilities.ISlottedCapabilityProvider; import mcmultipart.capabilities.MultipartCapabilityHelper; import mcmultipart.microblock.IMicroblock; @@ -71,7 +72,7 @@ public abstract class TileMultipartNode extends TileNode implements IMicroblockC if (network != null) { network.getNodeGraph().rebuild(); } else if (worldObj != null) { - rebuildNearbyGraph(); + RSBlocks.CABLE.attemptConnect(worldObj, pos); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java index b4cd1971d..4b23b50df 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java @@ -28,7 +28,6 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto protected INetworkMaster network; protected boolean rebuildOnUpdateChange; - private boolean rebuildNearbyGraph; public TileNode() { dataManager.addWatchedParameter(REDSTONE_MODE); @@ -58,10 +57,6 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto } networkPos = null; - } else if (rebuildNearbyGraph) { - rebuildNearbyGraph = false; - - rebuildNearbyGraph(); } if (update != canUpdate() && network != null) { @@ -88,18 +83,6 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto super.update(); } - protected void rebuildNearbyGraph() { - for (EnumFacing facing : EnumFacing.VALUES) { - TileEntity tile = worldObj.getTileEntity(pos.offset(facing)); - - if (tile instanceof TileNode && ((TileNode) tile).isConnected()) { - ((TileNode) tile).getNetwork().getNodeGraph().rebuild(); - - break; - } - } - } - @Override public void onConnected(INetworkMaster network) { this.connected = true; @@ -218,20 +201,4 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto public boolean hasConnectivityState() { return false; } - - @Override - public void invalidate() { - super.invalidate(); - - if (!worldObj.isRemote && network != null) { - network.getNodeGraph().rebuild(); - } - } - - @Override - public void validate() { - super.validate(); - - rebuildNearbyGraph = true; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java index fe1ec7583..0078a8443 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java @@ -125,13 +125,6 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor } } - @Override - public void invalidate() { - onBreak(); - - super.invalidate(); - } - @Override public void onConnectionChange(INetworkMaster network, boolean state) { super.onConnectionChange(network, state);