make the leaf blower drop blocks on their own

This commit is contained in:
Ellpeck 2017-03-10 23:16:55 +01:00
parent d7561ddb82
commit 4944c11889

View file

@ -14,6 +14,7 @@ import de.ellpeck.actuallyadditions.api.misc.IDisplayStandItem;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import net.minecraft.block.Block;
import net.minecraft.block.BlockBush;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
@ -117,22 +118,15 @@ public class ItemLeafBlower extends ItemBase implements IDisplayStandItem{
Collections.shuffle(breakPositions);
BlockPos theCoord = breakPositions.get(0);
Block theBlock = world.getBlockState(theCoord).getBlock();
ArrayList<ItemStack> drops = new ArrayList<ItemStack>();
//Gets all of the Drops the Block should have
drops.addAll(theBlock.getDrops(world, theCoord, world.getBlockState(theCoord), 0));
IBlockState theState = world.getBlockState(theCoord);
theState.getBlock().dropBlockAsItem(world, theCoord, theState, 0);
//Plays the Breaking Sound
world.playEvent(2001, theCoord, Block.getStateId(world.getBlockState(theCoord)));
world.playEvent(2001, theCoord, Block.getStateId(theState));
//Deletes the Block
world.setBlockToAir(theCoord);
for(ItemStack theDrop : drops){
//Drops the Items into the World
world.spawnEntityInWorld(new EntityItem(world, theCoord.getX()+0.5, theCoord.getY()+0.5, theCoord.getZ()+0.5, theDrop));
}
return true;
}
return false;