diff options
author | kwolekr <mirrorisim@gmail.com> | 2013-01-06 14:40:24 -0500 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2013-01-21 21:41:37 +0200 |
commit | 631a835e0782a2696762e3d55f75616f5a063394 (patch) | |
tree | 5f344ae788a50eb023e5d9fb92ed9478256c8f46 /src/server.cpp | |
parent | 45cf32afc5554d76f7f48268a8cab5a051638761 (diff) | |
download | minetest-631a835e0782a2696762e3d55f75616f5a063394.tar.gz minetest-631a835e0782a2696762e3d55f75616f5a063394.tar.bz2 minetest-631a835e0782a2696762e3d55f75616f5a063394.zip |
Finish and clean up mapgen configuration
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/server.cpp b/src/server.cpp index 03faace07..70f71e3fb 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -945,6 +945,7 @@ Server::Server( m_rollback_sink_enabled(true), m_enable_rollback_recording(false), m_emerge(NULL), + m_biomedef(NULL), m_lua(NULL), m_itemdef(createItemDefManager()), m_nodedef(createNodeDefManager()), @@ -984,8 +985,8 @@ Server::Server( infostream<<"- config: "<<m_path_config<<std::endl; infostream<<"- game: "<<m_gamespec.path<<std::endl; - // Create emerge manager - m_emerge = new EmergeManager(this, g_settings->getS16("use_mapgen_version")); + // Create biome definition manager + m_biomedef = new BiomeDefManager(this); // Create rollback manager std::string rollback_path = m_path_world+DIR_DELIM+"rollback.txt"; @@ -1094,19 +1095,23 @@ Server::Server( m_nodedef->updateAliases(m_itemdef); // Add default biomes after nodedef had its aliases added - if (m_emerge->biomedef) - m_emerge->biomedef->addDefaultBiomes(); + m_biomedef->addDefaultBiomes(); // Initialize Environment + ServerMap *servermap = new ServerMap(path_world, this); + m_env = new ServerEnvironment(servermap, m_lua, this, this); + + // Create emerge manager + m_emerge = new EmergeManager(this, m_biomedef, servermap->getMapgenParams()); - m_env = new ServerEnvironment(new ServerMap(path_world, this, m_emerge), m_lua, - this, this); + // Give map pointer to the emerge manager + servermap->setEmerge(m_emerge); // Give environment reference to scripting api scriptapi_add_environment(m_lua, m_env); // Register us to receive map edit events - m_env->getMap().addEventReceiver(this); + servermap->addEventReceiver(this); // If file exists, load environment metadata if(fs::PathExists(m_path_world+DIR_DELIM+"env_meta.txt")) @@ -4849,7 +4854,7 @@ v3f findSpawnPos(ServerMap &map) #endif #if 1 - s16 water_level = map.m_emerge->water_level; //g_settings->getS16("default_water_level"); + s16 water_level = map.m_mgparams->water_level; // Try to find a good place a few times for(s32 i=0; i<1000; i++) @@ -4874,7 +4879,7 @@ v3f findSpawnPos(ServerMap &map) continue; } - nodepos = v3s16(nodepos2d.X, groundheight-2, nodepos2d.Y); + nodepos = v3s16(nodepos2d.X, groundheight+1, nodepos2d.Y); bool is_good = false; s32 air_count = 0; for(s32 i=0; i<10; i++){ |