diff --git a/CHANGELOG.md b/CHANGELOG.md index 830c31d17..a18db8b47 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Interface now supports Crafting Upgrade (raoulvdberge) - When shift clicking a recipe in the Crafting Grid, the player inventory is now leveraged as well (raoulvdberge) - Fixed machines breaking on long distances (raoulvdberge) +- Fixed controller rebuilding network graph on energy change (raoulvdberge) ### 0.9.4 - Little fixes in German translation (ThexXTURBOXx) diff --git a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java index 584b5132b..d13d9c349 100755 --- a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java @@ -5,8 +5,11 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; +import refinedstorage.api.autocrafting.ICraftingPatternContainer; import refinedstorage.api.network.INetworkNode; import refinedstorage.api.network.INetworkNodeGraph; +import refinedstorage.api.storage.fluid.IFluidStorageProvider; +import refinedstorage.api.storage.item.IItemStorageProvider; import refinedstorage.tile.TileController; import refinedstorage.tile.TileNetworkTransmitter; @@ -140,6 +143,20 @@ public class NetworkNodeGraph implements INetworkNodeGraph { public void replace(INetworkNode node) { nodes.remove(node); nodes.add(node); + + if (node instanceof ICraftingPatternContainer) { + controller.rebuildPatterns(); + } + + if (node instanceof IItemStorageProvider) { + controller.getItemStorage().rebuild(); + } + + if (node instanceof IFluidStorageProvider) { + controller.getFluidStorage().rebuild(); + } + + controller.getDataManager().sendParameterToWatchers(TileController.NODES); } @Override diff --git a/src/main/java/refinedstorage/block/BlockController.java b/src/main/java/refinedstorage/block/BlockController.java index e76c79aca..84bc7cd60 100755 --- a/src/main/java/refinedstorage/block/BlockController.java +++ b/src/main/java/refinedstorage/block/BlockController.java @@ -136,16 +136,6 @@ public class BlockController extends BlockBase { return drops; } - @Override - public boolean hasComparatorInputOverride(IBlockState state) { - return true; - } - - @Override - public int getComparatorInputOverride(IBlockState state, World world, BlockPos pos) { - return ((TileController) world.getTileEntity(pos)).getEnergyScaledForComparator(); - } - @Override public Item createItem() { return new ItemBlockController(); diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index e028119f2..b2ef43984 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -191,7 +191,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR private ControllerEnergyTesla energyTesla; private int lastEnergyDisplay; - private int lastEnergyComparator; private boolean couldRun; @@ -330,12 +329,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR updateBlock(); } - - if (getEnergyScaledForComparator() != lastEnergyComparator) { - lastEnergyComparator = getEnergyScaledForComparator(); - - worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER); - } } super.update(); @@ -810,10 +803,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR return getEnergyScaled(energy.getEnergyStored(), energy.getMaxEnergyStored(), 7); } - public int getEnergyScaledForComparator() { - return getEnergyScaled(energy.getEnergyStored(), energy.getMaxEnergyStored(), 15); - } - @Override public int getMaxEnergyStored(EnumFacing from) { return energy.getMaxEnergyStored();