From ac992c31eafae39763fe4e9680b50ec3adfd49a7 Mon Sep 17 00:00:00 2001 From: Dagger <44447392+dagger8243@users.noreply.github.com> Date: Thu, 3 Oct 2024 03:09:19 -0300 Subject: Fixed Laser & Data pipe every 32 tick connection update (#3259) Co-authored-by: Martin Robertz --- .../api/metatileentity/MetaTileEntity.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/main/java/gregtech/api') 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!!! @@ -1080,6 +1082,28 @@ public abstract class MetaTileEntity implements IMetaTileEntity, ICleanroomRecei return mInventory; } + @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(); @@ -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); + } } } -- cgit