result.recipe = this;
result.energyCost = energyCost;
result.craftingTime = craftingTime;
for (ItemStack requirement : inputItems) {
IStackFilter filter = new ArrayStackFilter(requirement);
int amount = requirement.stackSize;
if (consumeItems(crafter, result, filter, amount, preview) != 0) {
return null;
}
}
// Item stacks with alternatives consumption
for (List<ItemStack> requirements : inputItemsWithAlternatives) {
IStackFilter filter = new ArrayStackFilter(requirements.toArray(new ItemStack[0]));
int amount = requirements.get(0).stackSize;
if (consumeItems(crafter, result, filter, amount, preview) != 0) {
return null;
}