From a5f109dafb147c3a5965cd638cc015a34f90362c Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Tue, 1 Feb 2011 23:59:46 +0200 Subject: [PATCH] Map generator tweaking. Still doesn't resume from save properly. --- src/map.cpp | 52 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/src/map.cpp b/src/map.cpp index 846581305..adf3f5f8e 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1913,7 +1913,7 @@ ServerMap::ServerMap(std::string savedir, HMParams hmp, MapParams mp): #endif // Add only one entry - list_baseheight->addPoint(v3s16(0,0,0), Attribute(0)); + list_baseheight->addPoint(v3s16(0,0,0), Attribute(-4)); list_randmax->addPoint(v3s16(0,0,0), Attribute(22)); //list_randmax->addPoint(v3s16(0,0,0), Attribute(0)); list_randfactor->addPoint(v3s16(0,0,0), Attribute(0.45)); @@ -2312,7 +2312,7 @@ MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos, // 0-100 // Usually little, sometimes huge //u32 stone_obstacle_amount = myrand_range(0, myrand_range(0, 100)); - u32 stone_obstacle_amount = myrand_range(0, 100); + u32 stone_obstacle_amount = myrand_range(0, myrand_range(20, 100)); /* Loop this part, it will make stuff look older and newer nicely @@ -2374,16 +2374,24 @@ MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos, // Go to ground level for(y=y_nodes_max; y>=y_nodes_min; y--) { - MapNode &n = vmanip.m_data[i]; + MapNode *n = &vmanip.m_data[i]; /*if(content_walkable(n.d) && n.d != CONTENT_MUD && n.d != CONTENT_GRASS) break;*/ - if(n.d == CONTENT_STONE) + if(n->d == CONTENT_STONE) break; - - if(n.d == CONTENT_MUD || n.d == CONTENT_GRASS) + + if(n->d == CONTENT_MUD || n->d == CONTENT_GRASS) + { mud_amount++; + /* + Change to mud because otherwise we might + be throwing mud on grass at the next + step + */ + n->d = CONTENT_MUD; + } vmanip.m_area.add_y(em, i, -1); } @@ -2443,24 +2451,21 @@ MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos, /* Make dungeons */ - u32 dungeons_count = relative_volume/200000; - for(u32 jj=0; jjabs(z0)?abs(x0):abs(z0); + s16 si2 = rs - maxabsxz; + //s16 si2 = rs - abs(x0); for(s16 y0=-si2+1; y0<=si2-1; y0++) { s16 z = cp.Z + z0; @@ -2973,7 +2983,7 @@ MapChunk* ServerMap::generateChunkRaw(v2s16 chunkpos, Plant some trees */ { - u32 tree_max = relative_area / 100; + u32 tree_max = relative_area / 60; u32 count = myrand_range(0, tree_max); for(u32 i=0; i