diff options
author | koiNoCirculation <57739338+koiNoCirculation@users.noreply.github.com> | 2024-03-21 12:17:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-21 20:17:10 +0100 |
commit | 931c21814d2c2533fe2fb8d5a37e02ee35343930 (patch) | |
tree | fd044ab157c7558be7c74c6c2c8d5dd80eb1ffb2 /src/main | |
parent | 5f3db974f9b3e3f5d5152e427c2a41fb97d9b3b5 (diff) | |
download | GT5-Unofficial-931c21814d2c2533fe2fb8d5a37e02ee35343930.tar.gz GT5-Unofficial-931c21814d2c2533fe2fb8d5a37e02ee35343930.tar.bz2 GT5-Unofficial-931c21814d2c2533fe2fb8d5a37e02ee35343930.zip |
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.
Diffstat (limited to 'src/main')
3 files changed, 25 insertions, 0 deletions
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; @@ -31,6 +32,16 @@ public class GT_Cover_TM_TeslaCoil extends GT_CoverBehavior { } @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 @@ -709,6 +709,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); Parameters.Group hatch_1 = parametrization.getGroup(1, 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 @@ -238,6 +238,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); teslaSimpleNodeSetAdd(this); |