diff options
Diffstat (limited to 'src/Blocks/BlockLilypad.h')
-rw-r--r-- | src/Blocks/BlockLilypad.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/Blocks/BlockLilypad.h b/src/Blocks/BlockLilypad.h index c51eb0a3d..8ffc8fd20 100644 --- a/src/Blocks/BlockLilypad.h +++ b/src/Blocks/BlockLilypad.h @@ -19,6 +19,10 @@ public: { } + + + + virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) override { UNUSED(a_Meta); @@ -26,15 +30,19 @@ public: } - virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk) override + + + + virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, const Vector3i a_RelPos, const cChunk & a_Chunk) override { - if ((a_RelY < 1) || (a_RelY >= cChunkDef::Height)) + auto UnderPos = a_RelPos.addedY(-1); + if (!cChunkDef::IsValidHeight(UnderPos.y)) { return false; } BLOCKTYPE UnderType; NIBBLETYPE UnderMeta; - a_Chunk.GetBlockTypeMeta(a_RelX, a_RelY - 1, a_RelZ, UnderType, UnderMeta); + a_Chunk.GetBlockTypeMeta(UnderPos, UnderType, UnderMeta); return ( (((UnderType == E_BLOCK_STATIONARY_WATER) || (UnderType == E_BLOCK_WATER)) && (UnderMeta == 0)) || // A water source is below (UnderType == E_BLOCK_ICE) || (UnderType == E_BLOCK_FROSTED_ICE) // Or (frosted) ice |