Reworked storage network code, should fix weird machine disconnection issues
This commit is contained in:
@@ -18,12 +18,14 @@ import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.RefinedStorageBlocks;
|
||||
import refinedstorage.api.RefinedStorageAPI;
|
||||
import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
||||
import refinedstorage.api.autocrafting.ICraftingTask;
|
||||
import refinedstorage.api.network.*;
|
||||
import refinedstorage.api.network.grid.IFluidGridHandler;
|
||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||
import refinedstorage.api.network.registry.INetworkRegistry;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.api.storage.fluid.IFluidStorage;
|
||||
import refinedstorage.api.storage.fluid.IGroupedFluidStorage;
|
||||
@@ -184,6 +186,8 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
private IControllerEnergyIC2 energyEU;
|
||||
private ControllerEnergyTesla energyTesla;
|
||||
|
||||
private boolean destroyed;
|
||||
|
||||
private int lastEnergyDisplay;
|
||||
private int lastEnergyComparator;
|
||||
|
||||
@@ -234,6 +238,12 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
@Override
|
||||
public void update() {
|
||||
if (!worldObj.isRemote) {
|
||||
INetworkRegistry registry = RefinedStorageAPI.getNetworkRegistry(worldObj);
|
||||
|
||||
if (!destroyed && registry.getNetwork(pos) == null) {
|
||||
registry.addNetwork(this);
|
||||
}
|
||||
|
||||
energyEU.update();
|
||||
|
||||
if (canRun()) {
|
||||
@@ -335,9 +345,9 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
|
||||
@Override
|
||||
public void invalidate() {
|
||||
energyEU.invalidate();
|
||||
|
||||
super.invalidate();
|
||||
|
||||
energyEU.invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -362,6 +372,14 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
energyEU.onChunkUnload();
|
||||
}
|
||||
|
||||
public void onDestroyed() {
|
||||
nodeGraph.disconnectAll();
|
||||
|
||||
destroyed = true;
|
||||
|
||||
RefinedStorageAPI.getNetworkRegistry(worldObj).removeNetwork(pos);
|
||||
}
|
||||
|
||||
public IGroupedItemStorage getItemStorage() {
|
||||
return itemStorage;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user