From 931c21814d2c2533fe2fb8d5a37e02ee35343930 Mon Sep 17 00:00:00 2001 From: koiNoCirculation <57739338+koiNoCirculation@users.noreply.github.com> Date: Thu, 21 Mar 2024 12:17:10 -0700 Subject: Fix memory leak by tesla, but problem still exists when using tesla cover. (#275) * Fixed memory leak. But leak still exists in tesla cover, because when chunk unloads, the TeslaCoverConnection object is not removed from the set. * Fixed memory leak. But leak still exists in tesla cover, because when chunk unloads, the TeslaCoverConnection object is not removed from the set. --- .../technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java | 11 +++++++++++ .../metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java | 7 +++++++ .../metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java | 7 +++++++ 3 files changed, 25 insertions(+) (limited to 'src/main') diff --git a/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java b/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java index 7fab22c9b2..da8fed78ae 100644 --- a/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java +++ b/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java @@ -1,6 +1,7 @@ package com.github.technus.tectech.thing.cover; import static com.github.technus.tectech.mechanics.tesla.ITeslaConnectable.TeslaUtil.teslaSimpleNodeSetAdd; +import static com.github.technus.tectech.mechanics.tesla.ITeslaConnectable.TeslaUtil.teslaSimpleNodeSetRemove; import static ic2.api.info.Info.DMG_ELECTRIC; import net.minecraft.entity.player.EntityPlayer; @@ -30,6 +31,16 @@ public class GT_Cover_TM_TeslaCoil extends GT_CoverBehavior { return super.doCoverThings(side, aInputRedstone, aCoverID, aCoverVariable, aTileEntity, aTimer); } + @Override + public boolean onCoverRemoval(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity, + boolean aForced) { + teslaSimpleNodeSetRemove( + new TeslaCoverConnection( + aTileEntity.getIGregTechTileEntityOffset(0, 0, 0), + getTeslaReceptionCapability())); + return super.onCoverRemoval(side, aCoverID, aCoverVariable, aTileEntity, aForced); + } + @Override public String getDescription(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return "Do not attempt to use screwdriver!"; // TODO Translation support diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java index 3260546ec2..1054825db2 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java @@ -708,6 +708,13 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock } } + @Override + public void onUnload() { + if (!getBaseMetaTileEntity().isClientSide()) { + teslaSimpleNodeSetRemove(this); + } + } + @Override protected void parametersInstantiation_EM() { Parameters.Group hatch_0 = parametrization.getGroup(0, true); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java index 940c276839..87bc5c3d75 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java @@ -237,6 +237,13 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB } } + @Override + public void onUnload() { + if (!this.getBaseMetaTileEntity().isClientSide()) { + teslaSimpleNodeSetRemove(this); + } + } + @Override public void loadNBTData(NBTTagCompound aNBT) { super.loadNBTData(aNBT); -- cgit