From 5bffa6eb0473e419fafdd343cb158e72a1f9a928 Mon Sep 17 00:00:00 2001 From: CeeVeeR Date: Fri, 2 Oct 2026 04:22:10 +0200 Subject: [PATCH] chore: - Moved continent generator construction to ContinentGenerator Ref.: https://github.com/VolmitSoftware/Iris/issues/1251 --- .../iris/generation/runtime/IrisComplex.java | 16 ++--------- .../terrain/ContinentGenerator.java | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 core/src/main/java/art/arcane/iris/generation/terrain/ContinentGenerator.java diff --git a/core/src/main/java/art/arcane/iris/generation/runtime/IrisComplex.java b/core/src/main/java/art/arcane/iris/generation/runtime/IrisComplex.java index b13417024..f737ec417 100644 --- a/core/src/main/java/art/arcane/iris/generation/runtime/IrisComplex.java +++ b/core/src/main/java/art/arcane/iris/generation/runtime/IrisComplex.java @@ -52,6 +52,7 @@ import art.arcane.iris.generation.decoration.IrisDecorationPart; import art.arcane.iris.generation.decoration.IrisDecorator; import art.arcane.iris.generation.noise.IrisGenerator; import art.arcane.iris.generation.noise.IrisGeneratorStyle; +import art.arcane.iris.generation.terrain.ContinentGenerator; import art.arcane.iris.generation.terrain.IrisDimension; import art.arcane.iris.generation.context.IrisContext; import art.arcane.iris.generation.noise.IrisInterpolator; @@ -123,7 +124,6 @@ public class IrisComplex implements DataProvider { private static final double SLOPE_RUN = 3D; /** A sheer coast would let shoreMinimumWidth buy unbounded height, so the shore band stops climbing here. */ private static final double MAX_SHORE_BAND_GRADIENT = 3D; - private static final int CONTINENT_SEED_SALT = 234234565; private static final Comparator INTERPOLATOR_ORDER = Comparator .comparing((IrisInterpolator interpolator) -> interpolator.getFunction().name()) .thenComparingDouble(IrisInterpolator::getHorizontalScale); @@ -497,19 +497,7 @@ public class IrisComplex implements DataProvider { } private CNG createContinentGenerator(IrisDimension dimension) { - return scaleByContinentZoom(takeSharedContinentGenerator(dimension), dimension); - } - - private CNG takeSharedContinentGenerator(IrisDimension dimension) { - return dimension.getContinentalStyle().create(createContinentSeedSource(), getData()); - } - - private RNG createContinentSeedSource() { - return rng.nextParallelRNG(CONTINENT_SEED_SALT); - } - - private static CNG scaleByContinentZoom(CNG generator, IrisDimension dimension) { - return generator.bake().scale(1D / dimension.getContinentZoom()).bake(); + return ContinentGenerator.create(dimension, rng, getData()); } /** diff --git a/core/src/main/java/art/arcane/iris/generation/terrain/ContinentGenerator.java b/core/src/main/java/art/arcane/iris/generation/terrain/ContinentGenerator.java new file mode 100644 index 000000000..aa6980f87 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/generation/terrain/ContinentGenerator.java @@ -0,0 +1,28 @@ +package art.arcane.iris.generation.terrain; + +import art.arcane.iris.pack.loading.IrisData; +import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.noise.CNG; + +public final class ContinentGenerator { + private static final int CONTINENT_SEED_SALT = 234234565; + + private ContinentGenerator() { + } + + public static CNG create(IrisDimension dimension, RNG parentSeedSource, IrisData packData) { + return scaleByContinentZoom(takeSharedGenerator(dimension, parentSeedSource, packData), dimension); + } + + private static CNG takeSharedGenerator(IrisDimension dimension, RNG parentSeedSource, IrisData packData) { + return dimension.getContinentalStyle().create(deriveContinentSeed(parentSeedSource), packData); + } + + private static RNG deriveContinentSeed(RNG parentSeedSource) { + return parentSeedSource.nextParallelRNG(CONTINENT_SEED_SALT); + } + + private static CNG scaleByContinentZoom(CNG generator, IrisDimension dimension) { + return generator.bake().scale(1D / dimension.getContinentZoom()).bake(); + } +}