package joshie.harvest.api.cooking; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import java.util.List; public interface CookingManager { /** Registers this item as a cooking component type * @param stack the itemstack * @param ingredient the name of the ingredient **/ void register(ItemStack stack, Ingredient ingredient); /** Registers a cooking handler * @param handler the handler */ void registerCookingHandler(CookingHandler handler); /** Call this if you don't wish to implement IKnife, * Use OreDictionary.WILDCARD_VALUE if metadata doesn't matter * @param stack the knife stack */ void registerKnife(ItemStack stack); /** Returns true if this stack is an ingredient * @param stack the stack to validate **/ boolean isIngredient(ItemStack stack); /** Returns true if this stack is considered a knife * @param stack the stack to validate */ boolean isKnife(ItemStack stack); /** Returns a fluid for this ingredient if it's valid * This is called by the client when rendering, to determine how to rend the item. * Returns null if the ingredient doesn't have a fluid associated with it. * @param ingredient the ingredient * @return a fluid, can be null */ ResourceLocation getFluid(ItemStack ingredient); /** Returns a resulting itemstack for the ingredients input * @param utensil the utensil in use * @param ingredients the ingredients * @return the resulting item */ List<ItemStack> getCookingResult(Utensil utensil, List<ItemStack> ingredients); /** Returns a default copy of this meal * @param name this is the resource path of the name, if it's a harvestfestival meal you can just use the name, * if it's added by other mods you should use the normal resourcepath **/ @SuppressWarnings("unused") ItemStack getMeal(String name); /** Returns a copy of this meal, with it's best stats * Can and will return null if it was not found. * @param name this is the resource path of the name, if it's a harvestfestival meal you can just use the name, * if it's added by other mods you should use the normal resourcepath **/ ItemStack getBestMeal(String name); }