diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-09-02 19:37:03 +0200 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-09-02 19:37:03 +0200 |
commit | b8769e3fb48ce05f7a76e9e55b9d864f3474d311 (patch) | |
tree | b2842e686fe509bf65d5b7df1f311706ce0de6f3 /src/Blocks/BlockHandler.cpp | |
parent | WebAdmin: Exported logo and background. (diff) | |
parent | Re-added alternate spellings of darkgraywool. (diff) | |
download | cuberite-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.cpp | 39 |
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); |