summaryrefslogtreecommitdiffstats
path: root/src/Blocks
diff options
context:
space:
mode:
Diffstat (limited to 'src/Blocks')
-rw-r--r--src/Blocks/BlockPressurePlate.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/Blocks/BlockPressurePlate.h b/src/Blocks/BlockPressurePlate.h
index 5829b5190..7fb7585f1 100644
--- a/src/Blocks/BlockPressurePlate.h
+++ b/src/Blocks/BlockPressurePlate.h
@@ -23,12 +23,31 @@ public:
virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk) override
{
- if (a_RelY <= 0)
+ if (a_RelY - 1 <= 0)
{
return false;
}
- return (cBlockInfo::FullyOccupiesVoxel(a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ)));
+ // TODO: check if the block is upside-down slab or upside-down stairs
+ BLOCKTYPE Block = a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ);
+ switch (Block)
+ {
+ case E_BLOCK_ACACIA_FENCE:
+ case E_BLOCK_BIRCH_FENCE:
+ case E_BLOCK_DARK_OAK_FENCE:
+ case E_BLOCK_FENCE:
+ case E_BLOCK_HOPPER:
+ case E_BLOCK_JUNGLE_FENCE:
+ case E_BLOCK_NETHER_BRICK_FENCE:
+ case E_BLOCK_SPRUCE_FENCE:
+ {
+ return true;
+ }
+ default:
+ {
+ return (!cBlockInfo::IsTransparent(Block));
+ }
+ }
}
virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) override