From 38482d26563d8ad4680dd018266eb5dccb2a5874 Mon Sep 17 00:00:00 2001
From: paramat <mat.gregory@virginmedia.com>
Date: Sat, 13 Jun 2015 01:26:56 +0100
Subject: [PATCH] Biome API: Enable biome generation to lower world limit

Decorations: Remove lower limit of water level for placement
---
 src/mapgen_v5.cpp     | 11 +++--------
 src/mapgen_v5.h       |  1 -
 src/mapgen_v7.cpp     | 11 +++--------
 src/mapgen_v7.h       |  2 --
 src/mg_decoration.cpp |  1 -
 5 files changed, 6 insertions(+), 20 deletions(-)

diff --git a/src/mapgen_v5.cpp b/src/mapgen_v5.cpp
index 7c2a149fb..92febf43b 100644
--- a/src/mapgen_v5.cpp
+++ b/src/mapgen_v5.cpp
@@ -327,11 +327,9 @@ void MapgenV5::calculateNoise()
 		noise_cave2->perlinMap3D(x, y, z);
 	}
 
-	if (node_max.Y >= BIOMEGEN_BASE_V5) {
-		noise_filler_depth->perlinMap2D(x, z);
-		noise_heat->perlinMap2D(x, z);
-		noise_humidity->perlinMap2D(x, z);
-	}
+	noise_filler_depth->perlinMap2D(x, z);
+	noise_heat->perlinMap2D(x, z);
+	noise_humidity->perlinMap2D(x, z);
 
 	//printf("calculateNoise: %dus\n", t.stop());
 }
@@ -396,9 +394,6 @@ int MapgenV5::generateBaseTerrain()
 
 MgStoneType MapgenV5::generateBiomes(float *heat_map, float *humidity_map)
 {
-	if (node_max.Y < BIOMEGEN_BASE_V5)
-		return STONE;
-
 	v3s16 em = vm->m_area.getExtent();
 	u32 index = 0;
 	MgStoneType stone_type = STONE;
diff --git a/src/mapgen_v5.h b/src/mapgen_v5.h
index e8455a46f..5575dfe61 100644
--- a/src/mapgen_v5.h
+++ b/src/mapgen_v5.h
@@ -23,7 +23,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "mapgen.h"
 
 #define LARGE_CAVE_DEPTH -256
-#define BIOMEGEN_BASE_V5 -192
 
 /////////////////// Mapgen V5 flags
 //#define MGV5_   0x01
diff --git a/src/mapgen_v7.cpp b/src/mapgen_v7.cpp
index be7212e0e..247d9debc 100644
--- a/src/mapgen_v7.cpp
+++ b/src/mapgen_v7.cpp
@@ -362,11 +362,9 @@ void MapgenV7::calculateNoise()
 		noise_mount_height->perlinMap2D(x, z);
 	}
 
-	if (node_max.Y >= BIOMEGEN_BASE_V7) {
-		noise_filler_depth->perlinMap2D(x, z);
-		noise_heat->perlinMap2D(x, z);
-		noise_humidity->perlinMap2D(x, z);
-	}
+	noise_filler_depth->perlinMap2D(x, z);
+	noise_heat->perlinMap2D(x, z);
+	noise_humidity->perlinMap2D(x, z);
 	//printf("calculateNoise: %dus\n", t.stop());
 }
 
@@ -591,9 +589,6 @@ void MapgenV7::generateRidgeTerrain()
 
 MgStoneType MapgenV7::generateBiomes(float *heat_map, float *humidity_map)
 {
-	if (node_max.Y < BIOMEGEN_BASE_V7)
-		return STONE;
-
 	v3s16 em = vm->m_area.getExtent();
 	u32 index = 0;
 	MgStoneType stone_type = STONE;
diff --git a/src/mapgen_v7.h b/src/mapgen_v7.h
index 84f0c9efa..eb46c371b 100644
--- a/src/mapgen_v7.h
+++ b/src/mapgen_v7.h
@@ -22,8 +22,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "mapgen.h"
 
-#define BIOMEGEN_BASE_V7 -192
-
 /////////////////// Mapgen V7 flags
 #define MGV7_MOUNTAINS   0x01
 #define MGV7_RIDGES      0x02
diff --git a/src/mg_decoration.cpp b/src/mg_decoration.cpp
index 5176ccb68..f133788de 100644
--- a/src/mg_decoration.cpp
+++ b/src/mg_decoration.cpp
@@ -129,7 +129,6 @@ size_t Decoration::placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
 			s16 y = mg->heightmap ?
 					mg->heightmap[mapindex] :
 					mg->findGroundLevel(v2s16(x, z), nmin.Y, nmax.Y);
-			y = MYMAX(y, mg->water_level);
 
 			if (y < nmin.Y || y > nmax.Y ||
 				y < y_min  || y > y_max)
-- 
GitLab