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 fc44046c1..c0a4fb934 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 @@ -35,6 +35,7 @@ public class NoiseChunkGenerator3DAddon implements AddonInitializer { platform.getEventManager() .getHandler(FunctionalEventHandler.class) .register(addon, ConfigPackPreLoadEvent.class) + .priority(1000) .then(event -> { NoiseChunkGeneratorPackConfigTemplate config = event.loadTemplate(new NoiseChunkGeneratorPackConfigTemplate()); 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 b5fea266c..6151b5ce7 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 @@ -57,16 +57,15 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { 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) { return biomeProvider.getBiome(x, y, z, seed); } - long ms = seed; - 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++, x, y, z)), paletteRes) * paletteRes; - int mz = FastMath.floorDiv(z + (int) (paletteBlendAmplitude * paletteBlendSampler.noise(seed, x, y, z)), paletteRes) * paletteRes; + int mx = FastMath.floorDiv(x + (int) (paletteBlendAmplitude * noiseX), paletteRes) * paletteRes; + int my = FastMath.floorDiv(y + (int) (paletteBlendAmplitude * paletteBlendSampler.noise(seed + 2, x, y, z)), paletteRes) * paletteRes; + int mz = FastMath.floorDiv(z + (int) (paletteBlendAmplitude * noiseZ), paletteRes) * paletteRes; - return biomeProvider.getBiome(mx, my, mz, ms); + return biomeProvider.getBiome(mx, my, mz, seed); } @Override @@ -92,6 +91,8 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { seed); for(int x = 0; x < 16; x++) { 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 cx = xOrig + x; @@ -99,7 +100,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { BlockState data; 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);