package net.blay09.mods.cookingforblockheads.registry.recipe;

import com.google.common.collect.Lists;
import net.blay09.mods.cookingforblockheads.registry.CookingRegistry;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.item.crafting.ShapedRecipes;
import net.minecraftforge.oredict.ShapedOreRecipe;

public class GeneralFoodRecipe extends FoodRecipe {

    public GeneralFoodRecipe(IRecipe recipe) {
        this.outputItem = recipe.getRecipeOutput();
        if (recipe instanceof ShapedRecipes) {
            this.recipeWidth = ((ShapedRecipes) recipe).getWidth();
        } else if (recipe instanceof ShapedOreRecipe) {
            this.recipeWidth = ((ShapedOreRecipe) recipe).getWidth();
        } else {
            this.recipeWidth = recipe.canFit(1, 1) ? 1 : recipe.canFit(2, 1) ? 2 : 3;
        }
        craftMatrix = Lists.newArrayList();
        for (Ingredient ingredient : recipe.getIngredients()) {
            if (ingredient != Ingredient.EMPTY) {
                boolean isToolItem = CookingRegistry.isToolItem(ingredient);
                craftMatrix.add(new FoodIngredient(ingredient, isToolItem));
            } else {
                craftMatrix.add(null);
            }
        }
    }

}

@@ -307,16 +307,73 @@
 ecipes;%0A
+import net.minecraftforge.common.crafting.IShapedRecipe;%0A
 import n
@@ -594,24 +594,25 @@
  instanceof 
+I
 ShapedRecipe
@@ -611,17 +611,16 @@
 edRecipe
-s
 ) %7B%0A    
@@ -644,24 +644,25 @@
 peWidth = ((
+I
 ShapedRecipe
@@ -661,17 +661,16 @@
 edRecipe
-s
 ) recipe
@@ -678,134 +678,14 @@
 .get
-Width();%0A        %7D else if (recipe instanceof ShapedOreRecipe) %7B%0A            this.recipeWidth = ((ShapedOreRecipe) recipe).get
+Recipe
 Widt
@@ -780,17 +780,17 @@
 nFit(2, 
-1
+2
 ) ? 2 : 

Use new IShapedRecipe for more compatible width detection (alongside the fallback)