diff --git a/core/src/main/java/art/arcane/iris/generation/noise/IrisGeneratorStyle.java b/core/src/main/java/art/arcane/iris/generation/noise/IrisGeneratorStyle.java index ac3ad0426..7ae67270a 100644 --- a/core/src/main/java/art/arcane/iris/generation/noise/IrisGeneratorStyle.java +++ b/core/src/main/java/art/arcane/iris/generation/noise/IrisGeneratorStyle.java @@ -102,6 +102,10 @@ public class IrisGeneratorStyle { return createNoCache(rng, data, 1, 0, false, resolveEngine(data)); } + public CNG createScaledGenerator(RNG rng, IrisData data, double scaleFactor) { + return createNoCache(rng, data).bake().scale(scaleFactor).bake(); + } + public CNG createForLayer(RNG rng, IrisData data, int octaveMultiplier) { return createNoCache(rng, data, Math.clamp(octaveMultiplier, 1, 16), 0, false, resolveEngine(data)); } 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 index 4423d81b9..0d95de5ea 100644 --- a/core/src/main/java/art/arcane/iris/generation/terrain/ContinentGenerator.java +++ b/core/src/main/java/art/arcane/iris/generation/terrain/ContinentGenerator.java @@ -11,18 +11,18 @@ public final class ContinentGenerator { } public static CNG create(IrisDimension dimension, RNG parentSeedSource, IrisData packData) { - return scaleByContinentZoom(createContinentalStyleGenerator(dimension, parentSeedSource, packData), dimension); + return createScaledContinentalStyleGenerator(dimension, deriveContinentSeed(parentSeedSource), packData); } - private static CNG createContinentalStyleGenerator(IrisDimension dimension, RNG parentSeedSource, IrisData packData) { - return dimension.getContinentalStyle().createNoCache(deriveContinentSeed(parentSeedSource), packData); + private static CNG createScaledContinentalStyleGenerator(IrisDimension dimension, RNG continentSeed, IrisData packData) { + return dimension.getContinentalStyle().createScaledGenerator(continentSeed, packData, inverseContinentZoom(dimension)); } 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(); + private static double inverseContinentZoom(IrisDimension dimension) { + return 1D / dimension.getContinentZoom(); } }