It seems like it might be something in either this method:
public int func_222529_a(int p_222529_1_, int p_222529_2_, Heightmap.Type heightmapType) {
int i = Math.floorDiv(p_222529_1_, this.horizontalNoiseGranularity);
int j = Math.floorDiv(p_222529_2_, this.horizontalNoiseGranularity);
int k = Math.floorMod(p_222529_1_, this.horizontalNoiseGranularity);
int l = Math.floorMod(p_222529_2_, this.horizontalNoiseGranularity);
double d0 = (double)k / (double)this.horizontalNoiseGranularity;
double d1 = (double)l / (double)this.horizontalNoiseGranularity;
double[][] adouble = new double[][]{this.func_222547_b(i, j), this.func_222547_b(i, j + 1), this.func_222547_b(i + 1, j), this.func_222547_b(i + 1, j + 1)};
int i1 = this.getSeaLevel();
for(int j1 = this.noiseSizeY - 1; j1 >= 0; --j1) {
double d2 = adouble[0][j1];
double d3 = adouble[1][j1];
double d4 = adouble[2][j1];
double d5 = adouble[3][j1];
double d6 = adouble[0][j1 + 1];
double d7 = adouble[1][j1 + 1];
double d8 = adouble[2][j1 + 1];
double d9 = adouble[3][j1 + 1];
for(int k1 = this.verticalNoiseGranularity - 1; k1 >= 0; --k1) {
double d10 = (double)k1 / (double)this.verticalNoiseGranularity;
double d11 = MathHelper.lerp3(d10, d0, d1, d2, d6, d4, d8, d3, d7, d5, d9);
int l1 = j1 * this.verticalNoiseGranularity + k1;
if (d11 > 0.0D || l1 < i1) {
BlockState blockstate;
if (d11 > 0.0D) {
blockstate = this.defaultBlock;
} else {
blockstate = this.defaultFluid;
}
if (heightmapType.getHeightLimitPredicate().test(blockstate)) {
return l1 + 1;
}
}
}
}
return 0;
}
or this method:
public void generateSurface(IChunk chunkIn) {
ChunkPos chunkpos = chunkIn.getPos();
int i = chunkpos.x;
int j = chunkpos.z;
SharedSeedRandom sharedseedrandom = new SharedSeedRandom();
sharedseedrandom.setBaseChunkSeed(i, j);
ChunkPos chunkpos1 = chunkIn.getPos();
int k = chunkpos1.getXStart();
int l = chunkpos1.getZStart();
double d0 = 0.0625D;
Biome[] abiome = chunkIn.getBiomes();
for(int i1 = 0; i1 < 16; ++i1) {
for(int j1 = 0; j1 < 16; ++j1) {
int k1 = k + i1;
int l1 = l + j1;
int i2 = chunkIn.getTopBlockY(Heightmap.Type.WORLD_SURFACE_WG, i1, j1) + 1;
double d1 = this.surfaceDepthNoise.noiseAt((double)k1 * 0.0625D, (double)l1 * 0.0625D, 0.0625D, (double)i1 * 0.0625D);
abiome[j1 * 16 + i1].buildSurface(sharedseedrandom, chunkIn, k1, l1, i2, d1, this.getSettings().getDefaultBlock(), this.getSettings().getDefaultFluid(), this.getSeaLevel(), this.world.getSeed());
}
}
this.makeBedrock(chunkIn, sharedseedrandom);
}
But I'm not sure what to change