From ca08a44c988ed7c295a43e9a0a9579b093e4abf4 Mon Sep 17 00:00:00 2001
From: Howaner <franzi.moos@googlemail.com>
Date: Thu, 3 Apr 2014 21:43:40 +0200
Subject: Grass now grows under up-side-down slabs

---
 src/Blocks/BlockDirt.h | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

(limited to 'src/Blocks/BlockDirt.h')

diff --git a/src/Blocks/BlockDirt.h b/src/Blocks/BlockDirt.h
index 91534c5e5..098494585 100644
--- a/src/Blocks/BlockDirt.h
+++ b/src/Blocks/BlockDirt.h
@@ -3,6 +3,7 @@
 
 #include "BlockHandler.h"
 #include "../MersenneTwister.h"
+#include "BlockSlab.h"
 
 
 
@@ -35,8 +36,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 ((!g_BlockTransparent[Above] && !g_BlockOneHitDig[Above]) || IsBlockWater(Above))
+			BLOCKTYPE Above;
+			NIBBLETYPE AboveMeta;
+			a_Chunk.GetBlockTypeMeta(a_RelX, a_RelY + 1, a_RelZ, Above, AboveMeta);
+			if ((!g_BlockTransparent[Above] && !g_BlockOneHitDig[Above] && !(cBlockSlabHandler::IsAnySlabType(Above) && (AboveMeta & 0x8))) || IsBlockWater(Above))
 			{
 				a_Chunk.FastSetBlock(a_RelX, a_RelY, a_RelZ, E_BLOCK_DIRT, E_META_DIRT_NORMAL);
 				return;
@@ -77,7 +80,7 @@ public:
 			BLOCKTYPE AboveDest;
 			NIBBLETYPE AboveMeta;
 			Chunk->GetBlockTypeMeta(BlockX, BlockY + 1, BlockZ, AboveDest, AboveMeta);
-			if ((g_BlockOneHitDig[AboveDest] || g_BlockTransparent[AboveDest]) && !IsBlockWater(AboveDest))
+			if ((g_BlockOneHitDig[AboveDest] || g_BlockTransparent[AboveDest] || ((cBlockSlabHandler::IsAnySlabType(AboveDest)) && (AboveMeta & 0x8))) && !IsBlockWater(AboveDest))
 			{
 				Chunk->FastSetBlock(BlockX, BlockY, BlockZ, E_BLOCK_GRASS, 0);
 			}
@@ -85,6 +88,12 @@ public:
 	}
 
 
+	bool IsGrowAble(BLOCKTYPE a_Block, NIBBLETYPE a_Meta)
+	{
+		
+	}
+
+
 	virtual const char * GetStepSound(void) override
 	{
 		return "step.gravel";
-- 
cgit v1.2.3


From cbb0352e51d1346b3ff7980f83696fedb0371a92 Mon Sep 17 00:00:00 2001
From: Howaner <franzi.moos@googlemail.com>
Date: Thu, 3 Apr 2014 21:44:23 +0200
Subject: Remove old function

---
 src/Blocks/BlockDirt.h | 6 ------
 1 file changed, 6 deletions(-)

(limited to 'src/Blocks/BlockDirt.h')

diff --git a/src/Blocks/BlockDirt.h b/src/Blocks/BlockDirt.h
index 098494585..2559f4839 100644
--- a/src/Blocks/BlockDirt.h
+++ b/src/Blocks/BlockDirt.h
@@ -88,12 +88,6 @@ public:
 	}
 
 
-	bool IsGrowAble(BLOCKTYPE a_Block, NIBBLETYPE a_Meta)
-	{
-		
-	}
-
-
 	virtual const char * GetStepSound(void) override
 	{
 		return "step.gravel";
-- 
cgit v1.2.3


From 039191499caec958d3d79773e4ed1c1c4e2916c2 Mon Sep 17 00:00:00 2001
From: Howaner <franzi.moos@googlemail.com>
Date: Sun, 6 Apr 2014 21:41:01 +0200
Subject: Add CanChangeDirtToGrass function to Block Handlers.

---
 src/Blocks/BlockDirt.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'src/Blocks/BlockDirt.h')

