|  | package ic2.api.recipe; | 
|  |  | 
|  | import java.util.List; | 
|  |  | 
|  | import net.minecraft.item.ItemStack; | 
|  |  | 
|  | public interface IRecipeInput { | 
|  | /** | 
|  | * Check if subject matches this recipe input, ignoring the amount. | 
|  | * | 
|  | * @param subject ItemStack to check | 
|  | * @return true if it matches the requirement | 
|  | */ | 
|  | boolean matches(ItemStack subject); | 
|  |  | 
|  | /** | 
|  | * Determine the minimum input stack size. | 
|  | * | 
|  | * @return input amount required | 
|  | */ | 
|  | int getAmount(); | 
|  |  | 
|  | /** | 
|  | * List all possible inputs (best effort). | 
|  | * | 
|  | * The stack size is undefined, use getAmount to get the correct one. | 
|  | * | 
|  | * @return list of inputs, may be incomplete | 
|  | */ | 
|  | List<ItemStack> getInputs(); | 
|  | } |