/**
 * Copyright (c) Lambda Innovation, 2013-2015
 * 本作品版权由Lambda Innovation所有。
 * http://www.li-dev.cn/
 *
 * This project is open-source, and it is distributed under
 * the terms of GNU General Public License. You can modify
 * and distribute freely as long as you follow the license.
 * 本项目是一个开源项目，且遵循GNU通用公共授权协议。
 * 在遵照该协议的情况下，您可以自由传播和修改。
 * http://www.gnu.org/licenses/gpl.html
 */
package cn.lambdalib.crafting;

import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;

/**
 * @author WeAthFolD
 */
public class SmeltingRegistry implements IRecipeRegistry {

    public static final SmeltingRegistry INSTANCE = new SmeltingRegistry();

    private SmeltingRegistry() {
    }

    /*
     * (non-Javadoc)
     * 
     * @see cn.lambdalib.crafting.IRecipeRegistry#register(java.lang.String,
     * net.minecraft.item.ItemStack, java.lang.Object[], int, int)
     */
    @Override
    public void register(String type, ItemStack output, Object[] input, int width, int height, float experience) {
        if (width != 1 || height != 1) {
            throw new IllegalArgumentException("You can only specify 1 input for smelting!");
        }

        Object in;
        if (input[0] instanceof String) {
            in = OreDictionary.getOres((String) input[0]).get(0);
        } else {
            in = input[0];
        }

        // 辣鸡java
        if (in instanceof ItemStack)
            GameRegistry.addSmelting((ItemStack) in, output, experience);
        else if (in instanceof Block)
            GameRegistry.addSmelting((Block) in, output, experience);
        else if (in instanceof Item)
            GameRegistry.addSmelting((Item) in, output, experience);

        debug("[Smelting] " +
                in + " => " + RecipeRegistry.reprStack(output));
    }

}

@@ -817,203 +817,11 @@
 () %7B
-%0A    %7D%0A%0A    /*%0A     * (non-Javadoc)%0A     * %0A     * @see cn.lambdalib.crafting.IRecipeRegistry#register(java.lang.String,%0A     * net.minecraft.item.ItemStack, java.lang.Object%5B%5D, int, int)%0A     */
+ %7D%0A
 %0A   
@@ -1096,27 +1096,8 @@
  %7D%0A%0A
-        Object in;%0A
     
@@ -1146,20 +1146,38 @@
         
-in =
+for (ItemStack stack :
  OreDict
@@ -1213,16 +1213,119 @@
 %5B0%5D)
-.get(0);
+) %7B%0A                register(type, output, new ItemStack%5B%5D %7B stack %7D, width, height, experience);%0A            %7D
 %0A   
@@ -1350,16 +1350,23 @@
         
+Object 
 in = inp
@@ -1376,37 +1376,13 @@
 0%5D;%0A
+%0A
     
-    %7D%0A%0A        // %E8%BE%A3%E9%B8%A1java%0A
     
@@ -1418,32 +1418,36 @@
 ck)%0A            
+ 
+   
 GameRegistry.add
@@ -1492,32 +1492,36 @@
 ience);%0A        
+   
+ 
 else if (in inst
@@ -1530,24 +1530,28 @@
 ceof Block)%0A
+    
             
@@ -1608,32 +1608,36 @@
 ience);%0A        
+ 
+   
 else if (in inst
@@ -1649,16 +1649,20 @@
 f Item)%0A
+    
         
@@ -1731,16 +1731,20 @@
         
+    
 debug(%22%5B
@@ -1773,16 +1773,20 @@
         
+  
+  
 in + %22 =
@@ -1826,16 +1826,26 @@
 tput));%0A
+        %7D%0A
     %7D%0A%0A%7D

Fix SmeltingRegistry behaviour on OreDict