diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-09-02 20:11:38 +0200 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-09-02 20:11:38 +0200 |
commit | e431bb4e63b03a4137e4264beccfab0fffea6e36 (patch) | |
tree | e5442606b9e5be82070dc733b6162a76ed89ac87 /src/Blocks/BlockHandler.cpp | |
parent | Changed the IsEnchantable() comment. (diff) | |
parent | Re-added alternate spellings of darkgraywool. (diff) | |
download | cuberite-e431bb4e63b03a4137e4264beccfab0fffea6e36.tar cuberite-e431bb4e63b03a4137e4264beccfab0fffea6e36.tar.gz cuberite-e431bb4e63b03a4137e4264beccfab0fffea6e36.tar.bz2 cuberite-e431bb4e63b03a4137e4264beccfab0fffea6e36.tar.lz cuberite-e431bb4e63b03a4137e4264beccfab0fffea6e36.tar.xz cuberite-e431bb4e63b03a4137e4264beccfab0fffea6e36.tar.zst cuberite-e431bb4e63b03a4137e4264beccfab0fffea6e36.zip |
Diffstat (limited to 'src/Blocks/BlockHandler.cpp')
-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); |