summaryrefslogtreecommitdiffstats
path: root/src/Blocks/BlockLilypad.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Blocks/BlockLilypad.h')
-rw-r--r--src/Blocks/BlockLilypad.h14
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