diff options
author | RealSilverMoon <31100241+RealSilverMoon@users.noreply.github.com> | 2024-06-30 03:59:11 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-29 21:59:11 +0200 |
commit | f8eb1c66d38b354878e50350a453b557e9b9abd5 (patch) | |
tree | d306401265102fa3d911fdb297ecbb06dd2a5326 /src/main/java/gregtech/api/metatileentity | |
parent | c3bb1755fb2d6d8cc3bb43187edc1f50a58764aa (diff) | |
download | GT5-Unofficial-f8eb1c66d38b354878e50350a453b557e9b9abd5.tar.gz GT5-Unofficial-f8eb1c66d38b354878e50350a453b557e9b9abd5.tar.bz2 GT5-Unofficial-f8eb1c66d38b354878e50350a453b557e9b9abd5.zip |
Several fixes for Tesla Cover (#2671)
* Fix tesla cover memory leak
* Fix tesla crash when destroying tesla cover
* Add max output display
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
-rw-r--r-- | src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java | 6 | ||||
-rw-r--r-- | src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java | 16 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index bf6358c884..386975dd6d 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -980,9 +980,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity @Override public void onChunkUnload() { if (canAccessData()) { + onCoverUnload(); mMetaTileEntity.onUnload(); } - super.onChunkUnload(); onChunkUnloadAE(); } @@ -2276,7 +2276,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity @Override public void onBlockDestroyed() { - if (canAccessData()) getMetaTileEntity().onBlockDestroyed(); + if (canAccessData()) { + getMetaTileEntity().onBlockDestroyed(); + } } @Override diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java index 277b79c777..4dce0a083e 100644 --- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java @@ -194,6 +194,22 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov return true; } + protected void onCoverUnload() { + byte validCoversMask = this.validCoversMask; + if (validCoversMask == 0) return; + + for (int i = Integer.numberOfTrailingZeros(validCoversMask); i < 6; i++) { + if (((validCoversMask >>> i) & 1) == 0) continue; + onCoverUnloadAtSide(ForgeDirection.VALID_DIRECTIONS[i]); + } + } + + public void onCoverUnloadAtSide(ForgeDirection side) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); + if (!coverInfo.isValid()) return; + coverInfo.onCoverUnload(); + } + public boolean tickCoverAtSide(ForgeDirection side) { return tickCoverAtSide(side, mTickTimer); } |