The World format uses a BTDB database as a container.
It uses a Key Size of 5, and the Database Signature should
be "WRLDBV1.1
".
This format is used for each planet you visit as well as for your ship in orbit.
The World Metadata is stored in the database with a Key of
[0,0,0,0,0]
.
Uint32 | World Width | ||||||||||||||||||
Uint32 | World Height | ||||||||||||||||||
Packed | Metadata Length | ||||||||||||||||||
Metadata |
|
The World Tiles are stored in the database with a Key of [1,XH,XL,YH,YL].
Each database block contians a 32x32 array of tiles. So to get the block that contains the information for the tile at [9000,500], you'd use a Key of [1,0x01,0x19,0x00,0x0f].
The database block returned is then zlib compressed using the deflate algorithm (so use inflate to decompress it).
Then the uncompressed block has the following format:
Packed | Version |
Packed | Generation Level |
Tile[32*32] | Tiles |