 +    public int quantityDropped(int meta, int fortune, Random random)
 +    {
 +        return func_40198_a(fortune, random);
++    }
++    
++    /* FORGE: Metadata-sensitive version.
++     */
++    public int quantityDropped(int meta, Random random)
++    {
++        return quantityDropped(meta, 0, random);
 +    }
 +    
      public int idDropped(int i, Random random, int j)

         }
 
     }
@@ -805,6 +820,107 @@
         return iblockaccess.isBlockNormalCube(i, j, k) ? 0.2F : 1.0F;
     }
 

     }
 
     public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l)
@@ -438,25 +441,49 @@
     {
         return 1;
     }
