From ab382ef6b48b6a5b3714200cbc70563be7a83093 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Sat, 30 Nov 2013 11:45:23 +0000 Subject: [PATCH] Fixed thin snow CanBeAt checking Now takes into account the possibility that thin snow can be on top of full thin snow. --- src/Blocks/BlockSnow.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Blocks/BlockSnow.h b/src/Blocks/BlockSnow.h index dd4c49fb2..d7fd1e19e 100644 --- a/src/Blocks/BlockSnow.h +++ b/src/Blocks/BlockSnow.h @@ -67,7 +67,19 @@ public: virtual bool CanBeAt(int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk) override { - return (a_RelY > 0) && g_BlockIsSnowable[a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ)]; + if (a_RelY > 0) + { + BLOCKTYPE BlockBelow = a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ); + NIBBLETYPE MetaBelow = a_Chunk.GetMeta(a_RelX, a_RelY - 1, a_RelZ); + + if (g_BlockIsSnowable[BlockBelow] || ((BlockBelow == E_BLOCK_SNOW) && (MetaBelow == 7))) + { + // If block below is snowable, or it is a thin slow block and has a meta of 7 (full thin snow block), say yay + return true; + } + } + + return false; }