codemetropolis / CodeMetropolis

See your software as never before.
http://codemetropolis.github.io/CodeMetropolis/
14 stars 30 forks source link

Update the entire project to support the latest stable Minecraft Java version (1.20) #372

Closed Sibi09 closed 3 weeks ago

Sibi09 commented 5 months ago

What might be interesting regarding the update:

Source

1.13:

The Flattening

1.14: JSON text components

  1. If there are no elements, returns empty string.
  2. If there are multiple elements, merges them with.

Chunk format

1.16:

Block storage format

Models

NBT tags

Superflat

World save files

World save format

1.17:

Technical

1.18: Structures

Chunk format

  1. Chunk’s Level.Biomes are now paletted and live in a similar container structure in Level.Sections[].biomes.
  2. Chunk’s Level.CarvingMasks[] is now long[] instead of byte[].
  3. Removed chunk’s Level and moved everything it contained up.
  4. Level.Entities has moved to entities.
  5. Level.TileEntities has moved to block_entities.
  6. Level.TileTicks and Level.ToBeTicked have moved to block_ticks.
  7. Level.LiquidTicks and Level.LiquidsToBeTicked have moved to fluid_ticks.
  8. Level.Sections has moved to sections.
  9. Level.Structures has moved to structures.
  10. Level.Structures.Starts has moved to structures.starts.
  11. Level.Sections[].block_states has moved to sections[].block_states.
  12. Level.Sections[].biomes has moved to sections[].biomes.
  13. Added yPos the minimum section y position in the chunk.
  14. Added below_zero_retrogen containing data to support below zero generation.
  15. Added blending_data containing data to support blending new world generation with existing chunks.
  16. Chunk render pipeline
  17. Changed the prioritization order.

1.19: Custom world generation

  1. monster_spawn_block_light_limit is an integer controlling the block light needed to prevent monster spawns.
  2. monster_spawn_light_level is an int provider which is evaluated to find a value to compare the current overall brightness with to determine if a monster should be allowed to spawn.