diff --git a/src/main/java/mekanism/common/content/matrix/MatrixUpdateProtocol.java b/src/main/java/mekanism/common/content/matrix/MatrixUpdateProtocol.java index 1c77f3d6d..db6d68ef3 100644 --- a/src/main/java/mekanism/common/content/matrix/MatrixUpdateProtocol.java +++ b/src/main/java/mekanism/common/content/matrix/MatrixUpdateProtocol.java @@ -73,7 +73,7 @@ public class MatrixUpdateProtocol extends UpdateProtocol } @Override - protected void onStructureCreated(SynchronizedMatrixData structure, int origX, int origY, int origZ, int xmin, int xmax, int ymin, int ymax, int zmin, int zmax) + protected void onFormed() { for(Coord4D coord : innerNodes) { @@ -81,14 +81,15 @@ public class MatrixUpdateProtocol extends UpdateProtocol if(tile instanceof TileEntityInductionCell) { - structure.cells.add(coord); - structure.storageCap += ((TileEntityInductionCell)tile).tier.MAX_ELECTRICITY; - structure.electricityStored += ((TileEntityInductionCell)tile).getEnergy(); + structureFound.cells.add(coord); + structureFound.storageCap += ((TileEntityInductionCell)tile).tier.MAX_ELECTRICITY; + structureFound.electricityStored += ((TileEntityInductionCell)tile).getEnergy(); + ((TileEntityInductionCell)tile).setEnergy(0); } else if(tile instanceof TileEntityInductionProvider) { - structure.providers.add(coord); - structure.outputCap += ((TileEntityInductionProvider)tile).tier.OUTPUT; + structureFound.providers.add(coord); + structureFound.outputCap += ((TileEntityInductionProvider)tile).tier.OUTPUT; } } } diff --git a/src/main/java/mekanism/common/multiblock/SynchronizedData.java b/src/main/java/mekanism/common/multiblock/SynchronizedData.java index cab4f5e3f..76ec12601 100644 --- a/src/main/java/mekanism/common/multiblock/SynchronizedData.java +++ b/src/main/java/mekanism/common/multiblock/SynchronizedData.java @@ -30,6 +30,8 @@ public abstract class SynchronizedData> public Coord4D minLocation; public Coord4D maxLocation; + public boolean destroyed; + public ItemStack[] getInventory() { return null; diff --git a/src/main/java/mekanism/common/multiblock/UpdateProtocol.java b/src/main/java/mekanism/common/multiblock/UpdateProtocol.java index ae686082a..3e7b1f286 100644 --- a/src/main/java/mekanism/common/multiblock/UpdateProtocol.java +++ b/src/main/java/mekanism/common/multiblock/UpdateProtocol.java @@ -452,9 +452,10 @@ public abstract class UpdateProtocol> else { for(TileEntityMultiblock tileEntity : iteratedNodes) { - if(tileEntity.structure != null) + if(tileEntity.structure != null && !tileEntity.structure.destroyed) { onStructureDestroyed(tileEntity.structure); + tileEntity.structure.destroyed = true; } tileEntity.structure = null;