BiomesOPlenty/apis/forestry/api/recipes/ICarpenterManager.java
2013-09-13 16:44:22 +10:00

65 lines
2.5 KiB
Java

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);
}