FurnaceRecipeManager

Link to furnacerecipemanager

Importing the class

Link to importing-the-class

It might be required for you to import the package if you encounter any issues (like casting an Array), so better be safe than sorry and add the import at the very top of the file.

ZenScript
Copy
import crafttweaker.api.recipe.FurnaceRecipeManager;

Implemented Interfaces

Link to implemented-interfaces

FurnaceRecipeManager implements the following interfaces. That means all methods defined in these interfaces are also available in FurnaceRecipeManager

Name: addJsonRecipe

Adds a recipe based on a provided IData. The provided IData should represent a DataPack json, this effectively allows you to register recipes for any DataPack supporting RecipeType systems.

ZenScript
Copy
// FurnaceRecipeManager.addJsonRecipe(name as string, mapData as MapData)

furnace.addJsonRecipe("recipe_name", {
 ingredient: <item:minecraft:gold_ore>,
 result: <item:minecraft:cooked_porkchop>.registryName,
 experience: 0.35 as float,
 cookingtime:100
 });
ParameterTypeDescription
Parameter
name
Type
string
Description
name of the recipe
Parameter
mapData
Type
MapData
Description
data representing the json file

Name: addRecipe

Adds a recipe based on given params.

Note: A cookTime of 0 will cause the recipe to never complete, it will burn and use fuel, but no progress will be made on the recipe, it needs to be at-least 1 or more.

Saying that, if you would like to make a recipe that will never complete (for example being able to give the player an infinitely burning furnace for whatever reason), you can still use a cookTime of 0.

ZenScript
Copy
// FurnaceRecipeManager.addRecipe(name as string, output as IItemStack, input as IIngredient, xp as float, cookTime as int)

furnace.addRecipe("wool2diamond", <item:minecraft:diamond>, <tag:items:minecraft:wool>, 1.0, 30);
ParameterTypeDescription
Parameter
name
Type
string
Description
Name of the new recipe
Parameter
output
Type
IItemStack
Description
IItemStack output of the recipe
Parameter
input
Type
IIngredient
Description
IIngredient input of the recipe
Parameter
xp
Type
float
Description
how much xp the player gets
Parameter
cookTime
Type
int
Description
how long it takes to cook

Name: addRecipe

Adds a recipe based on given params.

Note: A cookTime of 0 will cause the recipe to never complete, it will burn and use fuel, but no progress will be made on the recipe, it needs to be at-least 1 or more.

Saying that, if you would like to make a recipe that will never complete (for example being able to give the player an infinitely burning furnace for whatever reason), you can still use a cookTime of 0.

ZenScript
Copy
// FurnaceRecipeManager.addRecipe(name as string, category as CookingBookCategory, output as IItemStack, input as IIngredient, xp as float, cookTime as int)

furnace.addRecipe("wool2diamond", <constant:minecraft:cookingbookcategory:misc>, <item:minecraft:diamond>, <tag:items:minecraft:wool>, 1.0, 30);
ParameterTypeDescription
Parameter
name
Type
string
Description
Name of the new recipe
Parameter
category
Type
CookingBookCategory
Description
The category of the recipe in the recipe book
Parameter
output
Type
IItemStack
Description
IItemStack output of the recipe
Parameter
input
Type
IIngredient
Description
IIngredient input of the recipe
Parameter
xp
Type
float
Description
how much xp the player gets
Parameter
cookTime
Type
int
Description
how long it takes to cook

Name: getAllRecipes

Return Type: stdlib.List<RecipeHolder<T>>

ZenScript
Copy
// FurnaceRecipeManager.getAllRecipes() as stdlib.List<RecipeHolder<T>>

furnace.getAllRecipes();

Name: getRecipeByName

Return Type: RecipeHolder<T>?

ZenScript
Copy
FurnaceRecipeManager.getRecipeByName(name as string) as RecipeHolder<T>?
ParameterType
Parameter
name
Type
string

Name: getRecipeMap

Returns a map of all known recipes.

Returns: A Map of recipe name to recipe of all known recipes.
Return Type: RecipeHolder<T>[ResourceLocation]

