From 726718a6f53e8d7cb8c399ff7246cd942912f2e0 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Tue, 21 Sep 2021 08:18:00 -0400 Subject: [PATCH] Mantle in pregen methods --- .../iris/core/pregenerator/IrisPregenerator.java | 5 +++++ .../volmit/iris/core/pregenerator/PregenTask.java | 1 + .../iris/core/pregenerator/PregeneratorMethod.java | 4 ++++ .../methods/AsyncOrMedievalPregenMethod.java | 6 ++++++ .../core/pregenerator/methods/AsyncPregenMethod.java | 12 ++++++++++++ .../core/pregenerator/methods/DummyPregenMethod.java | 6 ++++++ .../pregenerator/methods/HeadlessPregenMethod.java | 6 ++++++ .../pregenerator/methods/HybridPregenMethod.java | 11 +++++++++++ .../pregenerator/methods/MedievalPregenMethod.java | 12 ++++++++++++ .../pregenerator/methods/SyndicatePregenMethod.java | 6 ++++++ 10 files changed, 69 insertions(+) diff --git a/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java b/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java index 294b4de74..affb2ca02 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java @@ -21,6 +21,7 @@ package com.volmit.iris.core.pregenerator; import com.volmit.iris.Iris; import com.volmit.iris.util.collection.KSet; import com.volmit.iris.util.format.Form; +import com.volmit.iris.util.mantle.Mantle; import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.Position2; import com.volmit.iris.util.math.RollingSequence; @@ -272,4 +273,8 @@ public class IrisPregenerator { public boolean paused() { return paused.get(); } + + public Mantle getMantle() { + return generator.getMantle(); + } } diff --git a/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java b/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java index 1edd376c9..9b90d59e5 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java @@ -19,6 +19,7 @@ package com.volmit.iris.core.pregenerator; import com.volmit.iris.util.collection.KList; +import com.volmit.iris.util.mantle.Mantle; import com.volmit.iris.util.math.Position2; import com.volmit.iris.util.math.Spiraled; import com.volmit.iris.util.math.Spiraler; diff --git a/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java b/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java index ceed620cf..3ab5f3e1c 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java @@ -18,6 +18,8 @@ package com.volmit.iris.core.pregenerator; +import com.volmit.iris.util.mantle.Mantle; + /** * Represents something that is capable of generating in chunks or regions, or both */ @@ -74,4 +76,6 @@ public interface PregeneratorMethod { * @param listener */ void generateChunk(int x, int z, PregenListener listener); + + Mantle getMantle(); } diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java b/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java index bd65bf4c0..73792366f 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java @@ -20,6 +20,7 @@ package com.volmit.iris.core.pregenerator.methods; import com.volmit.iris.core.pregenerator.PregenListener; import com.volmit.iris.core.pregenerator.PregeneratorMethod; +import com.volmit.iris.util.mantle.Mantle; import io.papermc.lib.PaperLib; import org.bukkit.World; @@ -64,4 +65,9 @@ public class AsyncOrMedievalPregenMethod implements PregeneratorMethod { public void generateChunk(int x, int z, PregenListener listener) { method.generateChunk(x, z, listener); } + + @Override + public Mantle getMantle() { + return method.getMantle(); + } } diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java b/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java index bc844d97a..da06c00e0 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java @@ -22,7 +22,9 @@ import com.volmit.iris.Iris; import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.pregenerator.PregenListener; import com.volmit.iris.core.pregenerator.PregeneratorMethod; +import com.volmit.iris.core.tools.IrisToolbelt; import com.volmit.iris.util.collection.KList; +import com.volmit.iris.util.mantle.Mantle; import com.volmit.iris.util.parallel.MultiBurst; import com.volmit.iris.util.scheduling.J; import io.papermc.lib.PaperLib; @@ -127,4 +129,14 @@ public class AsyncPregenMethod implements PregeneratorMethod { listener.onChunkGenerating(x, z); future.add(burst.complete(() -> completeChunk(x, z, listener))); } + + @Override + public Mantle getMantle() { + if(IrisToolbelt.isIrisWorld(world)) + { + return IrisToolbelt.access(world).getEngine().getMantle().getMantle(); + } + + return null; + } } diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java b/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java index 1842054fa..b3fc0c082 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java @@ -20,6 +20,7 @@ package com.volmit.iris.core.pregenerator.methods; import com.volmit.iris.core.pregenerator.PregenListener; import com.volmit.iris.core.pregenerator.PregeneratorMethod; +import com.volmit.iris.util.mantle.Mantle; public class DummyPregenMethod implements PregeneratorMethod { @Override @@ -56,4 +57,9 @@ public class DummyPregenMethod implements PregeneratorMethod { public void generateChunk(int x, int z, PregenListener listener) { } + + @Override + public Mantle getMantle() { + return null; + } } diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/HeadlessPregenMethod.java b/src/main/java/com/volmit/iris/core/pregenerator/methods/HeadlessPregenMethod.java index 971db5722..6a942da33 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/methods/HeadlessPregenMethod.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/methods/HeadlessPregenMethod.java @@ -22,6 +22,7 @@ import com.volmit.iris.core.pregenerator.PregenListener; import com.volmit.iris.core.pregenerator.PregeneratorMethod; import com.volmit.iris.engine.object.HeadlessWorld; import com.volmit.iris.engine.platform.HeadlessGenerator; +import com.volmit.iris.util.mantle.Mantle; import lombok.Getter; public class HeadlessPregenMethod implements PregeneratorMethod { @@ -73,4 +74,9 @@ public class HeadlessPregenMethod implements PregeneratorMethod { public void generateChunk(int x, int z, PregenListener listener) { throw new UnsupportedOperationException(); } + + @Override + public Mantle getMantle() { + return generator.getEngine().getMantle().getMantle(); + } } diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java b/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java index 78b8a4b70..23fc072cc 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java @@ -24,6 +24,7 @@ import com.volmit.iris.core.pregenerator.PregenListener; import com.volmit.iris.core.pregenerator.PregeneratorMethod; import com.volmit.iris.core.tools.IrisToolbelt; import com.volmit.iris.engine.object.HeadlessWorld; +import com.volmit.iris.util.mantle.Mantle; import com.volmit.iris.util.math.Position2; import org.bukkit.World; @@ -98,4 +99,14 @@ public class HybridPregenMethod implements PregeneratorMethod { public void generateChunk(int x, int z, PregenListener listener) { inWorld.generateChunk(x, z, listener); } + + @Override + public Mantle getMantle() { + if (headless == null) + { + return inWorld.getMantle(); + } + + return headless.getMantle(); + } } diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java b/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java index 3372a7aa8..9fa31a387 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java @@ -21,7 +21,9 @@ package com.volmit.iris.core.pregenerator.methods; import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.pregenerator.PregenListener; import com.volmit.iris.core.pregenerator.PregeneratorMethod; +import com.volmit.iris.core.tools.IrisToolbelt; import com.volmit.iris.util.collection.KList; +import com.volmit.iris.util.mantle.Mantle; import com.volmit.iris.util.scheduling.J; import org.bukkit.Chunk; import org.bukkit.World; @@ -105,4 +107,14 @@ public class MedievalPregenMethod implements PregeneratorMethod { listener.onChunkGenerated(x, z); })); } + + @Override + public Mantle getMantle() { + if(IrisToolbelt.isIrisWorld(world)) + { + return IrisToolbelt.access(world).getEngine().getMantle().getMantle(); + } + + return null; + } } diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/SyndicatePregenMethod.java b/src/main/java/com/volmit/iris/core/pregenerator/methods/SyndicatePregenMethod.java index 8b75241d5..ebc369d10 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/methods/SyndicatePregenMethod.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/methods/SyndicatePregenMethod.java @@ -34,6 +34,7 @@ import com.volmit.iris.core.pregenerator.syndicate.command.SyndicateOK; import com.volmit.iris.core.pregenerator.syndicate.command.SyndicateSendProgress; import com.volmit.iris.engine.object.IrisDimension; import com.volmit.iris.util.io.IO; +import com.volmit.iris.util.mantle.Mantle; import com.volmit.iris.util.scheduling.J; import lombok.Getter; import org.zeroturnaround.zip.ZipUtil; @@ -265,4 +266,9 @@ public class SyndicatePregenMethod implements PregeneratorMethod { public void generateChunk(int x, int z, PregenListener listener) { } + + @Override + public Mantle getMantle() { + return null; + } }