Home Commands Examples Getting Started With Scripts Global Keywords

IngredientConditioned<T : 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.

script.zs
import crafttweaker.api.ingredient.type.IngredientConditioned;

Implemented Interfaces

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

Casters

Result TypeIs Implicit
Result Type
IData
Is Implicit
true
Result Type
IIngredientWithAmount
Is Implicit
true
Result Type
MapData
Is Implicit
true

Methods

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

script.zs
// IngredientConditioned.addGlobalAttributeModifier(attribute as Attribute, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])
myIngredientConditioned.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
attribute
Type
Attribute
Description
The Attribute of the modifier.
Parameter
name
Type
string
Description
The name of the modifier.
Parameter
value
Type
double
Description
The value of the modifier.
Parameter
operation
Type
AttributeOperation
Description
The operation of the modifier.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
What slots the modifier is valid for.

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

script.zs
// IngredientConditioned.addGlobalAttributeModifier(attribute as Attribute, uuid as invalid, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])
myIngredientConditioned.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, IItemStack.BASE_ATTACK_DAMAGE_UUID, "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
attribute
Type
Attribute
Description
The Attribute of the modifier.
Parameter
uuid
Type
invalid
Description
The unique identifier of the modifier to replace.
Parameter
name
Type
string
Description
The name of the modifier.
Parameter
value
Type
double
Description
The value of the modifier.
Parameter
operation
Type
AttributeOperation
Description
The operation of the modifier.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
What slots the modifier is valid for.

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

script.zs
// IngredientConditioned.addGlobalAttributeModifier(attribute as Attribute, uuid as string, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])
myIngredientConditioned.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, "8c1b5535-9f79-448b-87ae-52d81480aaa3", "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
attribute
Type
Attribute
Description
The Attribute of the modifier.
Parameter
uuid
Type
string
Description
The unique identifier of the modifier to replace.
Parameter
name
Type
string
Description
The name of the modifier.
Parameter
value
Type
double
Description
The value of the modifier.
Parameter
operation
Type
AttributeOperation
Description
The operation of the modifier.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
What slots the modifier is valid for.
script.zs
IngredientConditioned.addShiftTooltip(content as Component, showMessage as Component)
ParameterTypeOptional
Parameter
content
Type
Component
Optional
false
Parameter
showMessage
Type
Component
Optional
true
script.zs
IngredientConditioned.addTooltip(content as Component)
ParameterType
Parameter
content
Type
Component

Return Type: IngredientConditioned<IIngredient>

script.zs
// IngredientConditioned.anyDamage() as IngredientConditioned<IIngredient>
myIngredientConditioned.anyDamage();

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

Return Type: IIngredientWithAmount

script.zs
// IngredientConditioned.asIIngredientWithAmount() as IIngredientWithAmount
myIngredientConditioned.asIIngredientWithAmount();
script.zs
IngredientConditioned.clearTooltip(leaveName as boolean)
ParameterTypeOptionalDefault Value
Parameter
leaveName
Type
boolean
Optional
true
Default Value
false

Does the ingredient contain the given ingredient?

Return Type: boolean

script.zs
// IngredientConditioned.contains(ingredient as IIngredient) as boolean
myIngredientConditioned.contains((<item:minecraft:iron_ingot> | <item:minecraft:gold_ingot>));
ParameterTypeDescription
Parameter
ingredient
Type
IIngredient
Description
The ingredient to check

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

script.zs
// IngredientConditioned.getRemainingItem(stack as IItemStack) as IItemStack
myIngredientConditioned.getRemainingItem(<item:minecraft:iron_ingot>);
ParameterTypeDescription
Parameter
stack
Type
IItemStack
Description
The stack to provide for this ingredient.

Checks if this ingredient is empty.

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

script.zs
// IngredientConditioned.isEmpty() as boolean
myIngredientConditioned.isEmpty();

Does the given stack match the ingredient?

Return Type: boolean

script.zs
// IngredientConditioned.matches(stack as IItemStack) as boolean
myIngredientConditioned.matches(<item:minecraft:iron_ingot>);
ParameterTypeDescription
Parameter
stack
Type
IItemStack
Description
The stack to check

Return Type: boolean

script.zs
IngredientConditioned.matches(stack as IItemStack, ignoreDamage as boolean) as boolean
ParameterType
Parameter
stack
Type
IItemStack
Parameter
ignoreDamage
Type
boolean
script.zs
IngredientConditioned.modifyShiftTooltip(shiftedFunction as ITooltipFunction, unshiftedFunction as ITooltipFunction)
ParameterTypeOptional
Parameter
shiftedFunction
Type
ITooltipFunction
Optional
false
Parameter
unshiftedFunction
Type
ITooltipFunction
Optional
true
script.zs
IngredientConditioned.modifyTooltip(function as ITooltipFunction)
ParameterType
Parameter
function
Type
ITooltipFunction

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

