Ocean climate does not scale with biome size, but land climate does.
jr2760 opened this issue ยท 2 comments
Bug Report
What's the issue you encountered?
I tried changing the biome size in the config, and noticed that frozen oceans would sometimes appear next to deserts, and warm oceans would appear next to cold biomes.
Digging deeper, I created worlds with various biome sizes, and found this changes the distance between the coldest and warmest biomes, but not the distance between warm oceans and frozen oceans.
I also created a world with LATITUDE temperature, MEDIUM biome size, and found that the temperature function has a wavelength of 8000 blocks for both land and sea biomes (Meaning the warmest biomes and the coldest biomes are 4000 blocks apart in the Z direction). However, in a world with LATITUDE temperature and TINY biomes, temperature has a wavelength of 2000 blocks for land biomes, but still 8000 blocks for ocean biomes.
How can the issue be reproduced?
- Set biome_size = "LARGE" in generation.toml in the config directory.
- Launch Minecraft and create a new world in creative.
- Teleport to the nearest frozen_ocean and warm_ocean biomes, and look at the surrounding land biomes.
Logs
Screenshots
Mod Version
BiomesOPlenty-1.16.1-11.0.0.374-universal
It looks like the cause of the bug is in createAreaFactories() in this file.
I'm unable to test the code myself, but this is my guess from reading the code:
BOPMixOceansLayer and BOPBiomeLayer will compute the climate of ocean and land biomes respectively from the provided "climateFactory". The "biomesFactory" within createAreaFactories() will first get the land biomes added, and then a zoom is applied based on the biome size. After this the ocean biomes are added, but without the zoom to the "oceanBiomeFactory" and "climateFactory" inputs. This causes the "climeateFactory" to be used with a variable zoom level for land biomes but a constant zoom level for ocean biomes, so climates are not continuous across land-sea boundaries.