diff options
author | Mattes D <github@xoft.cz> | 2014-05-10 21:27:57 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-05-10 21:27:57 +0200 |
commit | 28815252e6ff086c0fab7cf56be4839f3d8612a3 (patch) | |
tree | 4532e85cbcc873a2616147713e9f899ecf84d111 /src/Blocks/BlockDirt.h | |
parent | Client cert is not requested. (diff) | |
parent | Merge pull request #993 from mc-server/GridStructGen (diff) | |
download | cuberite-28815252e6ff086c0fab7cf56be4839f3d8612a3.tar cuberite-28815252e6ff086c0fab7cf56be4839f3d8612a3.tar.gz cuberite-28815252e6ff086c0fab7cf56be4839f3d8612a3.tar.bz2 cuberite-28815252e6ff086c0fab7cf56be4839f3d8612a3.tar.lz cuberite-28815252e6ff086c0fab7cf56be4839f3d8612a3.tar.xz cuberite-28815252e6ff086c0fab7cf56be4839f3d8612a3.tar.zst cuberite-28815252e6ff086c0fab7cf56be4839f3d8612a3.zip |
Diffstat (limited to 'src/Blocks/BlockDirt.h')
-rw-r--r-- | src/Blocks/BlockDirt.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/Blocks/BlockDirt.h b/src/Blocks/BlockDirt.h index aa24b8668..2d4fccbac 100644 --- a/src/Blocks/BlockDirt.h +++ b/src/Blocks/BlockDirt.h @@ -35,8 +35,10 @@ public: // Grass becomes dirt if there is something on top of it: if (a_RelY < cChunkDef::Height - 1) { - BLOCKTYPE Above = a_Chunk.GetBlock(a_RelX, a_RelY + 1, a_RelZ); - if ((!cBlockInfo::IsTransparent(Above) && !cBlockInfo::IsOneHitDig(Above)) || IsBlockWater(Above)) + BLOCKTYPE Above; + NIBBLETYPE AboveMeta; + a_Chunk.GetBlockTypeMeta(a_RelX, a_RelY + 1, a_RelZ, Above, AboveMeta); + if (!cBlockInfo::GetHandler(Above)->CanDirtGrowGrass(AboveMeta)) { a_Chunk.FastSetBlock(a_RelX, a_RelY, a_RelZ, E_BLOCK_DIRT, E_META_DIRT_NORMAL); return; @@ -77,7 +79,7 @@ public: BLOCKTYPE AboveDest; NIBBLETYPE AboveMeta; Chunk->GetBlockTypeMeta(BlockX, BlockY + 1, BlockZ, AboveDest, AboveMeta); - if ((cBlockInfo::IsOneHitDig(AboveDest) || cBlockInfo::IsTransparent(AboveDest)) && !IsBlockWater(AboveDest)) + if (cBlockInfo::GetHandler(AboveDest)->CanDirtGrowGrass(AboveMeta)) { if (!cRoot::Get()->GetPluginManager()->CallHookBlockSpread((cWorld*) &a_WorldInterface, BlockX * cChunkDef::Width, BlockY, BlockZ * cChunkDef::Width, ssGrassSpread)) { |