public void w() {
    if (this.b) {
      for (int i0 = 0; i0 < this.j_(); ++i0) {
        ItemStack itemstack = this.a(i0);

        if (itemstack != null) {
          float f0 = this.ab.nextFloat() * 0.8F + 0.1F;
          float f1 = this.ab.nextFloat() * 0.8F + 0.1F;
          float f2 = this.ab.nextFloat() * 0.8F + 0.1F;

          while (itemstack.a > 0) {
            int i1 = this.ab.nextInt(21) + 10;

            if (i1 > itemstack.a) {
              i1 = itemstack.a;
            }

            itemstack.a -= i1;
            EntityItem entityitem =
                new EntityItem(
                    this.q,
                    this.u + (double) f0,
                    this.v + (double) f1,
                    this.w + (double) f2,
                    new ItemStack(itemstack.c, i1, itemstack.k()));

            if (itemstack.p()) {
              entityitem.d().d((NBTTagCompound) itemstack.q().b());
            }

            float f3 = 0.05F;

            entityitem.x = (double) ((float) this.ab.nextGaussian() * f3);
            entityitem.y = (double) ((float) this.ab.nextGaussian() * f3 + 0.2F);
            entityitem.z = (double) ((float) this.ab.nextGaussian() * f3);
            this.q.d((Entity) entityitem);
          }
        }
      }
    }

    super.w();
  }
  public void a(DamageSource damagesource) {
    super.a(damagesource);

    for (int i0 = 0; i0 < this.j_(); ++i0) {
      ItemStack itemstack = this.a(i0);

      if (itemstack != null) {
        float f0 = this.ab.nextFloat() * 0.8F + 0.1F;
        float f1 = this.ab.nextFloat() * 0.8F + 0.1F;
        float f2 = this.ab.nextFloat() * 0.8F + 0.1F;

        while (itemstack.a > 0) {
          int i1 = this.ab.nextInt(21) + 10;

          if (i1 > itemstack.a) {
            i1 = itemstack.a;
          }

          itemstack.a -= i1;
          EntityItem entityitem =
              new EntityItem(
                  this.q,
                  this.u + (double) f0,
                  this.v + (double) f1,
                  this.w + (double) f2,
                  new ItemStack(itemstack.c, i1, itemstack.k()));
          float f3 = 0.05F;

          entityitem.x = (double) ((float) this.ab.nextGaussian() * f3);
          entityitem.y = (double) ((float) this.ab.nextGaussian() * f3 + 0.2F);
          entityitem.z = (double) ((float) this.ab.nextGaussian() * f3);
          this.q.d((Entity) entityitem);
        }
      }
    }
  }