I feared as much. I went and fixed some of it, but I'm surrently stuck on this little bit of code.
At
} else if ((next instanceof ArrayList)) {for (ItemStack item : (ArrayList)next) {match = (match) || (checkItemEquals(item, slot));
I get an error: Type mismatch: cannot convert from element type Object to ItemStack.
public ItemStack getCraftingResult(InventoryCrafting var1) {
return this.output.copy();
}
public boolean matches(InventoryCrafting var1, World world)
{
ArrayList required = new ArrayList(this.input);
for (int x = 0; x < var1.getSizeInventory(); x++)
{
ItemStack slot = var1.getStackInSlot(x);
if (slot != null)
{
boolean inRecipe = false;
Iterator req = required.iterator();
while (req.hasNext())
{
boolean match = false;
Object next = req.next();
if ((next instanceof ItemStack)) {
match = checkItemEquals((ItemStack)next, slot);
} else if ((next instanceof ArrayList)) {
for (ItemStack item : (ArrayList)next) {
match = (match) || (checkItemEquals(item, slot));
}
}
if (match)
{
inRecipe = true;
required.remove(next);
break;
}
}
if (!inRecipe) {
return false;
}
}
}
return required.isEmpty();