I was creating a bit of a hacky mod for custom recipe mapping, but noticed a small problem: Recipes that use an item that can have multiple recipes doesn't seem to be registered under Item.itemList
For example:
List<IRecipe> l = CraftingManager.getInstance().getRecipeList();
for(int i=0;i<l.size();i++){
if(l.get(i).getClass().getName()=="net.minecraft.src.ShapedRecipes"){
ShapedRecipes r = (ShapedRecipes)l.get(i);
System.out.println("Shaped recipe found:"+r.getRecipeOutput().getDisplayName());
shaped.add(r);
}
else if(l.get(i).getClass().getName()=="net.minecraft.src.ShapelessRecipes"){
ShapelessRecipes sh = (ShapelessRecipes)l.get(i);
System.out.println("Shapeless recipe found:"+sh.getRecipeOutput().getDisplayName());
unshaped.add(sh);
}
That code will never output a few basic items, for example: Pistons, fences, chests, or anything that has an ID that can be mapped to multiple metadatas and isn't explicitly assigned in CraftingManager (Torches are included in that list since they are explicitly defined to have a recipe for charcoal)
While this isn't an error per say, it is a bit of a hindrance and quite a big inconsistency, and wondering if there is a workaround or fix for it.