mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-26 14:00:26 +00:00
chore:
- Moved continent generator construction to ContinentGenerator Ref.: https://github.com/VolmitSoftware/Iris/issues/1251
This commit is contained in:
1 parent
0b6ac19fa7
commit
5bffa6eb04
2 files changed
+30
-14
No files matched your search
@@ -52,6 +52,7 @@ import art.arcane.iris.generation.decoration.IrisDecorationPart;
|
|||||||
import art.arcane.iris.generation.decoration.IrisDecorator;
|
import art.arcane.iris.generation.decoration.IrisDecorator;
|
||||||
import art.arcane.iris.generation.noise.IrisGenerator;
|
import art.arcane.iris.generation.noise.IrisGenerator;
|
||||||
import art.arcane.iris.generation.noise.IrisGeneratorStyle;
|
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.terrain.IrisDimension;
|
||||||
import art.arcane.iris.generation.context.IrisContext;
|
import art.arcane.iris.generation.context.IrisContext;
|
||||||
import art.arcane.iris.generation.noise.IrisInterpolator;
|
import art.arcane.iris.generation.noise.IrisInterpolator;
|
||||||
@@ -123,7 +124,6 @@ public class IrisComplex implements DataProvider {
|
|||||||
private static final double SLOPE_RUN = 3D;
|
private static final double SLOPE_RUN = 3D;
|
||||||
/** A sheer coast would let shoreMinimumWidth buy unbounded height, so the shore band stops climbing here. */
|
/** 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 double MAX_SHORE_BAND_GRADIENT = 3D;
|
||||||
private static final int CONTINENT_SEED_SALT = 234234565;
|
|
||||||
private static final Comparator<IrisInterpolator> INTERPOLATOR_ORDER = Comparator
|
private static final Comparator<IrisInterpolator> INTERPOLATOR_ORDER = Comparator
|
||||||
.comparing((IrisInterpolator interpolator) -> interpolator.getFunction().name())
|
.comparing((IrisInterpolator interpolator) -> interpolator.getFunction().name())
|
||||||
.thenComparingDouble(IrisInterpolator::getHorizontalScale);
|
.thenComparingDouble(IrisInterpolator::getHorizontalScale);
|
||||||
@@ -497,19 +497,7 @@ public class IrisComplex implements DataProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private CNG createContinentGenerator(IrisDimension dimension) {
|
private CNG createContinentGenerator(IrisDimension dimension) {
|
||||||
return scaleByContinentZoom(takeSharedContinentGenerator(dimension), dimension);
|
return ContinentGenerator.create(dimension, rng, getData());
|
||||||
}
|
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user