summaryrefslogtreecommitdiffstats
path: root/src/Blocks/BlockPressurePlate.h
diff options
context:
space:
mode:
authorHowaner <franzi.moos@googlemail.com>2014-06-17 00:40:35 +0200
committerHowaner <franzi.moos@googlemail.com>2014-06-17 00:40:35 +0200
commit43ff96f66494dd1719d7bdb1d0f0c3957e5f61b7 (patch)
tree0d59eba14f13335db0273f25791ecdd33103ca56 /src/Blocks/BlockPressurePlate.h
parentFixed GCC compilation. (diff)
downloadcuberite-43ff96f66494dd1719d7bdb1d0f0c3957e5f61b7.tar
cuberite-43ff96f66494dd1719d7bdb1d0f0c3957e5f61b7.tar.gz
cuberite-43ff96f66494dd1719d7bdb1d0f0c3957e5f61b7.tar.bz2
cuberite-43ff96f66494dd1719d7bdb1d0f0c3957e5f61b7.tar.lz
cuberite-43ff96f66494dd1719d7bdb1d0f0c3957e5f61b7.tar.xz
cuberite-43ff96f66494dd1719d7bdb1d0f0c3957e5f61b7.tar.zst
cuberite-43ff96f66494dd1719d7bdb1d0f0c3957e5f61b7.zip
Diffstat (limited to '')
-rw-r--r--src/Blocks/BlockPressurePlate.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/Blocks/BlockPressurePlate.h b/src/Blocks/BlockPressurePlate.h
new file mode 100644
index 000000000..2e6754cdb
--- /dev/null
+++ b/src/Blocks/BlockPressurePlate.h
@@ -0,0 +1,34 @@
+
+#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));
+ }
+}; \ No newline at end of file