ICookingRecipeManager

Importing the class

If you need to reference this type directly, like when casting an Array, or as a parameter, you will need to import it. Simply add the import at the top of the file.

script.zs
import crafttweaker.api.recipe.ICookingRecipeManager;

Description

Default interface for Registry based handlers as they can all remove recipes by ResourceLocation.

Implements

ICookingRecipeManager<AbstractCookingRecipe> implements the following interfaces:

IRecipeManager<AbstractCookingRecipe>,CommandStringDisplayable

Undocumented Interfaces

Iterable<Recipe>

Members

addJsonRecipe(name as string, mapData as MapData)
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.
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.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
});

Parameters:

name Type: string - name of the recipe
mapData Type: MapData - data representing the json file
addRecipe(name as string, output as IItemStack, input as IIngredient, xp as float, cookTime as int)
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.
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.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);

Parameters:

name Type: string - Name of the new recipe
output Type: IItemStack - IItemStack output of the recipe
input Type: IIngredient - IIngredient input of the recipe
xp Type: float - how much xp the player gets
cookTime Type: int - how long it takes to cook
addRecipe(name as string, category as CookingBookCategory, output as IItemStack, input as IIngredient, xp as float, cookTime as int)
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.
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.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);

Parameters:

name Type: string - Name of the new recipe
category Type: CookingBookCategory - The category of the recipe in the recipe book
output Type: IItemStack - IItemStack output of the recipe
input Type: IIngredient - IIngredient input of the recipe
xp Type: float - how much xp the player gets
cookTime Type: int - how long it takes to cook
Getter
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.allRecipes as List<Recipe>
furnace.allRecipes

Return Type: List<Recipe>

allRecipes() as List<Recipe>
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.allRecipes() as List<Recipe>;
furnace.allRecipes();

Return Type: List<Recipe>

Getter
Returns the BEP to get this thingy
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.commandString as string
furnace.commandString

Return Type: string

commandString() as string
Returns the BEP to get this thingy
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.commandString() as string;
furnace.commandString();

Return Type: string

getRecipeByName(name as string) as Recipe?
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.getRecipeByName(name as string) as Recipe?;
furnace.getRecipeByName(myString);

Parameters:

name Type: string

Return Type: Recipe?

getRecipesByOutput(output as IIngredient) as List<Recipe>
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.getRecipesByOutput(output as IIngredient) as List<Recipe>;
furnace.getRecipesByOutput(myIIngredient);

Parameters:

output Type: IIngredient

Return Type: List<Recipe>

Getter
Returns a map of all known recipes.
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.recipeMap as Recipe[ResourceLocation]
furnace.recipeMap

Return Type: Recipe[ResourceLocation]

recipeMap() as Recipe[ResourceLocation]
Returns a map of all known recipes.

Returns: A Map of recipe name to recipe of all known recipes.

script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.recipeMap() as Recipe[ResourceLocation];
furnace.recipeMap();

Return Type: Recipe[ResourceLocation]

remove(output as IIngredient)
Remove a recipe based on it's output.
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.remove(output as IIngredient);
furnace.remove(<tag:items:minecraft:wool>);

Parameters:

output Type: IIngredient - output of the recipe
removeAll()
Remove all recipes in this registry
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.removeAll();
furnace.removeAll();
removeByInput(input as IItemStack)
Removes all recipes where the input contains the given IItemStack.
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.removeByInput(input as IItemStack);
furnace.removeByInput(<item:minecraft:iron_ingot>);

Parameters:

input Type: IItemStack - The input IItemStack.
removeByModid(modid as string, exclude as function(t as string) as bool = (name as string) as bool => false)
Remove recipe based on Registry name modid
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.removeByModid(modid as string, exclude as function(t as string) as bool = (name as string) as bool => false);
furnace.removeByModid("minecraft", myPredicate);

Parameters:

modid Type: string - modid of the recipes to remove
exclude (optional) Type: function(t as string) as bool

Default Value: (name as string) as bool => false

removeByName(names as string[])
Remove recipes based on Registry names
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.removeByName(names as string[]);
furnace.removeByName(myString[]);

Parameters:

names Type: string[] - registry names of recipes to remove
removeByRegex(regex as string, exclude as function(t as string) as bool = (name as string) as bool => false)
Remove recipe based on regex with an added exclusion check, so you can remove the whole mod besides a few specified.
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.removeByRegex(regex as string, exclude as function(t as string) as bool = (name as string) as bool => false);
furnace.removeByRegex("\\d_\\d", (name as string) => {return name == "orange_wool";});

Parameters:

regex Type: string - regex to match against
exclude (optional) Type: function(t as string) as bool

Default Value: (name as string) as bool => false

removeRecipe(output as IItemStack, input as IIngredient)
Removes a recipe based on it's output and input.
script.zs
// ICookingRecipeManager<T : AbstractCookingRecipe>.removeRecipe(output as IItemStack, input as IIngredient);
furnace.removeRecipe(<item:minecraft:diamond>, <tag:items:minecraft:wool>);

Parameters:

output Type: IItemStack - IItemStack output of the recipe.
input Type: IIngredient - IIngredient of the recipe to remove.