aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java2
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java8
-rw-r--r--src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java10
5 files changed, 24 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
index 0fdaa90c1a..7c75bb97d4 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
@@ -776,6 +776,8 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity
if (hasCover) tNBT.setIntArray("mCoverSides", mCoverSides);
if (hasValidMetaTileEntity()) mMetaTileEntity.setItemNBT(tNBT);
if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT);
+
+ onBaseTEDestroyed();
return new ArrayList<>(Collections.singletonList(rStack));
}
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
index cdc81220e6..08ead9a946 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
@@ -1423,6 +1423,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity
if (hasValidMetaTileEntity()) mMetaTileEntity.setItemNBT(tNBT);
if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT);
+
+ onBaseTEDestroyed();
return new ArrayList<>(Collections.singletonList(rStack));
}
diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
index caf3c1b15f..5958b515be 100644
--- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
@@ -320,6 +320,14 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov
return false;
}
+ protected void onBaseTEDestroyed() {
+ for (byte side = 0; side < 6; ++side) {
+ GT_CoverBehaviorBase<?> behavior = getCoverBehaviorAtSideNew(side);
+ if (behavior != GregTech_API.sNoBehavior)
+ behavior.onBaseTEDestroyed(side, getCoverIDAtSide(side), mCoverData[side], this);
+ }
+ }
+
@Override
public void setOutputRedstoneSignal(byte aSide, byte aStrength) {
aStrength = (byte) Math.min(Math.max(0, aStrength), 15);
diff --git a/src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java b/src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java
index 18dc310bb7..385ae310f1 100644
--- a/src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java
+++ b/src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java
@@ -906,6 +906,8 @@ public abstract class BaseMultiTileEntity extends CoverableTileEntity
final ArrayList<ItemStack> rList = new ArrayList<>();
final MultiTileEntityRegistry tRegistry = MultiTileEntityRegistry.getRegistry(getMultiTileEntityRegistryID());
if (tRegistry != null) rList.add(tRegistry.getItem(getMultiTileEntityID(), writeItemNBT(new NBTTagCompound())));
+
+ onBaseTEDestroyed();
return rList;
}
diff --git a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java
index efbff79957..e0879cda86 100644
--- a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java
+++ b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java
@@ -222,6 +222,14 @@ public abstract class GT_CoverBehaviorBase<T extends ISerializableObject> {
}
/**
+ * Called upon Base TE being destroyed (once getDrops is called),
+ * thus getting called only when destroyed in survival.
+ */
+ public final void onBaseTEDestroyed(byte aSide, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) {
+ onBaseTEDestroyedImpl(aSide, aCoverID, forceCast(aCoverVariable), aTileEntity);
+ }
+
+ /**
* Gives a small Text for the status of the Cover.
*/
public final String getDescription(
@@ -412,6 +420,8 @@ public abstract class GT_CoverBehaviorBase<T extends ISerializableObject> {
protected void onDroppedImpl(byte aSide, int aCoverID, T aCoverVariable, ICoverable aTileEntity) {}
+ protected void onBaseTEDestroyedImpl(byte aSide, int aCoverID, T aCoverVariable, ICoverable aTileEntity) {}
+
protected boolean isRedstoneSensitiveImpl(
byte aSide, int aCoverID, T aCoverVariable, ICoverable aTileEntity, long aTimer) {
return true;