From 01d2548fc3db67e64d18e534849053d2553b9c09 Mon Sep 17 00:00:00 2001 From: Maik Marschner Date: Sun, 26 Jul 2026 20:20:02 +0200 Subject: [PATCH 1/2] Resolve cyclic dependency between static initializers of EmptyWorld and EmptyDimension. --- chunky/src/java/se/llbit/chunky/world/EmptyChunk.java | 2 +- chunky/src/java/se/llbit/chunky/world/EmptyDimension.java | 4 +--- chunky/src/java/se/llbit/chunky/world/EmptyRegionChunk.java | 2 +- chunky/src/java/se/llbit/chunky/world/EmptyWorld.java | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/chunky/src/java/se/llbit/chunky/world/EmptyChunk.java b/chunky/src/java/se/llbit/chunky/world/EmptyChunk.java index aac2807adf..dd1ed4a263 100644 --- a/chunky/src/java/se/llbit/chunky/world/EmptyChunk.java +++ b/chunky/src/java/se/llbit/chunky/world/EmptyChunk.java @@ -45,7 +45,7 @@ public class EmptyChunk extends Chunk { } private EmptyChunk() { - super(new ChunkPosition(0, 0), EmptyDimension.INSTANCE); + super(new ChunkPosition(0, 0), EmptyWorld.INSTANCE.currentDimension()); surface = IconLayer.CORRUPT; } diff --git a/chunky/src/java/se/llbit/chunky/world/EmptyDimension.java b/chunky/src/java/se/llbit/chunky/world/EmptyDimension.java index d8bd78aeb0..cf112ff995 100644 --- a/chunky/src/java/se/llbit/chunky/world/EmptyDimension.java +++ b/chunky/src/java/se/llbit/chunky/world/EmptyDimension.java @@ -3,9 +3,7 @@ import java.util.Collections; public class EmptyDimension extends Dimension { - public static final EmptyDimension INSTANCE = new EmptyDimension(); - - private EmptyDimension() { + EmptyDimension() { super(EmptyWorld.INSTANCE, Dimension.Identifier.OVERWORLD, null, Collections.emptySet()); } diff --git a/chunky/src/java/se/llbit/chunky/world/EmptyRegionChunk.java b/chunky/src/java/se/llbit/chunky/world/EmptyRegionChunk.java index 8ec109eda3..029f664585 100644 --- a/chunky/src/java/se/llbit/chunky/world/EmptyRegionChunk.java +++ b/chunky/src/java/se/llbit/chunky/world/EmptyRegionChunk.java @@ -44,7 +44,7 @@ public class EmptyRegionChunk extends Chunk { } private EmptyRegionChunk() { - super(new ChunkPosition(0, 0), EmptyDimension.INSTANCE); + super(new ChunkPosition(0, 0), EmptyWorld.INSTANCE.currentDimension()); surface = IconLayer.CORRUPT; } diff --git a/chunky/src/java/se/llbit/chunky/world/EmptyWorld.java b/chunky/src/java/se/llbit/chunky/world/EmptyWorld.java index b584e4f4b3..155923913e 100644 --- a/chunky/src/java/se/llbit/chunky/world/EmptyWorld.java +++ b/chunky/src/java/se/llbit/chunky/world/EmptyWorld.java @@ -28,7 +28,7 @@ public class EmptyWorld extends World { private EmptyWorld() { super("[empty world]", null, 0, -1); - this.currentDimension = EmptyDimension.INSTANCE; + this.currentDimension = new EmptyDimension(); } @Override public String toString() { From fd5e387ac932f7ea6a324ceb4df1d424b2585360 Mon Sep 17 00:00:00 2001 From: Maik Marschner Date: Sun, 26 Jul 2026 20:20:13 +0200 Subject: [PATCH 2/2] Ensure that EmptyWorld cannot change dimension. --- chunky/src/java/se/llbit/chunky/world/EmptyWorld.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/chunky/src/java/se/llbit/chunky/world/EmptyWorld.java b/chunky/src/java/se/llbit/chunky/world/EmptyWorld.java index 155923913e..d302150b49 100644 --- a/chunky/src/java/se/llbit/chunky/world/EmptyWorld.java +++ b/chunky/src/java/se/llbit/chunky/world/EmptyWorld.java @@ -31,7 +31,13 @@ private EmptyWorld() { this.currentDimension = new EmptyDimension(); } - @Override public String toString() { + @Override + public void loadDimension(Dimension.Identifier dimensionId) { + // no-op + } + + @Override + public String toString() { return "[empty world]"; }