aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaTileEntity.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
index a0fafe1bcd..62b722e86d 100644
--- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
@@ -62,6 +62,8 @@ import gregtech.common.GTClient;
import gregtech.common.covers.CoverInfo;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
+import tectech.thing.metaTileEntity.pipe.MTEPipeData;
+import tectech.thing.metaTileEntity.pipe.MTEPipeEnergy;
/**
* NEVER INCLUDE THIS FILE IN YOUR MOD!!!
@@ -1081,6 +1083,28 @@ public abstract class MetaTileEntity implements IMetaTileEntity, ICleanroomRecei
}
@Override
+ public void onBlockDestroyed() {
+ final IGregTechTileEntity meta = getBaseMetaTileEntity();
+
+ for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) {
+ final IGregTechTileEntity iGregTechTileEntity = meta.getIGregTechTileEntityAtSide(side);
+
+ if (iGregTechTileEntity != null) {
+ if (iGregTechTileEntity.getMetaTileEntity() instanceof MTEPipeEnergy neighbor) {
+ neighbor.mConnections &= ~side.getOpposite().flag;
+ neighbor.connectionCount--;
+ }
+ if (iGregTechTileEntity.getMetaTileEntity() instanceof MTEPipeData neighbor) {
+ neighbor.mConnections &= ~side.getOpposite().flag;
+ neighbor.connectionCount--;
+ }
+ }
+ }
+
+ IMetaTileEntity.super.onBlockDestroyed();
+ }
+
+ @Override
public void onColorChangeServer(byte aColor) {
final IGregTechTileEntity meta = getBaseMetaTileEntity();
final int aX = meta.getXCoord(), aY = meta.getYCoord(), aZ = meta.getZCoord();
@@ -1090,6 +1114,12 @@ public abstract class MetaTileEntity implements IMetaTileEntity, ICleanroomRecei
if (tTileEntity instanceof BaseMetaPipeEntity pipe) {
pipe.onNeighborBlockChange(aX, aY, aZ);
}
+
+ final IGregTechTileEntity iGregTechTileEntity = meta.getIGregTechTileEntityAtSide(side);
+ if (iGregTechTileEntity != null) {
+ if (iGregTechTileEntity.getMetaTileEntity() instanceof MTEPipeEnergy pipe) pipe.updateNetwork(true);
+ if (iGregTechTileEntity.getMetaTileEntity() instanceof MTEPipeData pipe) pipe.updateNetwork(true);
+ }
}
}