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); }