From 6a5ebcd6ca95361b8a6ba9afc963850bf4cee913 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Fri, 19 Oct 2012 20:55:34 +0000 Subject: Ravines: Drill only through specific blocks (FS #259) git-svn-id: http://mc-server.googlecode.com/svn/trunk@983 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Generating/Ravines.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'source/Generating/Ravines.cpp') diff --git a/source/Generating/Ravines.cpp b/source/Generating/Ravines.cpp index c298033f9..af53259bc 100644 --- a/source/Generating/Ravines.cpp +++ b/source/Generating/Ravines.cpp @@ -502,7 +502,29 @@ void cStructGenRavines::cRavine::ProcessChunk( int Top = std::min(itr->m_Top, (int)(cChunkDef::Height)); // Stupid gcc needs int cast for (int y = std::max(itr->m_Bottom, 1); y <= Top; y++) { - cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_AIR); + switch (cChunkDef::GetBlock(a_BlockTypes, x, y, z)) + { + // Only carve out these specific block types + case E_BLOCK_DIRT: + case E_BLOCK_GRASS: + case E_BLOCK_STONE: + case E_BLOCK_COBBLESTONE: + case E_BLOCK_GRAVEL: + case E_BLOCK_SAND: + case E_BLOCK_SANDSTONE: + case E_BLOCK_NETHERRACK: + case E_BLOCK_COAL_ORE: + case E_BLOCK_IRON_ORE: + case E_BLOCK_GOLD_ORE: + case E_BLOCK_DIAMOND_ORE: + case E_BLOCK_REDSTONE_ORE: + case E_BLOCK_REDSTONE_ORE_GLOWING: + { + cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_AIR); + break; + } + default: break; + } } } } // for x, z - a_BlockTypes -- cgit v1.2.3