package forestry.api.recipes; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.ShapedRecipes; import net.minecraftforge.fluids.FluidStack; /** * Provides an interface to the recipe manager of the carpenter. * * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even * if your mod loads before Forestry. * * Accessible via {@link RecipeManagers} * * Only shaped recipes can be added currently. * * @author SirSengir */ public interface ICarpenterManager extends ICraftingProvider { /** * Add a shaped recipe to the carpenter. * * @param box * ItemStack of one item representing the required box (carton, crate) for this recipe. May be null. * @param product * Crafting result. * @param materials * Materials needed in the crafting matrix. This gets passed directly to {@link ShapedRecipes}. Notation is the same. */ public void addRecipe(ItemStack box, ItemStack product, Object materials[]); /** * Add a shaped recipe to the carpenter. * * @param packagingTime * Number of work cycles required to craft the recipe once. * @param box * ItemStack of one item representing the required box (carton, crate) for this recipe. May be null. * @param product * Crafting result. * @param materials * Materials needed in the crafting matrix. This gets passed directly to {@link ShapedRecipes}. Notation is the same. */ public void addRecipe(int packagingTime, ItemStack box, ItemStack product, Object materials[]); /** * Add a shaped recipe to the carpenter. * * @param packagingTime * Number of work cycles required to craft the recipe once. * @param liquid * Liquid required in carpenter's tank. * @param box * ItemStack of one item representing the required box (carton, crate) for this recipe. May be null. * @param product * Crafting result. * @param materials * Materials needed in the crafting matrix. This gets passed directly to {@link ShapedRecipes}. Notation is the same. */ public void addRecipe(int packagingTime, FluidStack liquid, ItemStack box, ItemStack product, Object materials[]); public void addCrating(String toCrate, ItemStack unpack, ItemStack crated); public void addCrating(ItemStack itemStack); }