fix palette fuzz noise config

This commit is contained in:
dfsek 2022-06-15 20:23:05 -07:00
parent 2001b4c6f8
commit 2c44857575
2 changed files with 9 additions and 7 deletions

View File

@ -35,6 +35,7 @@ public class NoiseChunkGenerator3DAddon implements AddonInitializer {
platform.getEventManager() platform.getEventManager()
.getHandler(FunctionalEventHandler.class) .getHandler(FunctionalEventHandler.class)
.register(addon, ConfigPackPreLoadEvent.class) .register(addon, ConfigPackPreLoadEvent.class)
.priority(1000)
.then(event -> { .then(event -> {
NoiseChunkGeneratorPackConfigTemplate config = event.loadTemplate(new NoiseChunkGeneratorPackConfigTemplate()); NoiseChunkGeneratorPackConfigTemplate config = event.loadTemplate(new NoiseChunkGeneratorPackConfigTemplate());

View File

@ -57,16 +57,15 @@ public class NoiseChunkGenerator3D implements ChunkGenerator {
this.samplerCache = new SamplerProvider(platform, elevationBlend); this.samplerCache = new SamplerProvider(platform, elevationBlend);
} }
private Biome getBiome(BiomeProvider biomeProvider, int x, int y, int z, long seed) { private Biome getBiome(double noiseX, double noiseZ, BiomeProvider biomeProvider, int x, int y, int z, long seed) {
if(paletteBlendAmplitude == 1) { if(paletteBlendAmplitude == 1) {
return biomeProvider.getBiome(x, y, z, seed); return biomeProvider.getBiome(x, y, z, seed);
} }
long ms = seed; int mx = FastMath.floorDiv(x + (int) (paletteBlendAmplitude * noiseX), paletteRes) * paletteRes;
int mx = FastMath.floorDiv(x + (int) (paletteBlendAmplitude * paletteBlendSampler.noise(seed++, x, y, z)), paletteRes) * paletteRes; int my = FastMath.floorDiv(y + (int) (paletteBlendAmplitude * paletteBlendSampler.noise(seed + 2, x, y, z)), paletteRes) * paletteRes;
int my = FastMath.floorDiv(y + (int) (paletteBlendAmplitude * paletteBlendSampler.noise(seed++, x, y, z)), paletteRes) * paletteRes; int mz = FastMath.floorDiv(z + (int) (paletteBlendAmplitude * noiseZ), paletteRes) * paletteRes;
int mz = FastMath.floorDiv(z + (int) (paletteBlendAmplitude * paletteBlendSampler.noise(seed, x, y, z)), paletteRes) * paletteRes;
return biomeProvider.getBiome(mx, my, mz, ms); return biomeProvider.getBiome(mx, my, mz, seed);
} }
@Override @Override
@ -92,6 +91,8 @@ public class NoiseChunkGenerator3D implements ChunkGenerator {
seed); seed);
for(int x = 0; x < 16; x++) { for(int x = 0; x < 16; x++) {
for(int z = 0; z < 16; z++) { for(int z = 0; z < 16; z++) {
double paletteNoiseX = paletteBlendSampler.noise(seed, x, z);
double paletteNoiseZ = paletteBlendSampler.noise(seed + 1, x, z);
int paletteLevel = 0; int paletteLevel = 0;
int cx = xOrig + x; int cx = xOrig + x;
@ -99,7 +100,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator {
BlockState data; BlockState data;
for(int y = world.getMaxHeight() - 1; y >= world.getMinHeight(); y--) { for(int y = world.getMaxHeight() - 1; y >= world.getMinHeight(); y--) {
Biome biome = getBiome(biomeProvider, cx, y, cz, seed); Biome biome = getBiome(paletteNoiseX, paletteNoiseZ, biomeProvider, cx, y, cz, seed);
PaletteInfo paletteInfo = biome.getContext().get(PaletteInfo.class); PaletteInfo paletteInfo = biome.getContext().get(PaletteInfo.class);