The CraftTweaker Ingredient class which is used to power our recipes and ItemStack matching.

Importare la Classe

Link to importare-la-classe

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.ingredient.IIngredient;

Interfacce Implementate

Link to interfacce-implementate

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

Result TypeImplicito
Result Type
IData
Implicito
Result Type
IIngredientWithAmount
Implicito
Result Type
Ingredient
Implicito
Result Type
MapData
Implicito

Link to addGlobalAttributeModifier

Name: addGlobalAttributeModifier

Adds an AttributeModifier to this IIngredient.

Attributes added with this method appear on all ItemStacks that match this IIngredient, regardless of how or when the ItemStack was made, if you want to have the attribute on a single specific ItemStack (such as a specific Diamond Sword made in a recipe), then you should use IItemStack#withAttributeModifier

ZenScript
Copy
// IIngredient.addGlobalAttributeModifier(attribute as Attribute, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])

<tag:items:minecraft:wool>.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>]);
ParametroTipoDescrizione
Parametro
attribute
Tipo
Attribute
Descrizione
The Attribute of the modifier.
Parametro
nome
Tipo
string
Descrizione
The name of the modifier.
Parametro
valore
Tipo
double
Descrizione
The value of the modifier.
Parametro
operation
Tipo
AttributeOperation
Descrizione
The operation of the modifier.
Parametro
slotTypes
Tipo
EquipmentSlot[]
Descrizione
What slots the modifier is valid for.

Link to addGlobalAttributeModifier

Name: addGlobalAttributeModifier

Adds an AttributeModifier to this IIngredient using a specific UUID.

The UUID can be used to override an existing attribute on an ItemStack with this new modifier. You can use /ct hand attributes to get the UUID of the attributes on an ItemStack.

Attributes added with this method appear on all ItemStacks that match this IIngredient, regardless of how or when the ItemStack was made, if you want to have the attribute on a single specific ItemStack (such as a specific Diamond Sword made in a recipe), then you should use IItemStack#withAttributeModifier

ZenScript
Copy
// IIngredient.addGlobalAttributeModifier(attribute as Attribute, uuid as invalid, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])

<tag:items:minecraft:wool>.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, IItemStack.BASE_ATTACK_DAMAGE_UUID, "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>]);
ParametroTipoDescrizione
Parametro
attribute
Tipo
Attribute
Descrizione
The Attribute of the modifier.
Parametro
uuid
Tipo
invalid
Descrizione
The unique identifier of the modifier to replace.
Parametro
nome
Tipo
string
Descrizione
The name of the modifier.
Parametro
valore
Tipo
double
Descrizione
The value of the modifier.
Parametro
operation
Tipo
AttributeOperation
Descrizione
The operation of the modifier.
Parametro
slotTypes
Tipo
EquipmentSlot[]
Descrizione
What slots the modifier is valid for.

Link to addGlobalAttributeModifier

Name: addGlobalAttributeModifier

Adds an AttributeModifier to this IIngredient using a specific UUID.

The UUID can be used to override an existing attribute on an ItemStack with this new modifier. You can use /ct hand attributes to get the UUID of the attributes on an ItemStack.

Attributes added with this method appear on all ItemStacks that match this IIngredient, regardless of how or when the ItemStack was made, if you want to have the attribute on a single specific ItemStack (such as a specific Diamond Sword made in a recipe), then you should use IItemStack#withAttributeModifier

ZenScript
Copy
// IIngredient.addGlobalAttributeModifier(attribute as Attribute, uuid as string, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])

<tag:items:minecraft:wool>.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, "8c1b5535-9f79-448b-87ae-52d81480aaa3", "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>]);
ParametroTipoDescrizione
Parametro
attribute
Tipo
Attribute
Descrizione
The Attribute of the modifier.
Parametro
uuid
Tipo
string
Descrizione
The unique identifier of the modifier to replace.
Parametro
nome
Tipo
string
Descrizione
The name of the modifier.
Parametro
valore
Tipo
double
Descrizione
The value of the modifier.
Parametro
operation
Tipo
AttributeOperation
Descrizione
The operation of the modifier.
Parametro
slotTypes
Tipo
EquipmentSlot[]
Descrizione
What slots the modifier is valid for.

Name: addShiftTooltip

ZenScript
Copy
IIngredient.addShiftTooltip(content as Component, showMessage as Component)
ParametroTipoOptional
Parametro
contenuto
Tipo
Component
Optional
no
Parametro
showMessage
Tipo
Component
Optional

Name: addTooltip

ZenScript
Copy
IIngredient.addTooltip(content as Component)
ParametroTipo
Parametro
contenuto
Tipo
Component

Name: anyDamage

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
// IIngredient.anyDamage() as IngredientConditioned<IIngredient>

<tag:items:minecraft:wool>.anyDamage();

Link to asIIngredientWithAmount

Name: asIIngredientWithAmount

Used implicitly when a machine can accept more than one item but you only provide one.

Return Type: IIngredientWithAmount

