diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-10-21 16:55:22 +0200 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-10-21 16:55:22 +0200 |
commit | 44514e53fc5ad19e57688bed610f804b6d28be33 (patch) | |
tree | 224fce184f6d59739d77828889025467ecfd1edf /src/Blocks/BlockVine.h | |
parent | Added distance check. (diff) | |
parent | Updated ProtectionAreas (diff) | |
download | cuberite-44514e53fc5ad19e57688bed610f804b6d28be33.tar cuberite-44514e53fc5ad19e57688bed610f804b6d28be33.tar.gz cuberite-44514e53fc5ad19e57688bed610f804b6d28be33.tar.bz2 cuberite-44514e53fc5ad19e57688bed610f804b6d28be33.tar.lz cuberite-44514e53fc5ad19e57688bed610f804b6d28be33.tar.xz cuberite-44514e53fc5ad19e57688bed610f804b6d28be33.tar.zst cuberite-44514e53fc5ad19e57688bed610f804b6d28be33.zip |
Diffstat (limited to 'src/Blocks/BlockVine.h')
-rw-r--r-- | src/Blocks/BlockVine.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/Blocks/BlockVine.h b/src/Blocks/BlockVine.h index 06d84f2d4..213324cc1 100644 --- a/src/Blocks/BlockVine.h +++ b/src/Blocks/BlockVine.h @@ -166,23 +166,31 @@ public: return false; } + virtual void OnUpdate(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_BlockPluginInterface, cChunk & a_Chunk, int a_RelX, int a_RelY, int a_RelZ) { UNUSED(a_ChunkInterface); UNUSED(a_WorldInterface); - UNUSED(a_BlockPluginInterface); + // Vine cannot grow down if at the bottom: + if (a_RelY < 1) + { + return; + } + + // Grow one block down, if possible: BLOCKTYPE Block; a_Chunk.UnboundedRelGetBlockType(a_RelX, a_RelY - 1, a_RelZ, Block); if (Block == E_BLOCK_AIR) { - if (!cRoot::Get()->GetPluginManager()->CallHookBlockSpread((cWorld*) &a_WorldInterface, a_RelX + a_Chunk.GetPosX() * cChunkDef::Width, a_RelY - 1, a_RelZ + a_Chunk.GetPosZ() * cChunkDef::Width, ssVineSpread)) + if (!a_BlockPluginInterface.CallHookBlockSpread(a_RelX + a_Chunk.GetPosX() * cChunkDef::Width, a_RelY - 1, a_RelZ + a_Chunk.GetPosZ() * cChunkDef::Width, ssVineSpread)) { a_Chunk.UnboundedRelSetBlock(a_RelX, a_RelY - 1, a_RelZ, E_BLOCK_VINES, a_Chunk.GetMeta(a_RelX, a_RelY, a_RelZ)); } } } + virtual NIBBLETYPE MetaRotateCCW(NIBBLETYPE a_Meta) override { return ((a_Meta >> 1) | (a_Meta << 3)) & 0x0f; // Rotate bits to the right |