diff options
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); } |