- Extracted shared style generator sampling to GeneratorSampling.sampleSharedGenerator

Ref.: https://github.com/VolmitSoftware/Iris/issues/1251
This commit is contained in:
CeeVeeR
2026-10-02 12:37:51 +02:00
parent 357f14e900
commit 318c1e100b
5 changed files with 15 additions and 7 deletions
@@ -8,7 +8,7 @@ import art.arcane.volmlib.util.math.RNG;
import org.junit.Test; import org.junit.Test;
import static art.arcane.iris.testsupport.GeneratorSampling.SAMPLE_BLOCKS; import static art.arcane.iris.testsupport.GeneratorSampling.SAMPLE_BLOCKS;
import static art.arcane.iris.testsupport.GeneratorSampling.sampleAtBlocks; import static art.arcane.iris.testsupport.GeneratorSampling.sampleSharedGenerator;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;
public class IrisBiomeChildrenGeneratorTest { public class IrisBiomeChildrenGeneratorTest {
@@ -38,7 +38,7 @@ public class IrisBiomeChildrenGeneratorTest {
} }
private double[] sampleSharedChildStyleGenerator(IrisGeneratorStyle childStyle) { private double[] sampleSharedChildStyleGenerator(IrisGeneratorStyle childStyle) {
return sampleAtBlocks(childStyle.create(deriveSharedChildStyleSeed(), packData), SAMPLE_BLOCKS); return sampleSharedGenerator(childStyle, deriveSharedChildStyleSeed(), packData);
} }
private static RNG deriveSharedChildStyleSeed() { private static RNG deriveSharedChildStyleSeed() {
@@ -10,7 +10,7 @@ import art.arcane.volmlib.util.math.RNG;
import org.junit.Test; import org.junit.Test;
import static art.arcane.iris.testsupport.GeneratorSampling.SAMPLE_BLOCKS; import static art.arcane.iris.testsupport.GeneratorSampling.SAMPLE_BLOCKS;
import static art.arcane.iris.testsupport.GeneratorSampling.sampleAtBlocks; import static art.arcane.iris.testsupport.GeneratorSampling.sampleSharedGenerator;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;
public class IrisDecoratorVarianceGeneratorTest { public class IrisDecoratorVarianceGeneratorTest {
@@ -35,7 +35,7 @@ public class IrisDecoratorVarianceGeneratorTest {
} }
private double[] sampleSharedVarianceStyleGenerator(IrisGeneratorStyle varianceStyle) { private double[] sampleSharedVarianceStyleGenerator(IrisGeneratorStyle varianceStyle) {
return sampleAtBlocks(varianceStyle.create(decorator.deriveVarianceSeed(new RNG(WORLD_SEED), packData), packData), SAMPLE_BLOCKS); return sampleSharedGenerator(varianceStyle, decorator.deriveVarianceSeed(new RNG(WORLD_SEED), packData), packData);
} }
private static IrisDecorator createDecoratorWithZoomedSimplexVariance() { private static IrisDecorator createDecoratorWithZoomedSimplexVariance() {
@@ -11,6 +11,7 @@ import java.util.Arrays;
import static art.arcane.iris.testsupport.GeneratorSampling.SAMPLE_BLOCKS; import static art.arcane.iris.testsupport.GeneratorSampling.SAMPLE_BLOCKS;
import static art.arcane.iris.testsupport.GeneratorSampling.sampleAtBlocks; import static art.arcane.iris.testsupport.GeneratorSampling.sampleAtBlocks;
import static art.arcane.iris.testsupport.GeneratorSampling.sampleSharedGenerator;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;
public class ContinentGeneratorTest { public class ContinentGeneratorTest {
@@ -90,7 +91,7 @@ public class ContinentGeneratorTest {
} }
private double[] sampleSharedStyleGenerator(IrisGeneratorStyle style) { private double[] sampleSharedStyleGenerator(IrisGeneratorStyle style) {
return sampleAtBlocks(style.create(ContinentGenerator.deriveContinentSeed(new RNG(WORLD_SEED)), packData), SAMPLE_BLOCKS); return sampleSharedGenerator(style, ContinentGenerator.deriveContinentSeed(new RNG(WORLD_SEED)), packData);
} }
private double[] sampleContinentMap(IrisDimension dimension, double[][] blocks) { private double[] sampleContinentMap(IrisDimension dimension, double[][] blocks) {
@@ -8,7 +8,7 @@ import art.arcane.volmlib.util.math.RNG;
import org.junit.Test; import org.junit.Test;
import static art.arcane.iris.testsupport.GeneratorSampling.SAMPLE_BLOCKS; import static art.arcane.iris.testsupport.GeneratorSampling.SAMPLE_BLOCKS;
import static art.arcane.iris.testsupport.GeneratorSampling.sampleAtBlocks; import static art.arcane.iris.testsupport.GeneratorSampling.sampleSharedGenerator;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;
public class IrisDimensionCarvingEntryTest { public class IrisDimensionCarvingEntryTest {
@@ -34,7 +34,7 @@ public class IrisDimensionCarvingEntryTest {
} }
private double[] sampleSharedChildStyleGenerator(IrisGeneratorStyle childStyle) { private double[] sampleSharedChildStyleGenerator(IrisGeneratorStyle childStyle) {
return sampleAtBlocks(childStyle.create(deriveSharedChildStyleSeed(), packData), SAMPLE_BLOCKS); return sampleSharedGenerator(childStyle, deriveSharedChildStyleSeed(), packData);
} }
private RNG deriveSharedChildStyleSeed() { private RNG deriveSharedChildStyleSeed() {
@@ -1,5 +1,8 @@
package art.arcane.iris.testsupport; package art.arcane.iris.testsupport;
import art.arcane.iris.generation.noise.IrisGeneratorStyle;
import art.arcane.iris.pack.loading.IrisData;
import art.arcane.volmlib.util.math.RNG;
import art.arcane.volmlib.util.noise.CNG; import art.arcane.volmlib.util.noise.CNG;
import java.util.Arrays; import java.util.Arrays;
@@ -10,6 +13,10 @@ public final class GeneratorSampling {
private GeneratorSampling() { private GeneratorSampling() {
} }
public static double[] sampleSharedGenerator(IrisGeneratorStyle style, RNG seed, IrisData packData) {
return sampleAtBlocks(style.create(seed, packData), SAMPLE_BLOCKS);
}
public static double[] sampleAtBlocks(CNG generator, double[][] blocks) { public static double[] sampleAtBlocks(CNG generator, double[][] blocks) {
return Arrays.stream(blocks).mapToDouble(block -> sampleAt(generator, block)).toArray(); return Arrays.stream(blocks).mapToDouble(block -> sampleAt(generator, block)).toArray();
} }