Apollounknowndev / tectonic

Enhanced terrain generation with mountain ranges, underground rivers, and more
57 stars 7 forks source link

Legacy mode does not upgrade biomes #139

Closed Fisch37 closed 2 months ago

Fisch37 commented 2 months ago

This issue is redirected from an investigation at #48, I'll move the old info here when relevant, but I might miss something.

Versioning & Mods

What's going on?

When a world generated with Tectonic v1 is loaded in legacy mode in v2.1+ the legacy biomes are not replaced with the vanilla equivalents. This works fine while legacy mode is enabled, but as soon as it is turned off (as per #48 instruction) and the world loaded again, the legacy biomes all get replaced with minecraft:plains causing odd colouring and weather events in the old chunks.

Legacy mode on: 2024-04-23_15 06 59

Legacy mode off: grafik

The seed of the demo world is -1104266237529117800 (generated on 1.19.4 as seen below)

Steps to Reproduce

  1. Generate a world in 1.19.4 with Tectonic <2.0
  2. Find some Tectonic specific biome
  3. Leave the world
  4. Copy the world to a 1.20.4 instance with Tectonic >=2.1
  5. Start that instance
  6. Close the instance
  7. Enable legacy mode in the config (see #48)
  8. Start the instance again
  9. Open the copied world (verify tectonic/legacy is loaded via /datapack list or the logfile)
  10. Close the world & instance
  11. Disable legacy
  12. Start the instance and open the world

Everything from tectonic should now be minecraft:plains

Bonus

Doing this on 1.19.4 yields the same results regarding biomes, but also messes up the terrain. This is not the case on newer versions.

2024-04-23-2.log.gz 2024-04-23_15-30-26_Attempt 5.zip

Apollounknowndev commented 2 months ago

There's no way to datafix biomes to their closest vanilla equivalents, they simply revert to the default biomes (plains). The primary purpose of Legacy Mode is to make worlds openable again in any capacity.

Fisch37 commented 2 months ago

Check, although that does feel like something that should be noted in #48