+ v3s16 p3d = block->getPos();
+
+ // Dummy blocks are not written
+ if (block->isDummy()) {
+ errorstream << "WARNING: saveBlock: Not writing dummy block "
+ << PP(p3d) << std::endl;
+ return true;
+ }
+
+ // Format used for writing
+ u8 version = SER_FMT_VER_HIGHEST_WRITE;
+
+ /*
+ [0] u8 serialization version
+ [1] data
+ */
+ std::ostringstream o(std::ios_base::binary);
+ o.write((char*) &version, 1);
+ block->serialize(o, version, true);
+
+ std::string data = o.str();
+ bool ret = db->saveBlock(p3d, data);
+ if(ret) {
+ // We just wrote it to the disk so clear modified flag
+ block->resetModified();
+ }
+ return ret;