diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-12-14 13:14:58 +0100 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-12-14 13:14:58 +0100 |
commit | 6436fe73ca29c63da0fae746f0892b453e066133 (patch) | |
tree | 5c45ac1387b97d8baada66a3edfff07b57b6286c /src | |
parent | "& 0x0f" isn't needed (diff) | |
parent | Clang needs the libstdc++ that comes with gcc-4.8 (diff) | |
download | cuberite-6436fe73ca29c63da0fae746f0892b453e066133.tar cuberite-6436fe73ca29c63da0fae746f0892b453e066133.tar.gz cuberite-6436fe73ca29c63da0fae746f0892b453e066133.tar.bz2 cuberite-6436fe73ca29c63da0fae746f0892b453e066133.tar.lz cuberite-6436fe73ca29c63da0fae746f0892b453e066133.tar.xz cuberite-6436fe73ca29c63da0fae746f0892b453e066133.tar.zst cuberite-6436fe73ca29c63da0fae746f0892b453e066133.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/Generating/Caves.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/Generating/Caves.cpp b/src/Generating/Caves.cpp index e4735cb83..1e8dbef90 100644 --- a/src/Generating/Caves.cpp +++ b/src/Generating/Caves.cpp @@ -100,6 +100,7 @@ public: void ProcessChunk( int a_ChunkX, int a_ChunkZ, cChunkDef::BlockTypes & a_BlockTypes, + cChunkDesc::BlockNibbleBytes & a_BlockMetas, cChunkDef::HeightMap & a_HeightMap ); @@ -455,6 +456,7 @@ void cCaveTunnel::CalcBoundingBox(void) void cCaveTunnel::ProcessChunk( int a_ChunkX, int a_ChunkZ, cChunkDef::BlockTypes & a_BlockTypes, + cChunkDesc::BlockNibbleBytes & a_BlockMetas, cChunkDef::HeightMap & a_HeightMap ) { @@ -505,6 +507,22 @@ void cCaveTunnel::ProcessChunk( cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_AIR); } } + else if (SqDist <= SqRad * 2) + { + if (cChunkDef::GetBlock(a_BlockTypes, x, y, z) == E_BLOCK_SAND) + { + int Index = cChunkDef::MakeIndexNoCheck(x, y, z); + if (a_BlockMetas[Index] == 1) + { + a_BlockMetas[Index] = 0; + cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_RED_SANDSTONE); + } + else + { + cChunkDef::SetBlock(a_BlockTypes, x, y, z, E_BLOCK_SANDSTONE); + } + } + } } // for y } // for x, z } // for itr - m_Points[] @@ -596,11 +614,12 @@ void cStructGenWormNestCaves::cCaveSystem::DrawIntoChunk(cChunkDesc & a_ChunkDes { int ChunkX = a_ChunkDesc.GetChunkX(); int ChunkZ = a_ChunkDesc.GetChunkZ(); - cChunkDef::BlockTypes & BlockTypes = a_ChunkDesc.GetBlockTypes(); - cChunkDef::HeightMap & HeightMap = a_ChunkDesc.GetHeightMap(); + cChunkDef::BlockTypes & BlockTypes = a_ChunkDesc.GetBlockTypes(); + cChunkDef::HeightMap & HeightMap = a_ChunkDesc.GetHeightMap(); + cChunkDesc::BlockNibbleBytes & BlockMetas = a_ChunkDesc.GetBlockMetasUncompressed(); for (cCaveTunnels::const_iterator itr = m_Tunnels.begin(), end = m_Tunnels.end(); itr != end; ++itr) { - (*itr)->ProcessChunk(ChunkX, ChunkZ, BlockTypes, HeightMap); + (*itr)->ProcessChunk(ChunkX, ChunkZ, BlockTypes, BlockMetas, HeightMap); } // for itr - m_Tunnels[] } |