aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortth05 <36999320+tth05@users.noreply.github.com>2023-11-14 01:55:42 +0100
committerGitHub <noreply@github.com>2023-11-14 09:55:42 +0900
commit4f6577fdc1a18cf06461fbf24d43bdacbb773bea (patch)
tree5754e649919f35ff23b9a728a3b11b9394c627e5 /src
parente4291740bf6e3775319e1ed339226412a1ee69cc (diff)
downloadGT5-Unofficial-4f6577fdc1a18cf06461fbf24d43bdacbb773bea.tar.gz
GT5-Unofficial-4f6577fdc1a18cf06461fbf24d43bdacbb773bea.tar.bz2
GT5-Unofficial-4f6577fdc1a18cf06461fbf24d43bdacbb773bea.zip
Notifiy greg tech tile entities of world unload event (#2366)
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java4
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java2
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java10
3 files changed, 13 insertions, 3 deletions
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
index dfec0bf7a4..ba164352aa 100644
--- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
@@ -188,9 +188,9 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand
void onRemoval();
/**
- * Called when the BaseMetaTileEntity gets unloaded
+ * Called when the BaseMetaTileEntity gets unloaded (chunk or world)
*/
- default void onChunkUnload() {}
+ default void onUnload() {}
/**
* @param facing the facing direction to check
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
index 4390250dcf..2ef6d51776 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
@@ -988,7 +988,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity
@Override
public void onChunkUnload() {
if (canAccessData()) {
- mMetaTileEntity.onChunkUnload();
+ mMetaTileEntity.onUnload();
}
super.onChunkUnload();
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index 14cada3fa2..1c9a515aad 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -101,6 +101,7 @@ import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.event.terraingen.OreGenEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.event.world.ChunkDataEvent;
+import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack;
@@ -2265,6 +2266,15 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
}
}
+ @SubscribeEvent
+ public void onWorldUnload(WorldEvent.Unload event) {
+ for (TileEntity tileEntity : event.world.loadedTileEntityList) {
+ if (tileEntity instanceof IGregTechTileEntity) {
+ tileEntity.onChunkUnload();
+ }
+ }
+ }
+
public static void registerRecipes(GT_Proxy.OreDictEventContainer aOre) {
if ((aOre.mEvent.Ore == null) || (aOre.mEvent.Ore.getItem() == null)) {
return;