summaryrefslogtreecommitdiffstats
path: root/src/Blocks/BlockHandler.cpp
diff options
context:
space:
mode:
authorHowaner <franzi.moos@googlemail.com>2014-09-02 19:37:03 +0200
committerHowaner <franzi.moos@googlemail.com>2014-09-02 19:37:03 +0200
commitb8769e3fb48ce05f7a76e9e55b9d864f3474d311 (patch)
treeb2842e686fe509bf65d5b7df1f311706ce0de6f3 /src/Blocks/BlockHandler.cpp
parentWebAdmin: Exported logo and background. (diff)
parentRe-added alternate spellings of darkgraywool. (diff)
downloadcuberite-b8769e3fb48ce05f7a76e9e55b9d864f3474d311.tar
cuberite-b8769e3fb48ce05f7a76e9e55b9d864f3474d311.tar.gz
cuberite-b8769e3fb48ce05f7a76e9e55b9d864f3474d311.tar.bz2
cuberite-b8769e3fb48ce05f7a76e9e55b9d864f3474d311.tar.lz
cuberite-b8769e3fb48ce05f7a76e9e55b9d864f3474d311.tar.xz
cuberite-b8769e3fb48ce05f7a76e9e55b9d864f3474d311.tar.zst
cuberite-b8769e3fb48ce05f7a76e9e55b9d864f3474d311.zip
Diffstat (limited to '')
-rw-r--r--src/Blocks/BlockHandler.cpp39
1 files changed, 37 insertions, 2 deletions
diff --git a/src/Blocks/BlockHandler.cpp b/src/Blocks/BlockHandler.cpp
index 028277e4c..6767d4de4 100644
--- a/src/Blocks/BlockHandler.cpp
+++ b/src/Blocks/BlockHandler.cpp
@@ -431,10 +431,45 @@ void cBlockHandler::DropBlock(cChunkInterface & a_ChunkInterface, cWorldInterfac
else
{
// TODO: Add a proper overridable function for this
- Pickups.Add(m_BlockType, 1, Meta);
+ if (a_Digger != NULL)
+ {
+ cEnchantments Enchantments = a_Digger->GetEquippedWeapon().m_Enchantments;
+ if ((Enchantments.GetLevel(cEnchantments::enchSilkTouch) > 0) && a_Digger->IsPlayer())
+ {
+ switch (m_BlockType)
+ {
+ case E_BLOCK_CAKE:
+ case E_BLOCK_CARROTS:
+ case E_BLOCK_COCOA_POD:
+ case E_BLOCK_DOUBLE_STONE_SLAB:
+ case E_BLOCK_DOUBLE_WOODEN_SLAB:
+ case E_BLOCK_FIRE:
+ case E_BLOCK_FARMLAND:
+ case E_BLOCK_MELON_STEM:
+ case E_BLOCK_MOB_SPAWNER:
+ case E_BLOCK_NETHER_WART:
+ case E_BLOCK_POTATOES:
+ case E_BLOCK_PUMPKIN_STEM:
+ case E_BLOCK_SNOW:
+ case E_BLOCK_SUGARCANE:
+ case E_BLOCK_TALL_GRASS:
+ case E_BLOCK_CROPS:
+ {
+ // Silktouch can't be used for this blocks
+ ConvertToPickups(Pickups, Meta);
+ break;
+ };
+ default: Pickups.Add(m_BlockType, 1, Meta);
+ }
+ }
+ else
+ {
+ Pickups.Add(m_BlockType, 1, Meta);
+ }
+ }
}
}
-
+
// Allow plugins to modify the pickups:
a_BlockPluginInterface.CallHookBlockToPickups(a_Digger, a_BlockX, a_BlockY, a_BlockZ, m_BlockType, Meta, Pickups);