package cyano.basemetals.registry.recipe; import java.util.Collection; import net.minecraft.item.ItemStack; /** * Superclass for all crushed-item recipes. For recipes that use the OreDictionary to describe the * input item, use the OreDictionaryCrusherRecipe class. If not using the OreDictionary, use the * ArbitraryCrusherRecipe class. Note that you should use the OreDictionary for most recipes. * @author DrCyano * */ public interface ICrusherRecipe { /** * Gets the output item from applying this recipe. * @return An ItemStack instance of the result of this recipe */ public abstract ItemStack getOutput(); /** * Checks if the given ItemStack instance is the input for this recipe. * @param input An ItemStack to test * @return Returns true if and only if this recipe should produce an output item from the given * input. */ public abstract boolean isValidInput(ItemStack input); /** * Returns a list of all registered blocks/items for which <code>isValidInput(...)</code> would * return true. This method is only used for displaying recipes in NEI and does not need to be * performance optimized. * @return A list of allowed inputs. */ public abstract Collection<ItemStack> getValidInputs(); }