mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-01 15:36:45 +00:00
initialize generators for isolated focus biomes / regions
This commit is contained in:
parent
0ae1334a57
commit
6f0b2b6bba
@ -108,10 +108,17 @@ public class IrisComplex implements DataProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//@builder
|
//@builder
|
||||||
engine.getDimension().getRegions().forEach((i) -> data.getRegionLoader().load(i)
|
if (focusRegion != null) {
|
||||||
.getAllBiomes(this).forEach((b) -> b
|
focusRegion.getAllBiomes(this).forEach(this::registerGenerators);
|
||||||
.getGenerators()
|
} else if (focusBiome != null) {
|
||||||
.forEach((c) -> registerGenerator(c.getCachedGenerator(this)))));
|
registerGenerators(focusBiome);
|
||||||
|
} else {
|
||||||
|
engine.getDimension()
|
||||||
|
.getRegions()
|
||||||
|
.forEach(i -> data.getRegionLoader().load(i)
|
||||||
|
.getAllBiomes(this)
|
||||||
|
.forEach(this::registerGenerators));
|
||||||
|
}
|
||||||
overlayStream = ProceduralStream.ofDouble((x, z) -> 0.0D).waste("Overlay Stream");
|
overlayStream = ProceduralStream.ofDouble((x, z) -> 0.0D).waste("Overlay Stream");
|
||||||
engine.getDimension().getOverlayNoise().forEach(i -> overlayStream = overlayStream.add((x, z) -> i.get(rng, getData(), x, z)));
|
engine.getDimension().getOverlayNoise().forEach(i -> overlayStream = overlayStream.add((x, z) -> i.get(rng, getData(), x, z)));
|
||||||
rockStream = engine.getDimension().getRockPalette().getLayerGenerator(rng.nextParallelRNG(45), data).stream()
|
rockStream = engine.getDimension().getRockPalette().getLayerGenerator(rng.nextParallelRNG(45), data).stream()
|
||||||
@ -360,6 +367,10 @@ public class IrisComplex implements DataProvider {
|
|||||||
return Math.max(Math.min(getInterpolatedHeight(engine, x, z, seed) + fluidHeight + overlayStream.get(x, z), engine.getHeight()), 0);
|
return Math.max(Math.min(getInterpolatedHeight(engine, x, z, seed) + fluidHeight + overlayStream.get(x, z), engine.getHeight()), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerGenerators(IrisBiome biome) {
|
||||||
|
biome.getGenerators().forEach(c -> registerGenerator(c.getCachedGenerator(this)));
|
||||||
|
}
|
||||||
|
|
||||||
private void registerGenerator(IrisGenerator cachedGenerator) {
|
private void registerGenerator(IrisGenerator cachedGenerator) {
|
||||||
generators.computeIfAbsent(cachedGenerator.getInterpolator(), (k) -> new KSet<>()).add(cachedGenerator);
|
generators.computeIfAbsent(cachedGenerator.getInterpolator(), (k) -> new KSet<>()).add(cachedGenerator);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user