add carver resolution config to pack.yml

This commit is contained in:
dfsek
2021-12-04 23:33:36 -07:00
parent 86336eea01
commit 2fa8831c63
3 changed files with 34 additions and 6 deletions

View File

@@ -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());

View File

@@ -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;
}
}

View File

@@ -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;