From 7fdfb8644169a25805afd32f00ced38c1c14cec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Havl=C3=AD=C4=8Dek?= <80639037+havel06@users.noreply.github.com> Date: Wed, 25 Jan 2023 21:46:34 +0100 Subject: Allow certain blocks to be placed on top of upside-down stairs/slabs (#5468) * Placing certain blocks on top of upside down slabs and stairs * remove TODO * fix style errors * IsAnyStairType helper function * Block placement on stairs and slabs --- src/Blocks/BlockRedstoneRepeater.h | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/Blocks/BlockRedstoneRepeater.h') diff --git a/src/Blocks/BlockRedstoneRepeater.h b/src/Blocks/BlockRedstoneRepeater.h index 4b9650e90..893691d7b 100644 --- a/src/Blocks/BlockRedstoneRepeater.h +++ b/src/Blocks/BlockRedstoneRepeater.h @@ -2,9 +2,11 @@ #pragma once #include "BlockHandler.h" +#include "BlockType.h" #include "Mixins.h" #include "ChunkInterface.h" #include "BlockSlab.h" +#include "BlockStairs.h" #include "../Chunk.h" @@ -120,14 +122,19 @@ private: { return true; } - else if (cBlockSlabHandler::IsAnySlabType(BelowBlock)) + + // upside down slabs + if (cBlockSlabHandler::IsAnySlabType(BelowBlock)) { - // Check if the slab is turned up side down - if ((BelowBlockMeta & 0x08) == 0x08) - { - return true; - } + return BelowBlockMeta & E_META_WOODEN_SLAB_UPSIDE_DOWN; } + + // upside down stairs + if (cBlockStairsHandler::IsAnyStairType(BelowBlock)) + { + return BelowBlockMeta & E_BLOCK_STAIRS_UPSIDE_DOWN; + } + return false; } -- cgit v1.2.3