@@ -0,0 +1,1803 @@
+package net.acomputerdog.BlazeLoader.api.recipe;%0A%0Aimport java.util.ArrayList;%0Aimport java.util.Iterator;%0Aimport java.util.List;%0A%0Aimport net.minecraft.inventory.InventoryCrafting;%0Aimport net.minecraft.item.ItemStack;%0Aimport net.minecraft.item.crafting.ShapelessRecipes;%0Aimport net.minecraft.world.World;%0A%0Apublic class BShapelessRecipe extends ShapelessRecipes %7B%0A%09private final List recipeItems;%0A%09%0A%09private int craftingWidth = 3;%0A    private int craftingHeight = 3;%0A%09%0A%09public BShapelessRecipe(ItemStack par1ItemStack, List par2List) %7B%0A        super(par1ItemStack, par2List);%0A        recipeItems = par2List;%0A    %7D%0A%09%0A%09public void setCraftingSize(int width, int height) %7B%0A    %09craftingWidth = width;%0A    %09craftingHeight = height;%0A    %7D%0A%09%0A%09public boolean matches(InventoryCrafting par1InventoryCrafting, World par2World) %7B%0A        ArrayList var3 = new ArrayList(recipeItems);%0A%0A        for (int var4 = 0; var4 %3C craftingWidth; ++var4) %7B%0A            for (int var5 = 0; var5 %3C craftingHeight; ++var5) %7B%0A                ItemStack var6 = par1InventoryCrafting.getStackInRowAndColumn(var5, var4);%0A%0A                if (var6 != null) %7B%0A                    boolean var7 = false;%0A                    Iterator var8 = var3.iterator();%0A%0A                    while (var8.hasNext()) %7B%0A                        ItemStack var9 = (ItemStack)var8.next();%0A%0A                        if (var6 == var9 && (var9.getItemDamage() == 32767 %7C%7C var6.getItemDamage() == var9.getItemDamage())) %7B%0A                            var7 = true;%0A                            var3.remove(var9);%0A                            break;%0A                        %7D%0A                    %7D%0A%0A                    if (!var7) %7B%0A                        return false;%0A                    %7D%0A                %7D%0A            %7D%0A        %7D%0A%0A        return var3.isEmpty();%0A    %7D%0A%7D%0A

Create BShapelessRecipe.java