aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2023-01-02 16:22:37 +0800
committerGitHub <noreply@github.com>2023-01-02 09:22:37 +0100
commite30abbb03c2af80a00d2036808d3125c58331b19 (patch)
tree40be9db1033b6b3a1cbf3f0b49ad85ea504e58fd /src/main/java
parent744834083d4504108be1715d36acd94d71c31a84 (diff)
downloadGT5-Unofficial-e30abbb03c2af80a00d2036808d3125c58331b19.tar.gz
GT5-Unofficial-e30abbb03c2af80a00d2036808d3125c58331b19.tar.bz2
GT5-Unofficial-e30abbb03c2af80a00d2036808d3125c58331b19.zip
add callhook for pre block destroy (#1625)
* add callhook for pre block destroy Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> * spotless Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java5
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java5
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java5
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Machines.java1
5 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
index 59d048e618..0d1d52edb0 100644
--- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
@@ -519,4 +519,9 @@ public interface IMetaTileEntity
default int getTextColorOrDefault(String textType, int defaultColor) {
return defaultColor;
}
+
+ /**
+ * Called before block is destroyed. This is before inventory dropping code has executed.
+ */
+ default void onBlockDestroyed() {}
}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
index b389c8be6c..16fbe4f327 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
@@ -140,6 +140,8 @@ public interface IGregTechTileEntity
float getBlastResistance(byte aSide);
+ default void onBlockDestroyed() {}
+
ArrayList<ItemStack> getDrops();
/** Check if the item at the specific index should be dropped or not
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
index 87a865641f..09b62c0657 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
@@ -1359,6 +1359,11 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity
}
@Override
+ public void onBlockDestroyed() {
+ if (canAccessData()) getMetaTileEntity().onBlockDestroyed();
+ }
+
+ @Override
public boolean isMufflerUpgradable() {
return false;
}
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
index 8c6076a56e..f2da90cde9 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
@@ -2235,6 +2235,11 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity
}
@Override
+ public void onBlockDestroyed() {
+ if (canAccessData()) getMetaTileEntity().onBlockDestroyed();
+ }
+
+ @Override
public boolean isUniversalEnergyStored(long aEnergyAmount) {
if (getUniversalEnergyStored() >= aEnergyAmount) return true;
mHasEnoughEnergy = false;
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java
index 3aeb2f0a5e..d176fd26a3 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java
@@ -410,6 +410,7 @@ public class GT_Block_Machines extends GT_Generic_Block implements IDebugableBlo
final TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if (tTileEntity instanceof IGregTechTileEntity) {
final IGregTechTileEntity tGregTechTileEntity = (IGregTechTileEntity) tTileEntity;
+ tGregTechTileEntity.onBlockDestroyed();
mTemporaryTileEntity.set(tGregTechTileEntity);
if (!(tGregTechTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_QuantumChest)) {
for (int i = 0; i < tGregTechTileEntity.getSizeInventory(); i++) {