Return Type: IIngredientWithAmount

script.zs
IngredientConditioned.mul(amount as int) as IIngredientWithAmount
ParameterType
Parameter
amount
Type
int

Use this if you already have the condition from another ingredient

Return Type: IngredientConditioned<IIngredient>

script.zs
IngredientConditioned.only(condition as IIngredientCondition<IIngredient>) as IngredientConditioned<IIngredient>
ParameterType
Parameter
condition
Type
IIngredientCondition<IIngredient>

Return Type: IngredientConditioned<IIngredient>

script.zs
// IngredientConditioned.onlyDamaged() as IngredientConditioned<IIngredient>
myIngredientConditioned.onlyDamaged();

Return Type: IngredientConditioned<IIngredient>

script.zs
IngredientConditioned.onlyDamagedAtLeast(minDamage as int) as IngredientConditioned<IIngredient>
ParameterType
Parameter
minDamage
Type
int

Return Type: IngredientConditioned<IIngredient>

script.zs
IngredientConditioned.onlyDamagedAtMost(maxDamage as int) as IngredientConditioned<IIngredient>
ParameterType
Parameter
maxDamage
Type
int

Return Type: IngredientConditioned<IIngredient>

script.zs
IngredientConditioned.onlyIf(uid as string, function as Predicate<IItemStack>) as IngredientConditioned<IIngredient>
ParameterTypeOptional
Parameter
uid
Type
string
Optional
false
Parameter
function
Type
Predicate<IItemStack>
Optional
true

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.

script.zs
// IngredientConditioned.removeGlobalAttribute(attribute as Attribute, slotTypes as EquipmentSlot[])
myIngredientConditioned.removeGlobalAttribute(<attribute:minecraft:generic.attack_damage>, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
attribute
Type
Attribute
Description
The attribute to remove.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
The slot types to remove it from.

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

script.zs
// IngredientConditioned.removeGlobalAttributeModifier(uuid as invalid, slotTypes as EquipmentSlot[])
myIngredientConditioned.removeGlobalAttributeModifier(IItemStack.BASE_ATTACK_DAMAGE_UUID, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
uuid
Type
invalid
Description
The unique id of the AttributeModifier to remove.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
The slot types to remove it from.

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

script.zs
// IngredientConditioned.removeGlobalAttributeModifier(uuid as string, slotTypes as EquipmentSlot[])
myIngredientConditioned.removeGlobalAttributeModifier("8c1b5535-9f79-448b-87ae-52d81480aaa3", [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
uuid
Type
string
Description
The unique id of the AttributeModifier to remove.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
The slot types to remove it from.
script.zs
IngredientConditioned.removeTooltip(regex as string)
ParameterType
Parameter
regex
Type
string

Return Type: IIngredientTransformed<IIngredient>

script.zs
// IngredientConditioned.reuse() as IIngredientTransformed<IIngredient>
myIngredientConditioned.reuse();

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

script.zs
// IngredientConditioned.setBurnTime(time as int)
myIngredientConditioned.setBurnTime(500);
ParameterTypeDescription
Parameter
time
Type
int
Description
the new burn time

Use this if you already have the transformer from another ingredient

Return Type: IIngredientTransformed<IIngredient>

script.zs
IngredientConditioned.transform(transformer as IIngredientTransformer<IIngredient>) as IIngredientTransformed<IIngredient>
ParameterType
Parameter
transformer
Type
IIngredientTransformer<IIngredient>

Return Type: IIngredientTransformed<IIngredient>

script.zs
IngredientConditioned.transformCustom(uid as string, function as Function<IItemStack,IItemStack>) as IIngredientTransformed<IIngredient>
ParameterTypeOptional
Parameter
uid
Type
string
Optional
false
Parameter
function
Type
Function<IItemStack,IItemStack>
Optional
true

Return Type: IIngredientTransformed<IIngredient>

script.zs
IngredientConditioned.transformDamage(amount as int) as IIngredientTransformed<IIngredient>
ParameterTypeOptionalDefault Value
Parameter
amount
Type
int
Optional
true
Default Value
1

Return Type: IIngredientTransformed<IIngredient>

script.zs
IngredientConditioned.transformReplace(replaceWith as IItemStack) as IIngredientTransformed<IIngredient>
ParameterType
Parameter
replaceWith
Type
IItemStack

Operators

Does the ingredient contain the given ingredient?

script.zs
ingredient as IIngredient in myIngredientConditioned
(<item:minecraft:iron_ingot> | <item:minecraft:gold_ingot>) in myIngredientConditioned

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

script.zs
myIngredientConditioned * amount as int
script.zs
myIngredientConditioned | other as IIngredient

Properties

NameTypeHas GetterHas SetterDescription
Name
baseIngredient
Type
T
Has Getter
true
Has Setter
false
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
condition
Type
IIngredientCondition<T>
Has Getter
true
Has Setter
false
Description
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