package com.jaquadro.minecraft.storagedrawers.api.registry; import net.minecraft.item.crafting.IRecipe; import java.util.List; /** * Recipe handlers are used by compacting drawers to find more-compressed forms of blocks and items. If your recipe * to craft compressed items is a custom IRecipe implementation, you will need to register a handler for it. */ public interface IRecipeHandler { /** * Get the recipe ingredient list as an array of objects (usually used for shaped recipes). * If your array does not contain ItemStack objects, you will need to register an {@link IIngredientHandler} to * get an ItemStack from them. * * If you would prefer to return a List, return null in this method and implement {@link #getInputAsList}. * * @param recipe An instance of a custom {@link IRecipe}. * @return An array of ItemStacks or objects with a registered {@link IIngredientHandler}. */ Object[] getInputAsArray (IRecipe recipe); /** * Get the recipe ingredient list as a list of objects (usually used for shapeless recipes). * If your list does not contain ItemStack objects, you will need to register an {@link IIngredientHandler} to * get an ItemStack from them. * * If you would prefer to return an array, return null in this method and implement {@link #getInputAsArray}. * * @param recipe An instance of a custom {@link IRecipe}. * @return A list of ItemStacks or objects with a registered {@link IIngredientHandler}. */ List getInputAsList (IRecipe recipe); }