RegionIO/internal/world
Master290 113a59e365 Resolve block names to the default state, not the first one
blocks.json lists a block's states in getPossibleStates() order -- the property
cartesian product -- and separately marks which one is the default. The parser
declared only id and properties, so the default flag was dropped on the floor
and nameToStateID returned states[0]. Those differ for 642 of the 1168 blocks.

What that produced, measured rather than guessed: every redstone vein in the
world was lit=true and glowing, every sunflower was placed as its own top half
with nothing under it, and oak stairs came out upside down and waterlogged. It
also quietly disagreed with the StateGrass, StateOakLog and StateOakLeaf
constants next door in encode.go, which are the real defaults.

Now it starts from the default state and applies the properties it recognises,
keeping the default's value for an unknown key or an illegal value -- which is
what vanilla does when it reads a palette entry. That matters on the disk path:
a chunk written with a property we no longer know used to decode to a random
corner state instead of something sane.

The signature grows an ok result, because air was doing double duty as both a
real block and "no such name".

Separately, blockPaletteEntry filled the Properties compound by ranging a Go
map. nbt.Compound preserves insertion order precisely so encoding is
deterministic, so saving one chunk twice produced different region-file bytes
for every multi-property block. Keys are sorted now.
2026-07-27 03:35:39 +03:00
..
testdata Implement multiplayer persistence and vanilla lighting 2026-07-21 09:21:44 +03:00
aquifer_verify_test.go Implement the vanilla Aquifer; stop flooding caves 2026-07-27 02:02:12 +03:00
banding_verify_test.go Restore the subsurface layers: real above_preliminary_surface and surface depth 2026-07-27 02:15:14 +03:00
bench_test.go Initial commit: RegionIO Minecraft server core (26.1.2/protocol 775) 2026-06-24 00:32:51 +03:00
biome_3d_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
biome_bench_test.go 3D per-cell biomes (4x4x4) with surface/underground/cave layers 2026-06-24 01:04:01 +03:00
biome_lookup.go Biome-aware surface rules from the vanilla rule tree 2026-06-24 19:44:07 +03:00
biome_lookup_test.go 3D per-cell biomes (4x4x4) with surface/underground/cave layers 2026-06-24 01:04:01 +03:00
biome_parameters.json Initial commit: RegionIO Minecraft server core (26.1.2/protocol 775) 2026-06-24 00:32:51 +03:00
block_properties.bin Send three real heightmaps instead of one repeated three times 2026-07-27 03:27:09 +03:00
block_properties.go Send three real heightmaps instead of one repeated three times 2026-07-27 03:27:09 +03:00
blocks.json Chunk persistence to Anvil .mca region files 2026-06-25 00:40:14 +03:00
cache.go Fix terrain streaming and surface spawning 2026-07-21 11:11:19 +03:00
cache_light.go Fix terrain streaming and surface spawning 2026-07-21 11:11:19 +03:00
cache_light_reuse_test.go Fix terrain streaming and surface spawning 2026-07-21 11:11:19 +03:00
cache_test.go Implement multiplayer persistence and vanilla lighting 2026-07-21 09:21:44 +03:00
cache_tickets.go Implement ticketed chunk lifecycle 2026-07-21 10:04:56 +03:00
cache_tickets_test.go Implement ticketed chunk lifecycle 2026-07-21 10:04:56 +03:00
chunk.go Implement multiplayer persistence and vanilla lighting 2026-07-21 09:21:44 +03:00
compress.go Implement multiplayer persistence and vanilla lighting 2026-07-21 09:21:44 +03:00
deepslate_verify_test.go Bind the surface rule tree to the world seed 2026-07-27 02:25:09 +03:00
encode.go Write the section fluid count instead of a hardcoded zero 2026-07-27 03:28:49 +03:00
encode_test.go Write the section fluid count instead of a hardcoded zero 2026-07-27 03:28:49 +03:00
entity.go Implement multiplayer persistence and vanilla lighting 2026-07-21 09:21:44 +03:00
features.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
golden_test.go Implement multiplayer persistence and vanilla lighting 2026-07-21 09:21:44 +03:00
heightmap_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
item_blocks.json Initial commit: RegionIO Minecraft server core (26.1.2/protocol 775) 2026-06-24 00:32:51 +03:00
items.go Initial commit: RegionIO Minecraft server core (26.1.2/protocol 775) 2026-06-24 00:32:51 +03:00
light.go Implement ticketed chunk lifecycle 2026-07-21 10:04:56 +03:00
light_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
regionfile.go Implement multiplayer persistence and vanilla lighting 2026-07-21 09:21:44 +03:00
spawn_surface_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
state_names.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
state_names_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
store.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
store_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
surface_verify_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
terrain.go Implement multiplayer persistence and vanilla lighting 2026-07-21 09:21:44 +03:00
terrain_bench_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
terrain_debug_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
vanilla.go Real badlands clay bands and a real biome temperature table 2026-07-27 02:31:10 +03:00
vanilla_bench_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
vanilla_parity_test.go Resolve block names to the default state, not the first one 2026-07-27 03:35:39 +03:00
worldtime_test.go Run the world clock so day and night happen 2026-07-27 02:45:28 +03:00