ZenScript
Copy
// FurnaceRecipeManager.getRecipeMap() as RecipeHolder<T>[ResourceLocation]

furnace.getRecipeMap();

Link to getRecipesByOutput

Name: getRecipesByOutput

Return Type: stdlib.List<RecipeHolder<T>>

ZenScript
Copy
FurnaceRecipeManager.getRecipesByOutput(output as IIngredient) as stdlib.List<RecipeHolder<T>>
ParameterType
Parameter
output
Type
IIngredient

Link to getRecipesMatching

Name: getRecipesMatching

Return Type: stdlib.List<RecipeHolder<T>>

ZenScript
Copy
FurnaceRecipeManager.getRecipesMatching(predicate as Predicate<RecipeHolder<T>>) as stdlib.List<RecipeHolder<T>>
ParameterType
Parameter
predicate
Type
Predicate<RecipeHolder<T>>

Name: remove

Remove a recipe based on it's output.

ZenScript
Copy
// FurnaceRecipeManager.remove(output as IIngredient)

furnace.remove(<tag:items:minecraft:wool>);
ParameterTypeDescription
Parameter
output
Type
IIngredient
Description
output of the recipe

Name: removeAll

Remove all recipes in this registry

ZenScript
Copy
// FurnaceRecipeManager.removeAll()

furnace.removeAll();

Name: removeByInput

Removes all recipes where the input contains the given IItemStack.

ZenScript
Copy
// FurnaceRecipeManager.removeByInput(input as IItemStack)

furnace.removeByInput(<item:minecraft:iron_ingot>);
ParameterTypeDescription
Parameter
input
Type
IItemStack
Description
The input IItemStack.

Name: removeByModid

Remove recipe based on Registry name modid

ZenScript
Copy
FurnaceRecipeManager.removeByModid(modid as string, exclude as Predicate<string>)
ParameterTypeDescriptionOptionalDefault Value
Parameter
modid
Type
string
Description
modid of the recipes to remove
Optional
false
Default Value
​
Parameter
exclude
Type
Predicate<string>
Description
​
Optional
true
Default Value
(name as string) as bool => false

Name: removeByName

Remove recipes based on Registry names

ZenScript
Copy
FurnaceRecipeManager.removeByName(names as string[])
ParameterTypeDescription
Parameter
names
Type
string[]
Description
registry names of recipes to remove

Name: removeByRegex

Remove recipe based on regex with an added exclusion check, so you can remove the whole mod besides a few specified.

ZenScript
Copy
// FurnaceRecipeManager.removeByRegex(regex as string, exclude as Predicate<string>)

furnace.removeByRegex("\\d_\\d", (name as string) => {return name == "orange_wool";});
ParameterTypeDescriptionOptionalDefault Value
Parameter
regex
Type
string
Description
regex to match against
Optional
false
Default Value
​
Parameter
exclude
Type
Predicate<string>
Description
​
Optional
true
Default Value
(name as string) as bool => false

Name: removeMatching

Removes all recipes that match the given predicate

ZenScript
Copy
// FurnaceRecipeManager.removeMatching(predicate as Predicate<RecipeHolder<T>>)

furnace.removeMatching((holder) => "wool" in holder.id.path);
ParameterTypeDescription
Parameter
predicate
Type
Predicate<RecipeHolder<T>>
Description
a predicate of RecipeHolder to test recipes against.

Name: removeRecipe

Removes a recipe based on it's output and input.

ZenScript
Copy
// FurnaceRecipeManager.removeRecipe(output as IItemStack, input as IIngredient)

furnace.removeRecipe(<item:minecraft:diamond>, <tag:items:minecraft:wool>);
ParameterTypeDescription
Parameter
output
Type
IItemStack
Description
IItemStack output of the recipe.
Parameter
input
Type
IIngredient
Description
IIngredient of the recipe to remove.
NameTypeHas GetterHas SetterDescription
Name
allRecipes
Type
stdlib.List<RecipeHolder<T>>
Has Getter
true
Has Setter
false
Description
​
Name
recipeMap
Type
RecipeHolder<T>[ResourceLocation]
Has Getter
true
Has Setter
false
Description
Returns a map of all known recipes.