@@ -34,13 +34,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
34
34
#include " log.h"
35
35
#include " map.h"
36
36
#include " mapblock.h"
37
- #include " mapgen_flat.h"
38
- #include " mapgen_fractal.h"
39
- #include " mapgen_v5.h"
40
- #include " mapgen_v6.h"
41
- #include " mapgen_v7.h"
42
- #include " mapgen_valleys.h"
43
- #include " mapgen_singlenode.h"
44
37
#include " mg_biome.h"
45
38
#include " mg_ore.h"
46
39
#include " mg_decoration.h"
@@ -53,13 +46,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
53
46
#include " settings.h"
54
47
#include " voxel.h"
55
48
56
-
57
- struct MapgenDesc {
58
- const char *name;
59
- MapgenFactory *factory;
60
- bool is_user_visible;
61
- };
62
-
63
49
class EmergeThread : public Thread {
64
50
public:
65
51
bool enable_mapgen_debug_info;
@@ -99,20 +85,6 @@ class EmergeThread : public Thread {
99
85
friend class EmergeManager ;
100
86
};
101
87
102
- // //
103
- // // Built-in mapgens
104
- // //
105
-
106
- MapgenDesc g_reg_mapgens[] = {
107
- {" v5" , new MapgenFactoryV5, true },
108
- {" v6" , new MapgenFactoryV6, true },
109
- {" v7" , new MapgenFactoryV7, true },
110
- {" flat" , new MapgenFactoryFlat, true },
111
- {" fractal" , new MapgenFactoryFractal, true },
112
- {" valleys" , new MapgenFactoryValleys, true },
113
- {" singlenode" , new MapgenFactorySinglenode, false },
114
- };
115
-
116
88
// //
117
89
// // EmergeManager
118
90
// //
@@ -195,24 +167,24 @@ void EmergeManager::initMapgens()
195
167
if (m_mapgens.size ())
196
168
return ;
197
169
198
- MapgenFactory *mgfactory = getMapgenFactory (params.mg_name );
199
- if (!mgfactory) {
170
+ MapgenType mgtype = Mapgen::getMapgenType (params.mg_name );
171
+ if (mgtype == MAPGEN_INVALID) {
172
+ const char *default_mapgen_name = Mapgen::getMapgenName (MAPGEN_DEFAULT);
200
173
errorstream << " EmergeManager: mapgen " << params.mg_name <<
201
- " not registered; falling back to " << DEFAULT_MAPGEN << std::endl;
202
-
203
- params.mg_name = DEFAULT_MAPGEN;
174
+ " not registered; falling back to " <<
175
+ default_mapgen_name << std::endl;
204
176
205
- mgfactory = getMapgenFactory ( params.mg_name ) ;
206
- FATAL_ERROR_IF (mgfactory == NULL , " Couldn't use any mapgen! " ) ;
177
+ params.mg_name = default_mapgen_name ;
178
+ mgtype = MAPGEN_DEFAULT ;
207
179
}
208
180
209
181
if (!params.sparams ) {
210
- params.sparams = mgfactory-> createMapgenParams ();
182
+ params.sparams = Mapgen:: createMapgenParams (mgtype );
211
183
params.sparams ->readParams (g_settings);
212
184
}
213
185
214
186
for (u32 i = 0 ; i != m_threads.size (); i++) {
215
- Mapgen *mg = mgfactory-> createMapgen (i, ¶ms, this );
187
+ Mapgen *mg = Mapgen:: createMapgen (mgtype, i, ¶ms, this );
216
188
m_mapgens.push_back (mg);
217
189
}
218
190
}
@@ -369,28 +341,6 @@ bool EmergeManager::isBlockUnderground(v3s16 blockpos)
369
341
return blockpos.Y * (MAP_BLOCKSIZE + 1 ) <= params.water_level ;
370
342
}
371
343
372
-
373
- void EmergeManager::getMapgenNames (
374
- std::vector<const char *> *mgnames, bool include_hidden)
375
- {
376
- for (u32 i = 0 ; i != ARRLEN (g_reg_mapgens); i++) {
377
- if (include_hidden || g_reg_mapgens[i].is_user_visible )
378
- mgnames->push_back (g_reg_mapgens[i].name );
379
- }
380
- }
381
-
382
-
383
- MapgenFactory *EmergeManager::getMapgenFactory (const std::string &mgname)
384
- {
385
- for (u32 i = 0 ; i != ARRLEN (g_reg_mapgens); i++) {
386
- if (mgname == g_reg_mapgens[i].name )
387
- return g_reg_mapgens[i].factory ;
388
- }
389
-
390
- return NULL ;
391
- }
392
-
393
-
394
344
bool EmergeManager::pushBlockEmergeData (
395
345
v3s16 pos,
396
346
u16 peer_requested,
0 commit comments