diff --git a/src/Blocks/BlockDirt.h b/src/Blocks/BlockDirt.h
index bde8e4201..84c8461b5 100644
--- a/src/Blocks/BlockDirt.h
+++ b/src/Blocks/BlockDirt.h
@@ -39,7 +39,7 @@ public:
 			BLOCKTYPE Above;
 			NIBBLETYPE AboveMeta;
 			a_Chunk.GetBlockTypeMeta(a_RelX, a_RelY + 1, a_RelZ, Above, AboveMeta);
-			if ((!cBlockInfo::IsTransparent(Above) && !cBlockInfo::IsOneHitDig(Above) && !(cBlockSlabHandler::IsAnySlabType(Above) && (AboveMeta & 0x8))) || IsBlockWater(Above))
+			if ((IsBlockWater(Above)) || !cBlockInfo::GetHandler(Above)->CanChangeDirtToGrass(Above, AboveMeta))
 			{
 				a_Chunk.FastSetBlock(a_RelX, a_RelY, a_RelZ, E_BLOCK_DIRT, E_META_DIRT_NORMAL);
 				return;
@@ -67,7 +67,7 @@ public:
 			cChunk * Chunk = a_Chunk.GetRelNeighborChunkAdjustCoords(BlockX, BlockZ);
 			if (Chunk == NULL)
 			{
-				// Unloaded chunk
+				// Unloaded chunks
 				continue;
 			}
 			Chunk->GetBlockTypeMeta(BlockX, BlockY, BlockZ, DestBlock, DestMeta);
@@ -80,7 +80,7 @@ public:
 			BLOCKTYPE AboveDest;
 			NIBBLETYPE AboveMeta;
 			Chunk->GetBlockTypeMeta(BlockX, BlockY + 1, BlockZ, AboveDest, AboveMeta);
-			if ((cBlockInfo::IsOneHitDig(AboveDest) || cBlockInfo::IsTransparent(AboveDest) || ((cBlockSlabHandler::IsAnySlabType(AboveDest)) && (AboveMeta & 0x8))) && !IsBlockWater(AboveDest))
+			if ((!IsBlockWater(AboveDest)) && (cBlockInfo::GetHandler(AboveDest)->CanChangeDirtToGrass(AboveDest, AboveMeta)))
 			{
 				if (!cRoot::Get()->GetPluginManager()->CallHookBlockSpread((cWorld*) &a_WorldInterface, BlockX * cChunkDef::Width, BlockY, BlockZ * cChunkDef::Width, ssGrassSpread))
 				{
-- 
cgit v1.2.3


From 4d7b250a509213fa7043b3670c6a393a3683fc69 Mon Sep 17 00:00:00 2001
From: Howaner <franzi.moos@googlemail.com>
Date: Sun, 6 Apr 2014 21:45:55 +0200
Subject: Remove old import

---
 src/Blocks/BlockDirt.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'src/Blocks/BlockDirt.h')

diff --git a/src/Blocks/BlockDirt.h b/src/Blocks/BlockDirt.h
index 84c8461b5..0c550257e 100644
--- a/src/Blocks/BlockDirt.h
+++ b/src/Blocks/BlockDirt.h
@@ -2,7 +2,6 @@
 #pragma once
 
 #include "BlockHandler.h"
-#include "BlockSlab.h"
 #include "../FastRandom.h"
 
 
@@ -67,7 +66,7 @@ public:
 			cChunk * Chunk = a_Chunk.GetRelNeighborChunkAdjustCoords(BlockX, BlockZ);
 			if (Chunk == NULL)
 			{
-				// Unloaded chunks
+				// Unloaded chunk
 				continue;
 			}
 			Chunk->GetBlockTypeMeta(BlockX, BlockY, BlockZ, DestBlock, DestMeta);
-- 
cgit v1.2.3


From 36a2aa2f212212426f94db736eb8f889340c5e00 Mon Sep 17 00:00:00 2001
From: Howaner <franzi.moos@googlemail.com>
Date: Wed, 7 May 2014 12:59:48 +0200
Subject: Rename CanChangeDirtToGrass to CanDirtGrowGrass

---
 src/Blocks/BlockDirt.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src/Blocks/BlockDirt.h')

diff --git a/src/Blocks/BlockDirt.h b/src/Blocks/BlockDirt.h
index 0c550257e..b8b23086b 100644
--- a/src/Blocks/BlockDirt.h
+++ b/src/Blocks/BlockDirt.h
@@ -38,7 +38,7 @@ public:
 			BLOCKTYPE Above;
 			NIBBLETYPE AboveMeta;
 			a_Chunk.GetBlockTypeMeta(a_RelX, a_RelY + 1, a_RelZ, Above, AboveMeta);
-			if ((IsBlockWater(Above)) || !cBlockInfo::GetHandler(Above)->CanChangeDirtToGrass(Above, AboveMeta))
+			if ((IsBlockWater(Above)) || !cBlockInfo::GetHandler(Above)->CanDirtGrowGrass(AboveMeta))
 			{
 				a_Chunk.FastSetBlock(a_RelX, a_RelY, a_RelZ, E_BLOCK_DIRT, E_META_DIRT_NORMAL);
 				return;
@@ -79,7 +79,7 @@ public:
 			BLOCKTYPE AboveDest;
 			NIBBLETYPE AboveMeta;
 			Chunk->GetBlockTypeMeta(BlockX, BlockY + 1, BlockZ, AboveDest, AboveMeta);
-			if ((!IsBlockWater(AboveDest)) && (cBlockInfo::GetHandler(AboveDest)->CanChangeDirtToGrass(AboveDest, AboveMeta)))
+			if ((!IsBlockWater(AboveDest)) && (cBlockInfo::GetHandler(AboveDest)->CanDirtGrowGrass(AboveMeta)))
 			{
 				if (!cRoot::Get()->GetPluginManager()->CallHookBlockSpread((cWorld*) &a_WorldInterface, BlockX * cChunkDef::Width, BlockY, BlockZ * cChunkDef::Width, ssGrassSpread))
 				{
-- 
cgit v1.2.3


From bc4a51781e22b56b8fc13736e94511e7bfd1a367 Mon Sep 17 00:00:00 2001
From: Howaner <franzi.moos@googlemail.com>
Date: Wed, 7 May 2014 20:37:36 +0200
Subject: Add lava and water check to block handlers.

---
 src/Blocks/BlockDirt.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src/Blocks/BlockDirt.h')

diff --git a/src/Blocks/BlockDirt.h b/src/Blocks/BlockDirt.h
index b8b23086b..2d4fccbac 100644
--- a/src/Blocks/BlockDirt.h
+++ b/src/Blocks/BlockDirt.h
@@ -38,7 +38,7 @@ public:
 			BLOCKTYPE Above;
 			NIBBLETYPE AboveMeta;
 			a_Chunk.GetBlockTypeMeta(a_RelX, a_RelY + 1, a_RelZ, Above, AboveMeta);
-			if ((IsBlockWater(Above)) || !cBlockInfo::GetHandler(Above)->CanDirtGrowGrass(AboveMeta))
+			if (!cBlockInfo::GetHandler(Above)->CanDirtGrowGrass(AboveMeta))
 			{
 				a_Chunk.FastSetBlock(a_RelX, a_RelY, a_RelZ, E_BLOCK_DIRT, E_META_DIRT_NORMAL);
 				return;
@@ -79,7 +79,7 @@ public:
 			BLOCKTYPE AboveDest;
 			NIBBLETYPE AboveMeta;
 			Chunk->GetBlockTypeMeta(BlockX, BlockY + 1, BlockZ, AboveDest, AboveMeta);
-			if ((!IsBlockWater(AboveDest)) && (cBlockInfo::GetHandler(AboveDest)->CanDirtGrowGrass(AboveMeta)))
+			if (cBlockInfo::GetHandler(AboveDest)->CanDirtGrowGrass(AboveMeta))
 			{
 				if (!cRoot::Get()->GetPluginManager()->CallHookBlockSpread((cWorld*) &a_WorldInterface, BlockX * cChunkDef::Width, BlockY, BlockZ * cChunkDef::Width, ssGrassSpread))
 				{
-- 
cgit v1.2.3