Move MapBlock (de)serializing code out of Database class
[oweals/minetest.git] / src / database-dummy.cpp
1 /*
2 Minetest
3 Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation; either version 2.1 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19
20 /*
21 Dummy "database" class
22 */
23
24
25 #include "database-dummy.h"
26
27 #include "map.h"
28 #include "mapsector.h"
29 #include "mapblock.h"
30 #include "serialization.h"
31 #include "main.h"
32 #include "settings.h"
33 #include "log.h"
34
35 Database_Dummy::Database_Dummy(ServerMap *map)
36 {
37         srvmap = map;
38 }
39
40 int Database_Dummy::Initialized(void)
41 {
42         return 1;
43 }
44
45 void Database_Dummy::beginSave() {}
46 void Database_Dummy::endSave() {}
47
48 bool Database_Dummy::saveBlock(v3s16 blockpos, std::string &data)
49 {
50         m_database[getBlockAsInteger(blockpos)] = data;
51         return true;
52 }
53
54 std::string Database_Dummy::loadBlock(v3s16 blockpos)
55 {
56         if (m_database.count(getBlockAsInteger(blockpos)))
57                 return m_database[getBlockAsInteger(blockpos)];
58         else
59                 return "";
60 }
61
62 void Database_Dummy::listAllLoadableBlocks(std::list<v3s16> &dst)
63 {
64         for(std::map<u64, std::string>::iterator x = m_database.begin(); x != m_database.end(); ++x)
65         {
66                 v3s16 p = getIntegerAsBlock(x->first);
67                 //dstream<<"block_i="<<block_i<<" p="<<PP(p)<<std::endl;
68                 dst.push_back(p);
69         }
70 }
71
72 Database_Dummy::~Database_Dummy()
73 {
74         m_database.clear();
75 }