diff options
author | tth05 <36999320+tth05@users.noreply.github.com> | 2023-11-14 01:55:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-14 09:55:42 +0900 |
commit | 4f6577fdc1a18cf06461fbf24d43bdacbb773bea (patch) | |
tree | 5754e649919f35ff23b9a728a3b11b9394c627e5 /src | |
parent | e4291740bf6e3775319e1ed339226412a1ee69cc (diff) | |
download | GT5-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')
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; |