@Override
  public void dropBlockAsItemWithChance(World world, int i, int j, int k, int l, float f, int dmg) {

    if (CoreProxy.proxy.isRenderWorld(world)) return;

    int i1 = quantityDropped(world.rand);
    for (int j1 = 0; j1 < i1; j1++) {
      if (world.rand.nextFloat() > f) {
        continue;
      }

      Pipe pipe = getPipe(world, i, j, k);

      if (pipe == null) {
        pipe = pipeRemoved.get(new BlockIndex(i, j, k));
      }

      if (pipe != null) {
        int k1 = pipe.itemID;

        if (k1 > 0) {
          pipe.dropContents();
          dropBlockAsItem_do(world, i, j, k, new ItemStack(k1, 1, damageDropped(l)));
        }
      }
    }
  }
  @Override
  public ArrayList<ItemStack> getBlockDropped(
      World world, int x, int y, int z, int metadata, int fortune) {

    if (CoreProxy.proxy.isRenderWorld(world)) return null;

    ArrayList<ItemStack> list = new ArrayList<ItemStack>();

    int count = quantityDropped(metadata, fortune, world.rand);
    for (int i = 0; i < count; i++) {
      Pipe pipe = getPipe(world, x, y, z);

      if (pipe == null) {
        pipe = pipeRemoved.get(new BlockIndex(x, y, z));
      }

      if (pipe != null) {
        if (pipe.itemID > 0) {
          pipe.dropContents();
          list.add(new ItemStack(pipe.itemID, 1, damageDropped(metadata)));
        }
      }
    }
    return list;
  }