-=================================================
-Minetest World Format used as of 0.4.dev-20120322
-=================================================
+=============================
+Minetest World Format 22...23
+=============================
-This applies to a world format carrying the block serialization version 22
-which is used at least in version 0.4.dev-20120322.
+This applies to a world format carrying the block serialization version
+22...23, used at least in 0.4.dev-20120322 ... 0.4.dev-20120606.
-The block serialization version used is 22. It does not fully specify every
-aspect of this format; if compliance with this format is to be checked, it
-needs to be done by detecting if the files and data indeed follows it.
+The block serialization version does not fully specify every aspect of this
+format; if compliance with this format is to be checked, it needs to be
+done by detecting if the files and data indeed follows it.
Legacy stuff
=============
Everything is contained in a directory, the name of which is freeform, but
often serves as the name of the world.
-Currently the authentication and ban data is stored on a per-world basis. It
-can be copied over from an old world to a newly created world.
+Currently the authentication and ban data is stored on a per-world basis.
+It can be copied over from an old world to a newly created world.
World
|-- auth.txt ----- Authentication data
u16 content_size
u8[content_size] (content of metadata)
-u16 mapblockobject_count
-- Always 0
-- Should be removed in version 23 (TODO)
+- unused node timers (version will be 24 when they are actually used):
+if version == 23:
+ u8 unused version (always 0)
u8 static object version:
- Always 0
*/
if(disk)
{
- // Node timers
- if(version >= 23)
- m_node_timers.serialize(os);
+ // Version 23 doesn't actually contain node timers
+ // (this field should have not been added)
+ if(version == 23)
+ writeU8(os, 0);
+ // Node timers (uncomment when node timers are taken into use)
+ /*if(version >= 24)
+ m_node_timers.serialize(os);*/
// Static objects
m_static_objects.serialize(os);
if(disk)
{
// Node timers
- if(version >= 23){
+ if(version == 23)
+ // Read unused zero
+ readU8(is);
+ // Uncomment when node timers are taken into use
+ /*else if(version >= 24){
TRACESTREAM(<<"MapBlock::deSerialize "<<PP(getPos())
<<": Node timers"<<std::endl);
m_node_timers.deSerialize(is);
- }
+ }*/
// Static objects
TRACESTREAM(<<"MapBlock::deSerialize "<<PP(getPos())