Use a string identifier for a mapgen instead of version

This commit is contained in:
kwolekr 2013-01-21 13:40:05 -05:00 committed by Perttu Ahola
parent 318669327e
commit b87cd8c58b
4 changed files with 24 additions and 23 deletions

View File

@ -174,7 +174,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("remote_media", "");
//mapgen related things
settings->setDefault("mg_version", "6");
settings->setDefault("mg_name", "v6");
settings->setDefault("water_level", "1");
settings->setDefault("chunksize", "5");
settings->setDefault("mg_flags", "19");

View File

@ -3079,15 +3079,15 @@ void ServerMap::saveMapMeta()
Settings params;
params.setS16("mg_version", m_emerge->params->mg_version);
params.set("mg_name", m_emerge->params->mg_name);
params.setU64("seed", m_emerge->params->seed);
params.setS16("water_level", m_emerge->params->water_level);
params.setS16("chunksize", m_emerge->params->chunksize);
params.setS32("mg_flags", m_emerge->params->flags);
switch (m_emerge->params->mg_version) {
/* switch (m_emerge->params->mg_version) {
case 6:
{
{*/
MapgenV6Params *v6params = (MapgenV6Params *)m_emerge->params;
params.setFloat("mgv6_freq_desert", v6params->freq_desert);
@ -3101,11 +3101,11 @@ void ServerMap::saveMapMeta()
params.setNoiseParams("mgv6_np_beach", v6params->np_beach);
params.setNoiseParams("mgv6_np_biome", v6params->np_biome);
params.setNoiseParams("mgv6_np_cave", v6params->np_cave);
break;
/* break;
}
default:
; //complain here
}
}*/
params.writeLines(os);

View File

@ -78,16 +78,16 @@ EmergeManager::~EmergeManager() {
Mapgen *EmergeManager::getMapgen() {
if (!mapgen) {
switch (params->mg_version) {
case 6:
/*switch (params->mg_version) {
case 6:*/
mapgen = new MapgenV6(0, (MapgenV6Params *)params);
break;
/* break;
default:
errorstream << "EmergeManager: Unsupported mapgen version "
<< params->mg_version << ", falling back to V6" << std::endl;
params->mg_version = 6;
mapgen = new MapgenV6(0, (MapgenV6Params *)params);
}
}*/
}
return mapgen;
}
@ -127,28 +127,29 @@ u32 EmergeManager::getBlockSeed(v3s16 p) {
}
MapgenParams *MapgenParams::createMapgenParams(int mgver) {
switch (mgver) {
MapgenParams *MapgenParams::createMapgenParams(std::string &mgstr) {
return new MapgenV6Params(); // this will be fixed later
/*switch (mgver) {
case 6:
return new MapgenV6Params();
default: //instead of complaining, default to 6
return new MapgenV6Params();
}
}*/
}
MapgenParams *MapgenParams::getParamsFromSettings(Settings *settings) {
int mg_version = settings->getS16("mg_version");
MapgenParams *mgparams = MapgenParams::createMapgenParams(mg_version);
mgparams->mg_version = mg_version;
std::string mg_name = settings->get("mg_name");
MapgenParams *mgparams = MapgenParams::createMapgenParams(mg_name);
mgparams->mg_name = mg_name;
mgparams->seed = settings->getU64(settings == g_settings ? "fixed_map_seed" : "seed");
mgparams->water_level = settings->getS16("water_level");
mgparams->chunksize = settings->getS16("chunksize");
mgparams->flags = settings->getS32("mg_flags");
switch (mg_version) {
/* switch (mg_version) {
case 6:
{
{*/
MapgenV6Params *v6params = (MapgenV6Params *)mgparams;
v6params->freq_desert = settings->getFloat("mgv6_freq_desert");
@ -170,13 +171,13 @@ MapgenParams *MapgenParams::getParamsFromSettings(Settings *settings) {
delete mgparams;
return NULL;
}
/*
break;
}
default:
delete mgparams;
return NULL;
}
}*/
return mgparams;

View File

@ -83,21 +83,21 @@ struct BlockMakeData {
struct MapgenParams {
int mg_version;
std::string mg_name;
int chunksize;
u64 seed;
int water_level;
u32 flags;
MapgenParams() {
mg_version = 6;
mg_name = "v6";
seed = 0;
water_level = 1;
chunksize = 5;
flags = MG_TREES | MG_CAVES | MGV6_BIOME_BLEND;
}
static MapgenParams *createMapgenParams(int mgver);
static MapgenParams *createMapgenParams(std::string &mgname);
static MapgenParams *getParamsFromSettings(Settings *settings);
};