diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java index 4beb1ad6c..7f5482b5d 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java @@ -7,9 +7,9 @@ package com.dfsek.terra.addons.chunkgenerator; +import com.dfsek.terra.addons.chunkgenerator.config.NoiseChunkGeneratorPackConfigTemplate; import com.dfsek.terra.addons.chunkgenerator.config.noise.BiomeNoiseConfigTemplate; import com.dfsek.terra.addons.chunkgenerator.config.palette.BiomePaletteTemplate; -import com.dfsek.terra.addons.chunkgenerator.config.NoiseChunkGeneratorPackConfigTemplate; import com.dfsek.terra.addons.chunkgenerator.generation.NoiseChunkGenerator3D; import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolder; import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolderLoader; @@ -44,7 +44,8 @@ public class NoiseChunkGenerator3DAddon implements AddonInitializer { event.getPack() .getOrCreateRegistry(ChunkGeneratorProvider.class) .register("NOISE_3D", - pack -> new NoiseChunkGenerator3D(pack, platform, config.getElevationBlend())); + pack -> new NoiseChunkGenerator3D(pack, platform, config.getElevationBlend(), config.getHorizontalRes(), + config.getVerticalRes())); event.getPack() .applyLoader(SlantHolder.class, new SlantHolderLoader()) .applyLoader(PaletteHolder.class, new PaletteHolderLoader()); diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/NoiseChunkGeneratorPackConfigTemplate.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/NoiseChunkGeneratorPackConfigTemplate.java index 881563aab..34dc23876 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/NoiseChunkGeneratorPackConfigTemplate.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/NoiseChunkGeneratorPackConfigTemplate.java @@ -13,7 +13,23 @@ public class NoiseChunkGeneratorPackConfigTemplate implements ConfigTemplate { @Default private @Meta int elevationBlend = 4; + @Value("carving.resolution.horizontal") + @Default + private @Meta int horizontalRes = 2; + + @Value("carving.resolution.vertical") + @Default + private @Meta int verticalRes = 4; + public int getElevationBlend() { return elevationBlend; } + + public int getHorizontalRes() { + return horizontalRes; + } + + public int getVerticalRes() { + return verticalRes; + } } diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java index fe5a81e62..e599253e3 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java @@ -14,7 +14,6 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; -import com.dfsek.terra.addons.chunkgenerator.config.noise.BiomeNoiseProperties; import com.dfsek.terra.addons.chunkgenerator.config.palette.PaletteInfo; import com.dfsek.terra.addons.chunkgenerator.generation.math.PaletteUtil; import com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation.LazilyEvaluatedInterpolator; @@ -42,9 +41,15 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { private final BlockState air; - public NoiseChunkGenerator3D(ConfigPack c, Platform platform, int elevationBlend) { + private final int carverHorizontalResolution; + private final int carverVerticalResolution; + + public NoiseChunkGenerator3D(ConfigPack c, Platform platform, int elevationBlend, int carverHorizontalResolution, + int carverVerticalResolution) { this.platform = platform; this.air = platform.getWorldHandle().air(); + this.carverHorizontalResolution = carverHorizontalResolution; + this.carverVerticalResolution = carverVerticalResolution; this.samplerCache = new SamplerProvider(platform, c.getBiomeProvider(), elevationBlend); c.getStages().forEach(stage -> generationStages.add(stage.newInstance(c))); } @@ -64,8 +69,14 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { long seed = world.getSeed(); - LazilyEvaluatedInterpolator carver = new LazilyEvaluatedInterpolator(world.getBiomeProvider(), chunkX, chunkZ, - world.getMaxHeight(), world.getMinHeight(), 2, 4, seed); + LazilyEvaluatedInterpolator carver = new LazilyEvaluatedInterpolator(world.getBiomeProvider(), + chunkX, + chunkZ, + world.getMaxHeight(), + world.getMinHeight(), + carverHorizontalResolution, + carverVerticalResolution, + seed); for(int x = 0; x < 16; x++) { for(int z = 0; z < 16; z++) { int paletteLevel = 0;