From 966fad56caf7ed559b53dfb74839a3195ed97858 Mon Sep 17 00:00:00 2001 From: Pelotrio <45769595+Pelotrio@users.noreply.github.com> Date: Sat, 11 Nov 2023 01:48:59 +0100 Subject: [PATCH] Clear render block instances on world unload to not leak the world --- .../client/render/SubmapManagerSpecialMaterial.java | 5 +++++ .../java/team/chisel/item/chisel/ChiselController.java | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/main/java/team/chisel/client/render/SubmapManagerSpecialMaterial.java b/src/main/java/team/chisel/client/render/SubmapManagerSpecialMaterial.java index bacb4d1d..71758a80 100644 --- a/src/main/java/team/chisel/client/render/SubmapManagerSpecialMaterial.java +++ b/src/main/java/team/chisel/client/render/SubmapManagerSpecialMaterial.java @@ -84,4 +84,9 @@ public class SubmapManagerSpecialMaterial extends SubmapManagerBase { renderBlocksFullbright.submapSmall = submapSmall; return renderBlocksFullbright; } + + public static void clearRenderBlocksInstance() { + renderBlocksFullbright = null; + } + } diff --git a/src/main/java/team/chisel/item/chisel/ChiselController.java b/src/main/java/team/chisel/item/chisel/ChiselController.java index aa2e0b41..59b4805e 100644 --- a/src/main/java/team/chisel/item/chisel/ChiselController.java +++ b/src/main/java/team/chisel/item/chisel/ChiselController.java @@ -11,6 +11,7 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.oredict.OreDictionary; import com.cricketcraft.chisel.api.IChiselItem; @@ -25,6 +26,7 @@ import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent; import team.chisel.Chisel; import team.chisel.carving.Carving; +import team.chisel.client.render.SubmapManagerSpecialMaterial; import team.chisel.utils.General; public final class ChiselController { @@ -160,4 +162,12 @@ public final class ChiselController { } } } + + @SubscribeEvent + public void onWorldUnload(WorldEvent.Unload event) { + if (event.world.isRemote) { + SubmapManagerSpecialMaterial.clearRenderBlocksInstance(); + } + } + }