summaryrefslogtreecommitdiffstats
path: root/src/Blocks/BlockStone.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Blocks/BlockStone.h')
-rw-r--r--src/Blocks/BlockStone.h30
1 files changed, 22 insertions, 8 deletions
diff --git a/src/Blocks/BlockStone.h b/src/Blocks/BlockStone.h
index e1522a2a2..f691d4452 100644
--- a/src/Blocks/BlockStone.h
+++ b/src/Blocks/BlockStone.h
@@ -6,25 +6,39 @@
-class cBlockStoneHandler :
+class cBlockStoneHandler:
public cBlockHandler
{
+ using super = cBlockHandler;
+
public:
- cBlockStoneHandler(BLOCKTYPE a_BlockType)
- : cBlockHandler(a_BlockType)
+
+ cBlockStoneHandler(BLOCKTYPE a_BlockType):
+ super(a_BlockType)
{
}
- virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override
+
+
+
+
+ virtual cItems ConvertToPickups(NIBBLETYPE a_BlockMeta, cBlockEntity * a_BlockEntity, const cEntity * a_Digger, const cItem * a_Tool) override
{
- if (a_BlockMeta == E_META_STONE_STONE)
+ // Convert stone to cobblestone, unless using silk-touch:
+ if (
+ (a_BlockMeta == E_META_STONE_STONE) &&
+ !ToolHasSilkTouch(a_Tool)
+ )
{
- a_Pickups.push_back(cItem(E_BLOCK_COBBLESTONE, 1, 0));
- return;
+ return cItem(E_BLOCK_COBBLESTONE, 1, 0);
}
- a_Pickups.push_back(cItem(E_BLOCK_STONE, 1, a_BlockMeta));
+ return cItem(m_BlockType, 1, a_BlockMeta);
}
+
+
+
+
virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) override
{
UNUSED(a_Meta);