IIngredient
Link to iingredient
The CraftTweaker Ingredient class which is used to power our recipes and ItemStack matching.
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 Copyimport crafttweaker.api.ingredient.IIngredient;
Implemented Interfaces
Link to implemented-interfaces
IIngredient implements the following interfaces. That means all methods defined in these interfaces are also available in IIngredient
Casters
Link to casters
Result Type | Is Implicit |
---|---|
Result Type IData | Is Implicit true |
Result Type IIngredientWithAmount | Is Implicit true |
Result Type Ingredient | Is Implicit true |
Result Type MapData | Is Implicit true |
Methods
Link to methods
Name: addGlobalAttributeModifier
This method no longer works and is deprecated, it is left in so it doesn't cause breaking changes.
Please use Item Components instead.
ZenScript CopyIIngredient.addGlobalAttributeModifier(attribute as Attribute, id as ResourceLocation, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])
Parameter | Type |
---|---|
Parameter attribute | Type Attribute |
Parameter id | Type ResourceLocation |
Parameter value | Type double |
Parameter operation | Type AttributeOperation |
Parameter slotTypes | Type EquipmentSlot[] |
Name: addTooltip
ZenScript CopyIIngredient.addTooltip(content as Component)
Parameter | Type |
---|---|
Parameter content | Type Component |
Name: anyDamage
Return Type: IIngredient
ZenScript Copy// IIngredient.anyDamage() as IIngredient
<tag:item:minecraft:wool>.anyDamage();
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:item:minecraft:wool>.asIIngredientWithAmount();
Name: asVanillaIngredient
Create a Vanilla ingredient matching this one.
Return Type: Ingredient
ZenScript Copy// IIngredient.asVanillaIngredient() as Ingredient
<tag:item:minecraft:wool>.asVanillaIngredient();
Name: clearTooltip
ZenScript CopyIIngredient.clearTooltip(leaveName as boolean)
Parameter | Type | Optional | Default Value |
---|---|---|---|
Parameter leaveName | Type boolean | Optional true | Default Value false |
Name: condition
Use this if you already have the condition from another ingredient
Return Type: IIngredient
ZenScript CopyIIngredient.condition(condition as IIngredientCondition) as IIngredient
Parameter | Type |
---|---|
Parameter condition | Type IIngredientCondition |
Name: contains
Does the ingredient contain the given ingredient?
Return Type: boolean
ZenScript Copy// IIngredient.contains(ingredient as IIngredient) as boolean
<tag:item:minecraft:wool>.contains((<item:minecraft:iron_ingot> | <item:minecraft:gold_ingot>));
Parameter | Type | Description |
---|---|---|
Parameter ingredient | Type IIngredient | Description The ingredient to check |
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:item:minecraft:wool>.getRemainingItem(<item:minecraft:iron_ingot>);
Parameter | Type | Description |
---|---|---|
Parameter stack | Type IItemStack | Description 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:item: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:item:minecraft:wool>.matches(<item:minecraft:iron_ingot>);
Parameter | Type | Description |
---|---|---|
Parameter stack | Type IItemStack | Description The stack to check |
Name: modifyShiftTooltip
ZenScript CopyIIngredient.modifyShiftTooltip(shiftedFunction as ITooltipFunction, unshiftedFunction as ITooltipFunction)
Parameter | Type | Optional |
---|---|---|
Parameter shiftedFunction | Type ITooltipFunction | Optional false |
Parameter unshiftedFunction | Type ITooltipFunction | Optional true |
Name: modifyTooltip
ZenScript CopyIIngredient.modifyTooltip(function as ITooltipFunction)
Parameter | Type |
---|---|
Parameter function | Type ITooltipFunction |
Name: mul
Use this in contexts where machines accept more than one item to state that fact.
Return Type: IIngredientWithAmount
ZenScript CopyIIngredient.mul(amount as int) as IIngredientWithAmount
Parameter | Type |
---|---|
Parameter amount | Type int |
Name: onlyDamaged
Return Type: IIngredient
ZenScript Copy// IIngredient.onlyDamaged() as IIngredient
<tag:item:minecraft:wool>.onlyDamaged();
Name: onlyDamagedAtLeast
Return Type: IIngredient
ZenScript CopyIIngredient.onlyDamagedAtLeast(minDamage as int) as IIngredient
Parameter | Type |
---|---|
Parameter minDamage | Type int |
Name: onlyDamagedAtMost
Return Type: IIngredient
ZenScript CopyIIngredient.onlyDamagedAtMost(maxDamage as int) as IIngredient
Parameter | Type |
---|---|
Parameter maxDamage | Type int |
Name: onlyIf
Return Type: IIngredient
ZenScript CopyIIngredient.onlyIf(uid as string, function as Predicate<IItemStack>) as IIngredient
Parameter | Type | Optional |
---|---|---|
Parameter uid | Type string | Optional false |
Parameter function | Type Predicate<IItemStack> | Optional true |
Name: removeGlobalAttribute
This method no longer works and is deprecated, it is left in so it doesn't cause breaking changes.
Please use Item Components instead.
ZenScript CopyIIngredient.removeGlobalAttribute(attribute as Attribute, slotTypes as EquipmentSlot[])
Parameter | Type |
---|---|
Parameter attribute | Type Attribute |
Parameter slotTypes | Type EquipmentSlot[] |
Name: removeGlobalAttributeModifier
This method no longer works and is deprecated, it is left in so it doesn't cause breaking changes.
Please use Item Components instead.
ZenScript CopyIIngredient.removeGlobalAttributeModifier(uuid as stdlib.UUID, slotTypes as EquipmentSlot[])
Parameter | Type |
---|---|
Parameter uuid | Type stdlib.UUID |
Parameter slotTypes | Type EquipmentSlot[] |
Name: removeGlobalAttributeModifier
This method no longer works and is deprecated, it is left in so it doesn't cause breaking changes.
Please use Item Components instead.
ZenScript CopyIIngredient.removeGlobalAttributeModifier(uuid as string, slotTypes as EquipmentSlot[])
Parameter | Type |
---|---|
Parameter uuid | Type string |
Parameter slotTypes | Type EquipmentSlot[] |
Name: removeTooltip
ZenScript CopyIIngredient.removeTooltip(regex as string)
Parameter | Type |
---|---|
Parameter regex | Type string |
Name: reuse
Return Type: IIngredient
ZenScript Copy// IIngredient.reuse() as IIngredient
<tag:item: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:item:minecraft:wool>.setBurnTime(500);
Parameter | Type | Description |
---|---|---|
Parameter time | Type int | Description the new burn time |
Name: transformCustom
Return Type: IIngredient
ZenScript CopyIIngredient.transformCustom(uid as string, function as Function<IItemStack,IItemStack>) as IIngredient
Parameter | Type | Optional |
---|---|---|
Parameter uid | Type string | Optional false |
Parameter function | Type Function<IItemStack,IItemStack> | Optional true |
Name: transformDamage
Return Type: IIngredient
ZenScript CopyIIngredient.transformDamage(amount as int) as IIngredient
Parameter | Type | Optional | Default Value |
---|---|---|---|
Parameter amount | Type int | Optional true | Default Value 1 |
Name: transformReplace
Return Type: IIngredient
ZenScript CopyIIngredient.transformReplace(replaceWith as IItemStack) as IIngredient
Parameter | Type |
---|---|
Parameter replaceWith | Type IItemStack |
Operators
Link to operators
Name: CONTAINS
Does the ingredient contain the given ingredient?
ZenScript Copyingredient as IIngredient in myIIngredient
(<item:minecraft:iron_ingot> | <item:minecraft:gold_ingot>) in <tag:item:minecraft:wool>
Name: MUL
Use this in contexts where machines accept more than one item to state that fact.
ZenScript CopymyIIngredient * amount as int
Name: OR
ZenScript CopymyIIngredient | other as IIngredient
Properties
Link to properties
Name | Type | Has Getter | Has Setter | Description |
---|---|---|---|---|
Name burnTime | Type void | Has Getter false | Has Setter true | Description Sets the burn time of this ingredient, for use in the furnace and other machines |
Name commandString | Type string | Has Getter true | Has Setter false | Description Returns the BEP to get this stack |
Name empty | Type boolean | Has Getter true | Has Setter false | Description Checks if this ingredient is empty. |
Name items | Type IItemStack[] | Has Getter true | Has Setter false | Description ​ |