From cb50f24c860fe63bd7567fc3c440fb67c2760903 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Thu, 1 Apr 2021 13:13:14 -0500 Subject: [PATCH] Improve how a unloaded LodWorld is handled --- .../java/com/backsun/lod/builders/LodBuilder.java | 4 ++-- src/main/java/com/backsun/lod/objects/LodWorld.java | 11 +++++++++-- src/main/java/com/backsun/lod/proxy/ClientProxy.java | 4 ++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/backsun/lod/builders/LodBuilder.java b/src/main/java/com/backsun/lod/builders/LodBuilder.java index a7f8e3594..eab2a256e 100644 --- a/src/main/java/com/backsun/lod/builders/LodBuilder.java +++ b/src/main/java/com/backsun/lod/builders/LodBuilder.java @@ -27,7 +27,7 @@ import net.minecraft.world.server.ServerWorld; * (specifically: Lod World, Dimension, Region, and Chunk objects) * * @author James Seibel - * @version 3-27-2021 + * @version 4-01-2021 */ public class LodBuilder { @@ -59,7 +59,7 @@ public class LodBuilder public void generateLodChunkAsync(IChunk chunk, LodWorld lodWorld, DimensionType dim) { - if (lodWorld == null) + if (lodWorld == null || !lodWorld.getIsWorldLoaded()) return; // is this chunk from the same world as the lodWorld? diff --git a/src/main/java/com/backsun/lod/objects/LodWorld.java b/src/main/java/com/backsun/lod/objects/LodWorld.java index df14c8d6c..e203dbc00 100644 --- a/src/main/java/com/backsun/lod/objects/LodWorld.java +++ b/src/main/java/com/backsun/lod/objects/LodWorld.java @@ -9,14 +9,15 @@ import net.minecraft.world.DimensionType; * This stores all LODs for a given world. * * @author James Seibel - * @version 03-31-2021 + * @version 04-01-2021 */ public class LodWorld { private String worldName; private Map lodDimensions; - + /** If true then the LOD world is setup and ready to use */ + private boolean isWorldLoaded = false; public LodWorld() { @@ -32,6 +33,7 @@ public class LodWorld { worldName = newWorldName; lodDimensions = new Hashtable(); + isWorldLoaded = true; } /** @@ -43,6 +45,7 @@ public class LodWorld { worldName = "No world loaded"; lodDimensions = null; + isWorldLoaded = false; } @@ -76,6 +79,10 @@ public class LodWorld } + public boolean getIsWorldLoaded() + { + return isWorldLoaded; + } public String getWorldName() { diff --git a/src/main/java/com/backsun/lod/proxy/ClientProxy.java b/src/main/java/com/backsun/lod/proxy/ClientProxy.java index 10ad04e59..1f8fd0f9b 100644 --- a/src/main/java/com/backsun/lod/proxy/ClientProxy.java +++ b/src/main/java/com/backsun/lod/proxy/ClientProxy.java @@ -22,7 +22,7 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; * and is the starting point for most of this program. * * @author James_Seibel - * @version 03-31-2021 + * @version 04-01-2021 */ public class ClientProxy { @@ -64,7 +64,7 @@ public class ClientProxy } - if (mc == null || mc.player == null || lodWorld == null) + if (mc == null || mc.player == null || !lodWorld.getIsWorldLoaded()) return; LodDimension lodDim = lodWorld.getLodDimension(mc.player.world.getDimensionType());