diff options
author | Mattes D <github@xoft.cz> | 2014-05-08 20:17:31 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-05-08 20:17:31 +0200 |
commit | ccf44f18d1258e7b75db36afdc39bc816f7c78fe (patch) | |
tree | 7a5a436db251e032af712374830d394753fccc83 /src/Blocks/BlockDirt.h | |
parent | cNetherFortGen uses cGridStructGen. (diff) | |
parent | Fixed MSVC 64-bit build warnings. (diff) | |
download | cuberite-ccf44f18d1258e7b75db36afdc39bc816f7c78fe.tar cuberite-ccf44f18d1258e7b75db36afdc39bc816f7c78fe.tar.gz cuberite-ccf44f18d1258e7b75db36afdc39bc816f7c78fe.tar.bz2 cuberite-ccf44f18d1258e7b75db36afdc39bc816f7c78fe.tar.lz cuberite-ccf44f18d1258e7b75db36afdc39bc816f7c78fe.tar.xz cuberite-ccf44f18d1258e7b75db36afdc39bc816f7c78fe.tar.zst cuberite-ccf44f18d1258e7b75db36afdc39bc816f7c78fe.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)) { |