| package ic2.api.recipe; |
| |
| import java.util.Map; |
| |
| import net.minecraft.item.ItemStack; |
| import net.minecraft.nbt.NBTTagCompound; |
| |
| /** |
| * Recipe manager interface for basic machines. |
| * |
| * @author RichardG, Player |
| */ |
| public interface IMachineRecipeManager { |
| /** |
| * Adds a recipe to the machine. |
| * |
| * @param input Recipe input |
| * @param metadata meta data for additional recipe properties, may be null |
| * @param outputs Recipe outputs, zero or more depending on the machine |
| * |
| * For the thermal centrifuge @param metadata meta data {"minHeat": 1-xxx} |
| * For the ore washing plant @param metadata meta data {"amount": 1-8000} |
| * |
| */ |
| public void addRecipe(IRecipeInput input, NBTTagCompound metadata, ItemStack... outputs); |
| |
| /** |
| * Gets the recipe output for the given input. |
| * |
| * @param input Recipe input |
| * @param adjustInput modify the input according to the recipe's requirements |
| * @return Recipe output, or null if none |
| */ |
| public RecipeOutput getOutputFor(ItemStack input, boolean adjustInput); |
| |
| /** |
| * Gets a list of recipes. |
| * |
| * You're a mad evil scientist if you ever modify this. |
| * |
| * @return List of recipes |
| */ |
| public Map<IRecipeInput, RecipeOutput> getRecipes(); |
| } |