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 ca2d8bc69..f2f0c9386 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 @@ -58,7 +58,8 @@ public class NoiseChunkGenerator3DAddon implements AddonInitializer { pack -> new NoiseChunkGenerator3D(pack, platform, config.getElevationBlend(), config.getHorizontalRes(), config.getVerticalRes(), noisePropertiesPropertyKey, - paletteInfoPropertyKey, config.getSlantCalculationMethod())); + paletteInfoPropertyKey, config.getSlantCalculationMethod(), + config.isSlantPalettesEnabled())); event.getPack() .applyLoader(SlantHolder.Layer.class, SlantLayerTemplate::new); }) 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 b1f32c68a..ae1f1ca4a 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 @@ -26,6 +26,10 @@ public class NoiseChunkGeneratorPackConfigTemplate implements ConfigTemplate, Pr @Default private @Meta SlantCalculationMethod slantCalculationMethod = SlantCalculationMethod.Derivative; + @Value("slant.disable-palettes") + @Default + private @Meta boolean disableSlantPalettes = false; + public int getElevationBlend() { return elevationBlend; } @@ -41,4 +45,8 @@ public class NoiseChunkGeneratorPackConfigTemplate implements ConfigTemplate, Pr public SlantCalculationMethod getSlantCalculationMethod() { return slantCalculationMethod; } + + public boolean isSlantPalettesEnabled() { + return !disableSlantPalettes; + } } 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 13cf69ace..95c2891cc 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 @@ -47,10 +47,13 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { private final SlantCalculationMethod slantCalculationMethod; + private final boolean useSlantPalettes; + public NoiseChunkGenerator3D(ConfigPack pack, Platform platform, int elevationBlend, int carverHorizontalResolution, int carverVerticalResolution, PropertyKey noisePropertiesKey, - PropertyKey paletteInfoPropertyKey, SlantCalculationMethod slantCalculationMethod) { + PropertyKey paletteInfoPropertyKey, + SlantCalculationMethod slantCalculationMethod, boolean useSlantPalettes) { this.platform = platform; this.air = platform.getWorldHandle().air(); this.carverHorizontalResolution = carverHorizontalResolution; @@ -58,6 +61,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { this.paletteInfoPropertyKey = paletteInfoPropertyKey; this.noisePropertiesKey = noisePropertiesKey; this.slantCalculationMethod = slantCalculationMethod; + this.useSlantPalettes = useSlantPalettes; int maxBlend = pack .getBiomeProvider() .stream() @@ -71,7 +75,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { private Palette paletteAt(int x, int y, int z, Sampler3D sampler, BiomePaletteInfo paletteInfo, int depth) { SlantHolder slantHolder = paletteInfo.slantHolder(); - if(slantHolder.isAboveDepth(depth)) { + if(useSlantPalettes && slantHolder.isAboveDepth(depth)) { double slant = slantCalculationMethod.slant(sampler, x, y, z); if(slantHolder.isInSlantThreshold(slant)) { return slantHolder.getPalette(slant).getPalette(y);