The result of getBiomeColumnAt can change if the method is first invoked with different block coords in the same chunk (using the same TerrainGenerator object). For example, the code below outputs "minecraft:grass_block" (which is correct)
public static void main(String[] args) {
MCVersion version = MCVersion.v1_16_1;
long seed = 46;
OverworldBiomeSource biomeSource = new OverworldBiomeSource(version, seed);
OverworldTerrainGenerator terrainGenerator = new OverworldTerrainGenerator(biomeSource);
System.out.println(terrainGenerator.getBiomeColumnAt(165, 162)[67]);
}
However the following code outputs "minecraft:air"
public static void main(String[] args) {
MCVersion version = MCVersion.v1_16_1;
long seed = 46;
OverworldBiomeSource biomeSource = new OverworldBiomeSource(version, seed);
OverworldTerrainGenerator terrainGenerator = new OverworldTerrainGenerator(biomeSource);
terrainGenerator.getBiomeColumnAt(170, 175);
System.out.println(terrainGenerator.getBiomeColumnAt(165, 162)[67]);
}
I believe this is caused by generateBiomeColumnBefore. In particular, I think that x, z should instead be posX, posZ here:
|
Block[] buffer = columnProvider.apply(x, z); |
|
this.replaceBiomeBlocks(buffer, x, z, rand); |
The result of
getBiomeColumnAtcan change if the method is first invoked with different block coords in the same chunk (using the same TerrainGenerator object). For example, the code below outputs "minecraft:grass_block" (which is correct)However the following code outputs "minecraft:air"
I believe this is caused by
generateBiomeColumnBefore. In particular, I think thatx, zshould instead beposX, posZhere:mc_terrain_java/src/main/java/com/seedfinding/mcterrain/terrain/SurfaceGenerator.java
Lines 540 to 541 in a03e440