Fixed controller rebuilding network graph on energy change, fixes #322

This commit is contained in:
Raoul Van den Berge
2016-09-10 13:50:47 +02:00
parent 809baddd88
commit 4f68f1047a
4 changed files with 18 additions and 21 deletions

View File

@@ -9,6 +9,7 @@
- Interface now supports Crafting Upgrade (raoulvdberge) - Interface now supports Crafting Upgrade (raoulvdberge)
- When shift clicking a recipe in the Crafting Grid, the player inventory is now leveraged as well (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 machines breaking on long distances (raoulvdberge)
- Fixed controller rebuilding network graph on energy change (raoulvdberge)
### 0.9.4 ### 0.9.4
- Little fixes in German translation (ThexXTURBOXx) - Little fixes in German translation (ThexXTURBOXx)

View File

@@ -5,8 +5,11 @@ import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.DimensionManager;
import refinedstorage.api.autocrafting.ICraftingPatternContainer;
import refinedstorage.api.network.INetworkNode; import refinedstorage.api.network.INetworkNode;
import refinedstorage.api.network.INetworkNodeGraph; import refinedstorage.api.network.INetworkNodeGraph;
import refinedstorage.api.storage.fluid.IFluidStorageProvider;
import refinedstorage.api.storage.item.IItemStorageProvider;
import refinedstorage.tile.TileController; import refinedstorage.tile.TileController;
import refinedstorage.tile.TileNetworkTransmitter; import refinedstorage.tile.TileNetworkTransmitter;
@@ -140,6 +143,20 @@ public class NetworkNodeGraph implements INetworkNodeGraph {
public void replace(INetworkNode node) { public void replace(INetworkNode node) {
nodes.remove(node); nodes.remove(node);
nodes.add(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 @Override

View File

@@ -136,16 +136,6 @@ public class BlockController extends BlockBase {
return drops; 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 @Override
public Item createItem() { public Item createItem() {
return new ItemBlockController(); return new ItemBlockController();

View File

@@ -191,7 +191,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
private ControllerEnergyTesla energyTesla; private ControllerEnergyTesla energyTesla;
private int lastEnergyDisplay; private int lastEnergyDisplay;
private int lastEnergyComparator;
private boolean couldRun; private boolean couldRun;
@@ -330,12 +329,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
updateBlock(); updateBlock();
} }
if (getEnergyScaledForComparator() != lastEnergyComparator) {
lastEnergyComparator = getEnergyScaledForComparator();
worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER);
}
} }
super.update(); super.update();
@@ -810,10 +803,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
return getEnergyScaled(energy.getEnergyStored(), energy.getMaxEnergyStored(), 7); return getEnergyScaled(energy.getEnergyStored(), energy.getMaxEnergyStored(), 7);
} }
public int getEnergyScaledForComparator() {
return getEnergyScaled(energy.getEnergyStored(), energy.getMaxEnergyStored(), 15);
}
@Override @Override
public int getMaxEnergyStored(EnumFacing from) { public int getMaxEnergyStored(EnumFacing from) {
return energy.getMaxEnergyStored(); return energy.getMaxEnergyStored();