void DiamondOre::onBreak(World &world, Block b, BlockIterator bi, WorldLockManager &lock_manager, Item &tool) const { if(isMatchingTool(tool)) { ItemDescriptor::addToWorld(world, lock_manager, ItemStack(Item(Items::builtin::Diamond::descriptor())), bi.position() + VectorF(0.5)); } handleToolDamage(tool); }
void Grass::onBreak( World &world, Block b, BlockIterator bi, WorldLockManager &lock_manager, Item &tool) const { ItemDescriptor::addToWorld(world, lock_manager, ItemStack(Item(Items::builtin::Dirt::descriptor())), bi.position() + VectorF(0.5)); handleToolDamage(tool); }
void RedstoneOre::onBreak(World &world, Block b, BlockIterator bi, WorldLockManager &lock_manager, Item &tool) const { if(isMatchingTool(tool)) { int dropCount = std::uniform_int_distribution<int>(4, 5)(world.getRandomGenerator()); for(int i = 0; i < dropCount; i++) ItemDescriptor::addToWorld(world, lock_manager, ItemStack(Item(Items::builtin::RedstoneDust::descriptor())), bi.position() + VectorF(0.5)); } handleToolDamage(tool); }
void Gravel::onBreak(World &world, Block b, BlockIterator bi, WorldLockManager &lock_manager, Item &tool) const { if(isMatchingTool(tool)) { if(std::uniform_int_distribution<int>(0, 9)(world.getRandomGenerator()) <= 0) ItemDescriptor::addToWorld(world, lock_manager, ItemStack(Item(Items::builtin::Flint::descriptor())), bi.position() + VectorF(0.5)); else ItemDescriptor::addToWorld(world, lock_manager, ItemStack(Item(Items::builtin::Gravel::descriptor())), bi.position() + VectorF(0.5)); } handleToolDamage(tool); }