aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java6
-rw-r--r--src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java16
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);
}