summaryrefslogtreecommitdiffstats
path: root/src/Blocks/BlockPressurePlate.h
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2014-06-17 13:52:00 +0200
committerMattes D <github@xoft.cz>2014-06-17 13:52:00 +0200
commit532d388d074a081cf5969101898b203f21f9fb38 (patch)
treef7b0a592ed8f7989f8561d937a1301840541c89c /src/Blocks/BlockPressurePlate.h
parentFixed GCC compilation. (diff)
parentAdd parenthesis (diff)
downloadcuberite-532d388d074a081cf5969101898b203f21f9fb38.tar
cuberite-532d388d074a081cf5969101898b203f21f9fb38.tar.gz
cuberite-532d388d074a081cf5969101898b203f21f9fb38.tar.bz2
cuberite-532d388d074a081cf5969101898b203f21f9fb38.tar.lz
cuberite-532d388d074a081cf5969101898b203f21f9fb38.tar.xz
cuberite-532d388d074a081cf5969101898b203f21f9fb38.tar.zst
cuberite-532d388d074a081cf5969101898b203f21f9fb38.zip
Diffstat (limited to 'src/Blocks/BlockPressurePlate.h')
-rw-r--r--src/Blocks/BlockPressurePlate.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Blocks/BlockPressurePlate.h b/src/Blocks/BlockPressurePlate.h
new file mode 100644
index 000000000..adec36eb6
--- /dev/null
+++ b/src/Blocks/BlockPressurePlate.h
@@ -0,0 +1,38 @@
+
+#pragma once
+
+#include "BlockHandler.h"
+
+
+
+
+class cBlockPressurePlateHandler :
+ public cBlockHandler
+{
+public:
+ cBlockPressurePlateHandler(BLOCKTYPE a_BlockType)
+ : cBlockHandler(a_BlockType)
+ {
+ }
+
+ virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override
+ {
+ // Reset meta to 0
+ a_Pickups.push_back(cItem(m_BlockType, 1, 0));
+ }
+
+ virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk) override
+ {
+ if (a_RelY <= 0)
+ {
+ return false;
+ }
+
+ BLOCKTYPE BlockBelow = a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ);
+ return ((BlockBelow == E_BLOCK_FENCE_GATE) || (BlockBelow == E_BLOCK_FENCE) || cBlockInfo::IsSolid(BlockBelow));
+ }
+} ;
+
+
+
+