for (int y = 0; y < 3; y++) {
int index = x + y * 3;
IRecipeInput input = inputArray[index];
if (input == null) continue;
List<ItemStack> possibleMatches = input.getPossibleMatches();
ingridients.add(new PositionedStack(possibleMatches, x * 18 + 12, y * 18 + 6));
stackArray[index] = possibleMatches.get(0);
}
StationCrafting crafting = recipe.checkMatch(stackArray, new RecipeBounds(stackArray));
if (crafting == null)
throw new Error("Recipe " + recipe.getClass().getSimpleName() + " didn't match sample input.");
requiredExperience = crafting.getRequiredExperience();
craftingTime = crafting.getCraftingTime();
output.clear();
ItemStack[] outputArray = crafting.getOutput();
for (int x = 0; x < 3; x++)
for (int y = 0; y < 3; y++)
if (((x + y * 3) < outputArray.length) &&
(outputArray[x + y * 3] != null))
output.add(new PositionedStack(outputArray[x + y * 3], x * 18 + 102, y * 18 + 6));
}