diff options
-rw-r--r-- | Server/Plugins/APIDump/APIDesc.lua | 17 | ||||
-rw-r--r-- | src/BiomeDef.cpp | 24 | ||||
-rw-r--r-- | src/BiomeDef.h | 3 | ||||
-rw-r--r-- | src/Generating/FinishGen.cpp | 21 |
4 files changed, 65 insertions, 0 deletions
diff --git a/Server/Plugins/APIDump/APIDesc.lua b/Server/Plugins/APIDump/APIDesc.lua index dd88eb7c5..e352f35a2 100644 --- a/Server/Plugins/APIDump/APIDesc.lua +++ b/Server/Plugins/APIDump/APIDesc.lua @@ -13647,6 +13647,23 @@ end }, Notes = "Returns true if the biome is mountainous (mutations of the extreme hills biome)." }, + IsBiomeMesa = + { + Params = + { + { + Name = "Biome", + Type = "EMCSBiome", + } + }, + Returns = + { + { + Type = "boolean", + }, + }, + Notes = "Returns true if the biome is type of Mesa (mutations of the Mesa biome)." + }, IsValidBlock = { Params = diff --git a/src/BiomeDef.cpp b/src/BiomeDef.cpp index ebb45f5e9..f56d9c815 100644 --- a/src/BiomeDef.cpp +++ b/src/BiomeDef.cpp @@ -246,6 +246,30 @@ bool IsBiomeMountain(EMCSBiome a_Biome) +bool IsBiomeMesa(EMCSBiome a_Biome) +{ + switch (a_Biome) + { + case biMesa: + case biMesaPlateauF: + case biMesaPlateau: + case biMesaBryce: + case biMesaPlateauFM: + case biMesaPlateauM: + { + return true; + } + default: + { + return false; + } + } +} + + + + + int GetSnowStartHeight(EMCSBiome a_Biome) { switch (a_Biome) diff --git a/src/BiomeDef.h b/src/BiomeDef.h index 888e3bb19..f8dea3e9f 100644 --- a/src/BiomeDef.h +++ b/src/BiomeDef.h @@ -154,6 +154,9 @@ extern bool IsBiomeCold(EMCSBiome a_Biome); /** Returns true if the biome is mountainous (mutations of the extreme hills biome) */ extern bool IsBiomeMountain(EMCSBiome a_Biome); +/** Returns true if the biome is Mesa or one of its mutations. */ +extern bool IsBiomeMesa(EMCSBiome a_Biome); + /** Returns the height when a biome when a biome starts snowing. */ extern int GetSnowStartHeight(EMCSBiome a_Biome); diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp index 90c3e6ea4..f9315333b 100644 --- a/src/Generating/FinishGen.cpp +++ b/src/Generating/FinishGen.cpp @@ -1769,6 +1769,27 @@ void cFinishGenOreNests::GenerateOre( } } + // Gold ores are generated more often in Mesa-Type-Biomes: + // https://minecraft.gamepedia.com/Gold_Ore + if (a_OreType == E_BLOCK_GOLD_ORE) + { + auto BiomeSampleOne = a_ChunkDesc.GetBiome( 4, 4); + auto BiomeSampleTwo = a_ChunkDesc.GetBiome( 4, 12); + auto BiomeSampleThree = a_ChunkDesc.GetBiome(12, 4); + auto BiomeSampleFour = a_ChunkDesc.GetBiome(12, 12); + + if ( + IsBiomeMesa(BiomeSampleOne) || + IsBiomeMesa(BiomeSampleTwo) || + IsBiomeMesa(BiomeSampleThree) || + IsBiomeMesa(BiomeSampleFour) + ) + { + a_MaxHeight = 76; + a_NumNests = 22; // 2 time default + 20 times mesa bonus + } + } + auto chunkX = a_ChunkDesc.GetChunkX(); auto chunkZ = a_ChunkDesc.GetChunkZ(); auto & blockTypes = a_ChunkDesc.GetBlockTypes(); |