ZenScript
Copy
// IIngredient.asIIngredientWithAmount() as IIngredientWithAmount

<tag:items:minecraft:wool>.asIIngredientWithAmount();

Link to asVanillaIngredient

Name: asVanillaIngredient

Create a Vanilla ingredient matching this one.

Return Type: Ingredient

ZenScript
Copy
// IIngredient.asVanillaIngredient() as Ingredient

<tag:items:minecraft:wool>.asVanillaIngredient();

Name: clearTooltip

ZenScript
Copy
IIngredient.clearTooltip(leaveName as boolean)
ParametroTipoOptionalDefault Value
Parametro
leaveName
Tipo
boolean
Optional
Default Value
no

Name: contains

Does the ingredient contain the given ingredient?

Return Type: boolean

ZenScript
Copy
// IIngredient.contains(ingredient as IIngredient) as boolean

<tag:items:minecraft:wool>.contains((<item:minecraft:iron_ingot> | <item:minecraft:gold_ingot>));
ParametroTipoDescrizione
Parametro
ingredient
Tipo
IIngredient
Descrizione
The ingredient to check

Link to getRemainingItem

Name: getRemainingItem

When this ingredient stack is crafted, what will remain in the grid? Does not check if the stack matches though! Used e.g. in Crafting Table recipes.

Return Type: IItemStack

ZenScript
Copy
// IIngredient.getRemainingItem(stack as IItemStack) as IItemStack

<tag:items:minecraft:wool>.getRemainingItem(<item:minecraft:iron_ingot>);
ParametroTipoDescrizione
Parametro
stack
Tipo
IItemStack
Descrizione
The stack to provide for this ingredient.

Name: isEmpty

Checks if this ingredient is empty.

Returns: true if empty, false otherwise
Return Type: boolean

ZenScript
Copy
// IIngredient.isEmpty() as boolean

<tag:items:minecraft:wool>.isEmpty();

Name: matches

Does the given stack match the ingredient?

Return Type: boolean

ZenScript
Copy
// IIngredient.matches(stack as IItemStack) as boolean

<tag:items:minecraft:wool>.matches(<item:minecraft:iron_ingot>);
ParametroTipoDescrizione
Parametro
stack
Tipo
IItemStack
Descrizione
The stack to check

Name: matches

Does the given stack match the ingredient?

Return Type: boolean

ZenScript
Copy
IIngredient.matches(stack as IItemStack, ignoreDamage as boolean) as boolean
ParametroTipoDescrizione
Parametro
stack
Tipo
IItemStack
Descrizione
The stack to check
Parametro
ignoreDanno
Tipo
boolean
Descrizione
Should damage be checked?

Link to modifyShiftTooltip

Name: modifyShiftTooltip

ZenScript
Copy
IIngredient.modifyShiftTooltip(shiftedFunction as ITooltipFunction, unshiftedFunction as ITooltipFunction)
ParametroTipoOptional
Parametro
shiftedFunction
Tipo
ITooltipFunction
Optional
no
Parametro
unshiftedFunction
Tipo
ITooltipFunction
Optional

Name: modifyTooltip

ZenScript
Copy
IIngredient.modifyTooltip(function as ITooltipFunction)
ParametroTipo
Parametro
function
Tipo
ITooltipFunction

Name: mul

Use this in contexts where machines accept more than one item to state that fact.

Return Type: IIngredientWithAmount

ZenScript
Copy
IIngredient.mul(amount as int) as IIngredientWithAmount
ParametroTipo
Parametro
amount
Tipo
int

Name: only

Use this if you already have the condition from another ingredient

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
IIngredient.only(condition as IIngredientCondition<IIngredient>) as IngredientConditioned<IIngredient>
ParametroTipo
Parametro
condition
Tipo
IIngredientCondition<IIngredient>

Name: onlyDamaged

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
// IIngredient.onlyDamaged() as IngredientConditioned<IIngredient>

<tag:items:minecraft:wool>.onlyDamaged();

Link to onlyDamagedAtLeast

Name: onlyDamagedAtLeast

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
IIngredient.onlyDamagedAtLeast(minDamage as int) as IngredientConditioned<IIngredient>
ParametroTipo
Parametro
minDamage
Tipo
int

Link to onlyDamagedAtMost

Name: onlyDamagedAtMost

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
IIngredient.onlyDamagedAtMost(maxDamage as int) as IngredientConditioned<IIngredient>
ParametroTipo
Parametro
maxDamage
Tipo
int

Name: onlyIf

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
IIngredient.onlyIf(uid as string, function as Predicate<IItemStack>) as IngredientConditioned<IIngredient>
ParametroTipoOptional
Parametro
uid
Tipo
string
Optional
no
Parametro
function
Tipo
Predicate<IItemStack>
Optional

Link to removeGlobalAttribute

Name: removeGlobalAttribute

Removes all AttributeModifiers that use the given Attribute from this IIngredient.

