summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-06-09 17:16:07 +0200
committerfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-06-09 17:16:07 +0200
commit3ccba12e390dc83b08393ad922b91825be2eedb7 (patch)
tree4ca54cf9aac85b7e78e5c282cbcef899912168ae
parentProtectionAreas: Added asserts to cStorage functions so that logic errors are found faster (diff)
downloadcuberite-3ccba12e390dc83b08393ad922b91825be2eedb7.tar
cuberite-3ccba12e390dc83b08393ad922b91825be2eedb7.tar.gz
cuberite-3ccba12e390dc83b08393ad922b91825be2eedb7.tar.bz2
cuberite-3ccba12e390dc83b08393ad922b91825be2eedb7.tar.lz
cuberite-3ccba12e390dc83b08393ad922b91825be2eedb7.tar.xz
cuberite-3ccba12e390dc83b08393ad922b91825be2eedb7.tar.zst
cuberite-3ccba12e390dc83b08393ad922b91825be2eedb7.zip
-rw-r--r--VC2008/MCServer.vcproj4
-rw-r--r--source/Blocks/BlockDeadBush.h47
-rw-r--r--source/Blocks/BlockHandler.cpp2
3 files changed, 53 insertions, 0 deletions
diff --git a/VC2008/MCServer.vcproj b/VC2008/MCServer.vcproj
index a8a3aede6..5effcba67 100644
--- a/VC2008/MCServer.vcproj
+++ b/VC2008/MCServer.vcproj
@@ -1813,6 +1813,10 @@
>
</File>
<File
+ RelativePath="..\source\Blocks\BlockDeadBush.h"
+ >
+ </File>
+ <File
RelativePath="..\source\blocks\BlockDirt.h"
>
</File>
diff --git a/source/Blocks/BlockDeadBush.h b/source/Blocks/BlockDeadBush.h
new file mode 100644
index 000000000..cfa872b2c
--- /dev/null
+++ b/source/Blocks/BlockDeadBush.h
@@ -0,0 +1,47 @@
+
+#pragma once
+
+#include "BlockHandler.h"
+#include "../World.h"
+
+
+
+
+
+class cBlockDeadBushHandler :
+ public cBlockHandler
+{
+public:
+ cBlockDeadBushHandler(BLOCKTYPE a_BlockType)
+ : cBlockHandler(a_BlockType)
+ {
+ }
+
+
+ virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override
+ {
+ a_Pickups.push_back(cItem(E_BLOCK_DEAD_BUSH, 1, a_BlockMeta));
+ }
+
+
+ virtual bool CanBeAt(int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk) override
+ {
+ return (a_RelY > 0) && (a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ) == E_BLOCK_SAND);
+ }
+
+
+ virtual bool DoesAllowBlockOnTop(void) override
+ {
+ return false;
+ }
+
+
+ virtual bool CanBePlacedOnSide() override
+ {
+ return false;
+ }
+} ;
+
+
+
+
diff --git a/source/Blocks/BlockHandler.cpp b/source/Blocks/BlockHandler.cpp
index 149dcd98d..77c51f02a 100644
--- a/source/Blocks/BlockHandler.cpp
+++ b/source/Blocks/BlockHandler.cpp
@@ -57,6 +57,7 @@
#include "BlockBrewingStand.h"
#include "BlockCobWeb.h"
#include "BlockTNT.h"
+#include "BlockDeadBush.h"
@@ -149,6 +150,7 @@ cBlockHandler * cBlockHandler::CreateBlockHandler(BLOCKTYPE a_BlockType)
case E_BLOCK_RAIL: return new cBlockRailHandler (a_BlockType);
case E_BLOCK_POTATOES: return new cBlockCropsHandler (a_BlockType);
case E_BLOCK_POWERED_RAIL: return new cBlockRailHandler (a_BlockType);
+ case E_BLOCK_DEAD_BUSH: return new cBlockDeadBushHandler (a_BlockType);
case E_BLOCK_DETECTOR_RAIL: return new cBlockRailHandler (a_BlockType);
case E_BLOCK_REDSTONE_ORE: return new cBlockOreHandler (a_BlockType);
case E_BLOCK_REDSTONE_ORE_GLOWING: return new cBlockOreHandler (a_BlockType);