IIngredient

This is IIngredient!!!

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

Implemented Interfaces

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

Casters

Result typeIs Implicit
IDatatrue
Ingredienttrue
MapDatatrue

Methods

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

Return Type: void

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

<tag:items:forge:ingots>.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, "Extra Power", 10, AttributeOperation.ADDITION, [<equipmentslottype:chest>]);
ParameterTypeDescription
attributeAttributeThe Attribute of the modifier.
namestringThe name of the modifier.
valuedoubleThe value of the modifier.
operationAttributeOperationThe operation of the modifier.
slotTypesMCEquipmentSlotType[]What slots the modifier is valid for.
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

Return Type: void

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

<tag:items:forge:ingots>.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, "8c1b5535-9f79-448b-87ae-52d81480aaa3", "Extra Power", 10, AttributeOperation.ADDITION, [<equipmentslottype:chest>]);
ParameterTypeDescription
attributeAttributeThe Attribute of the modifier.
uuidstringThe unique identifier of the modifier to replace.
namestringThe name of the modifier.
valuedoubleThe value of the modifier.
operationAttributeOperationThe operation of the modifier.
slotTypesMCEquipmentSlotType[]What slots the modifier is valid for.
addShiftTooltip

Return Type: void

ZenScript
Copy
IIngredient.addShiftTooltip(content as MCTextComponent, showMessage as MCTextComponent) as void
ParameterTypeDescriptionOptionalDefaultValue
contentMCTextComponentNo Description Providedfalse
showMessageMCTextComponentNo Description Providedtrue
addTooltip

Return Type: void

ZenScript
Copy
IIngredient.addTooltip(content as MCTextComponent) as void
ParameterTypeDescription
contentMCTextComponentNo Description Provided
anyDamage

Return Type: MCIngredientConditioned<IIngredient>

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

<tag:items:forge:ingots>.anyDamage();
asVanillaIngredient

Create a Vanilla ingredient matching this one.

Return Type: Ingredient

ZenScript
Copy
// IIngredient.asVanillaIngredient() as Ingredient

<tag:items:forge:ingots>.asVanillaIngredient();
clearTooltip

Return Type: void

ZenScript
Copy
// IIngredient.clearTooltip() as void

<tag:items:forge:ingots>.clearTooltip();
contains

Does the ingredient contain the given ingredient?

Return Type: boolean

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

<tag:items:forge:ingots>.contains((<item:minecraft:iron_ingot> | <item:minecraft:gold_ingot>));
ParameterTypeDescription
ingredientIIngredientThe ingredient to check
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:forge:ingots>.getRemainingItem(<item:minecraft:iron_ingot>);
ParameterTypeDescription
stackIItemStackThe stack to provide for this ingredient.
matches

Does the given stack match the ingredient?

Return Type: boolean

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

<tag:items:forge:ingots>.matches(<item:minecraft:iron_ingot>);
ParameterTypeDescription
stackIItemStackThe stack to check
matches

Does the given stack match the ingredient?

Return Type: boolean

ZenScript
Copy
IIngredient.matches(stack as IItemStack, ignoreDamage as boolean) as boolean
ParameterTypeDescription
stackIItemStackThe stack to check
ignoreDamagebooleanShould damage be checked?
modifyShiftTooltip

Return Type: void

ZenScript
Copy
IIngredient.modifyShiftTooltip(shiftedFunction as ITooltipFunction, unshiftedFunction as ITooltipFunction) as void
ParameterTypeDescriptionOptionalDefaultValue
shiftedFunctionITooltipFunctionNo Description Providedfalse
unshiftedFunctionITooltipFunctionNo Description Providedtrue
modifyTooltip

Return Type: void

ZenScript
Copy
IIngredient.modifyTooltip(function as ITooltipFunction) as void
ParameterTypeDescription
functionITooltipFunctionNo Description Provided
only

Use this if you already have the condition from another ingredient

Return Type: MCIngredientConditioned<IIngredient>

ZenScript
Copy
IIngredient.only(condition as IIngredientCondition<IIngredient>) as MCIngredientConditioned<IIngredient>
ParameterTypeDescription
conditionIIngredientCondition<IIngredient>No Description Provided
onlyDamaged

Return Type: MCIngredientConditioned<IIngredient>

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

<tag:items:forge:ingots>.onlyDamaged();
onlyIf

Return Type: MCIngredientConditioned<IIngredient>

ZenScript
Copy
IIngredient.onlyIf(uid as string, function as Predicate<IItemStack>) as MCIngredientConditioned<IIngredient>
ParameterTypeDescriptionOptionalDefaultValue
uidstringNo Description Providedfalse
functionPredicate<IItemStack>No Description Providedtrue
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.

Return Type: void

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

<tag:items:forge:ingots>.removeGlobalAttribute(<attribute:minecraft:generic.attack_damage>, [<equipmentslottype:chest>]);
ParameterTypeDescription
attributeAttributeThe attribute to remove.
slotTypesMCEquipmentSlotType[]The slot types to remove it from.
removeGlobalAttributeModifier

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

Return Type: void

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

<tag:items:forge:ingots>.removeGlobalAttributeModifier("8c1b5535-9f79-448b-87ae-52d81480aaa3", [<equipmentslottype:chest>]);
ParameterTypeDescription
uuidstringThe unique id of the AttributeModifier to remove.
slotTypesMCEquipmentSlotType[]The slot types to remove it from.
removeTooltip

Return Type: void

ZenScript
Copy
IIngredient.removeTooltip(regex as string) as void
ParameterTypeDescription
regexstringNo Description Provided

Operators

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:forge:ingots>
OR
ZenScript
Copy
myIIngredient | other as IIngredient

Properties

NameTypeHas GetterHas SetterDescription
burnTimevoidfalsetrueSets the burn time of this ingredient, for use in the furnace and other machines
commandStringstringtruefalseReturns the BEP to get this stack
itemsIItemStack[]truefalseNo Description Provided