package buildcraft.api.recipes;
import java.util.List;
import net.minecraft.item.ItemStack;
public interface IProgrammingRecipe {
String getId();
/** Get a list (size at least width*height) of ItemStacks representing options.
*
* @param width The width of the Programming Table panel.
* @param height The height of the Programming Table panel.
* @return */
List<ItemStack> getOptions(int width, int height);
/** Get the energy cost of a given option ItemStack.
*
* @param option
* @return */
int getEnergyCost(ItemStack option);
/** @param input The input stack.
* @return Whether this recipe applies to the given input stack. */
boolean canCraft(ItemStack input);
/** Craft the input ItemStack with the given option into an output ItemStack.
*
* @param input
* @param option
* @return The output ItemStack. */
ItemStack craft(ItemStack input, ItemStack option);
}