From 6f0b2b6bba3a12c5de46b721f12cb8f1c594def4 Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Fri, 27 Jun 2025 12:21:59 +0200 Subject: [PATCH] initialize generators for isolated focus biomes / regions --- .../com/volmit/iris/engine/IrisComplex.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/engine/IrisComplex.java b/core/src/main/java/com/volmit/iris/engine/IrisComplex.java index e92e6da84..652b728ca 100644 --- a/core/src/main/java/com/volmit/iris/engine/IrisComplex.java +++ b/core/src/main/java/com/volmit/iris/engine/IrisComplex.java @@ -108,10 +108,17 @@ public class IrisComplex implements DataProvider { } //@builder - engine.getDimension().getRegions().forEach((i) -> data.getRegionLoader().load(i) - .getAllBiomes(this).forEach((b) -> b - .getGenerators() - .forEach((c) -> registerGenerator(c.getCachedGenerator(this))))); + if (focusRegion != null) { + focusRegion.getAllBiomes(this).forEach(this::registerGenerators); + } else if (focusBiome != null) { + 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"); 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() @@ -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); } + private void registerGenerators(IrisBiome biome) { + biome.getGenerators().forEach(c -> registerGenerator(c.getCachedGenerator(this))); + } + private void registerGenerator(IrisGenerator cachedGenerator) { generators.computeIfAbsent(cachedGenerator.getInterpolator(), (k) -> new KSet<>()).add(cachedGenerator); }