Attributes removed with this method are removed from ItemStacks that match this IIngredient, regardless of how or when the ItemStack was made, if you want to remove the attribute on a single specific ItemStack (such as a specific Diamond Sword made in a recipe), then you should use IItemStack#withoutAttribute.

This method can only remove default Attributes from an ItemStack, it is still possible that an ItemStack can override it.

ZenScript
Copy
// IIngredient.removeGlobalAttribute(attribute as Attribute, slotTypes as EquipmentSlot[])

<tag:items:minecraft:wool>.removeGlobalAttribute(<attribute:minecraft:generic.attack_damage>, [<constant:minecraft:equipmentslot:chest>]);
ParametroTipoDescrizione
Parametro
attribute
Tipo
Attribute
Descrizione
The attribute to remove.
Parametro
slotTypes
Tipo
EquipmentSlot[]
Descrizione
The slot types to remove it from.

Link to removeGlobalAttributeModifier

Name: removeGlobalAttributeModifier

Removes all AttributeModifiers who's ID is the same as the given uuid from this IIngredient.

ZenScript
Copy
// IIngredient.removeGlobalAttributeModifier(uuid as invalid, slotTypes as EquipmentSlot[])

<tag:items:minecraft:wool>.removeGlobalAttributeModifier(IItemStack.BASE_ATTACK_DAMAGE_UUID, [<constant:minecraft:equipmentslot:chest>]);
ParametroTipoDescrizione
Parametro
uuid
Tipo
invalid
Descrizione
The unique id of the AttributeModifier to remove.
Parametro
slotTypes
Tipo
EquipmentSlot[]
Descrizione
The slot types to remove it from.

Link to removeGlobalAttributeModifier

Name: removeGlobalAttributeModifier

Removes all AttributeModifiers who's ID is the same as the given uuid from this IIngredient.

ZenScript
Copy
// IIngredient.removeGlobalAttributeModifier(uuid as string, slotTypes as EquipmentSlot[])

<tag:items:minecraft:wool>.removeGlobalAttributeModifier("8c1b5535-9f79-448b-87ae-52d81480aaa3", [<constant:minecraft:equipmentslot:chest>]);
ParametroTipoDescrizione
Parametro
uuid
Tipo
string
Descrizione
The unique id of the AttributeModifier to remove.
Parametro
slotTypes
Tipo
EquipmentSlot[]
Descrizione
The slot types to remove it from.

Name: removeTooltip

ZenScript
Copy
IIngredient.removeTooltip(regex as string)
ParametroTipo
Parametro
regex
Tipo
string

Name: reuse

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
// IIngredient.reuse() as IIngredientTransformed<IIngredient>

<tag:items:minecraft:wool>.reuse();

Name: setBurnTime

Sets the burn time of this ingredient, for use in the furnace and other machines

ZenScript
Copy
// IIngredient.setBurnTime(time as int)

<tag:items:minecraft:wool>.setBurnTime(500);
ParametroTipoDescrizione
Parametro
time
Tipo
int
Descrizione
the new burn time

Name: transform

Use this if you already have the transformer from another ingredient

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
IIngredient.transform(transformer as IIngredientTransformer<IIngredient>) as IIngredientTransformed<IIngredient>
ParametroTipo
Parametro
trasformatore
Tipo
IIngredientTransformer<IIngredient>

Name: transformCustom

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
IIngredient.transformCustom(uid as string, function as Function<IItemStack,IItemStack>) as IIngredientTransformed<IIngredient>
ParametroTipoOptional
Parametro
uid
Tipo
string
Optional
no
Parametro
function
Tipo
Function<IItemStack,IItemStack>
Optional

Name: transformDamage

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
IIngredient.transformDamage(amount as int) as IIngredientTransformed<IIngredient>
ParametroTipoOptionalDefault Value
Parametro
amount
Tipo
int
Optional
Default Value
1

Link to transformReplace

Name: transformReplace

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
IIngredient.transformReplace(replaceWith as IItemStack) as IIngredientTransformed<IIngredient>
ParametroTipo
Parametro
replaceWith
Tipo
IItemStack

Name: CONTAINS

Does the ingredient contain the given ingredient?

ZenScript
Copy
ingredient as IIngredient in myIIngredient
(<item:minecraft:iron_ingot> | <item:minecraft:gold_ingot>) in <tag:items:minecraft:wool>

Name: MUL

Use this in contexts where machines accept more than one item to state that fact.

ZenScript
Copy
myIIngredient * amount as int

Name: OR

ZenScript
Copy
myIIngredient | other as IIngredient
NomeTipoHa GetterHa SetterDescrizione
Nome
burnTime
Tipo
void
Ha Getter
no
Ha Setter
Descrizione
Sets the burn time of this ingredient, for use in the furnace and other machines
Nome
commandString
Tipo
string
Ha Getter
Ha Setter
no
Descrizione
Returns the BEP to get this stack
Nome
empty
Tipo
boolean
Ha Getter
Ha Setter
no
Descrizione
Checks if this ingredient is empty.
Nome
items
Tipo
IItemStack[]
Ha Getter
Ha Setter
no
Descrizione