code: @SideOnly(Side.CLIENT)
  	public static void addDestroyEffects(World world, BlockPos pos, ParticleManager particleManager, IBlockState... states)
  	{
  		if (ArrayUtils.isEmpty(states))
  			states = new IBlockState[] { world.getBlockState(pos) };
  
  		byte nb = 4;
  		ParticleDigging.Factory factory = new ParticleDigging.Factory();
  
  		for (int i = 0; i < nb; ++i)
  		{
  			for (int j = 0; j < nb; ++j)
  			{
  				for (int k = 0; k < nb; ++k)
  				{
  					double fxX = pos.getX() + (i + 0.5D) / nb;
  					double fxY = pos.getY() + (j + 0.5D) / nb;
  					double fxZ = pos.getZ() + (k + 0.5D) / nb;
  
  					int id = Block.getStateId(states[world.rand.nextInt(states.length)]);
  
  					ParticleDigging fx = (ParticleDigging) factory.createParticle(	0,
  																					world,
  																					fxX,
  																					fxY,
  																					fxZ,
  																					fxX - pos.getX() - 0.5D,
  																					fxY - pos.getY() - 0.5D,
  																					fxZ - pos.getZ() - 0.5D,
  																					id);
  					particleManager.addEffect(fx);
  				}
  			}
  		}
  	}
docs: Adds the destroy effects into the world for the specified {@link IBlockState}.
  
  @param world the world
  @param pos the pos
  @param particleManager the effect renderer
  @param states the states