1
0

Blocks only drop pickups when using correct tool (#4505)

Co-authored-by: mluchterhand <mluchterhand@max.de>
This commit is contained in:
Max Luchterhand
2020-03-18 16:59:28 +00:00
committed by GitHub
parent 0718c44e77
commit 57da82524b
2 changed files with 9 additions and 1 deletions

View File

@@ -974,7 +974,13 @@ cItems cChunk::PickupsFromBlock(Vector3i a_RelPos, const cEntity * a_Digger, con
GetBlockTypeMeta(a_RelPos, blockType, blockMeta);
auto blockHandler = cBlockInfo::GetHandler(blockType);
auto blockEntity = GetBlockEntityRel(a_RelPos);
auto pickups = blockHandler->ConvertToPickups(blockMeta, blockEntity, a_Digger, a_Tool);
cItems pickups (0);
auto toolHandler = a_Tool ? a_Tool->GetHandler() : cItemHandler::GetItemHandler(E_ITEM_EMPTY);
auto canHarvestBlock = toolHandler->CanHarvestBlock(blockType);
if (canHarvestBlock)
{
pickups = blockHandler->ConvertToPickups(blockMeta, blockEntity, a_Digger, a_Tool);
}
auto absPos = RelativeToAbsolute(a_RelPos);
cRoot::Get()->GetPluginManager()->CallHookBlockToPickups(*m_World, absPos, blockType, blockMeta, blockEntity, a_Digger, a_Tool, pickups);
return pickups;