IItemStack
Link to iitemstack
An IItemStack Object consists of an item definition, a meta/damage value and NBT data.
In other words, it refers to an item or to a block.
Импорт пакета
Link to импорт-пакета
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.
import crafttweaker.item.IItemStack;
Вызов IItemStack
Link to вызов-iitemstack
Есть несколько методов, как получить IItemStack:
- Using the bracket Handler
<minecraft:apple>
- Using the
makeStack()
method on a IItemDefinition object<minecraft:stone>.definition.makeStack(0)
- Using the
stack
getter on a IEntityDrop object - Using the
firstItem
getter on a IOreDictEntry
Calling an IItemStack[] or a IItemStack List
Link to calling-an-iitemstack-or-a-iitemstack-list
If you call these functions, you will most likely do so to iterate through the resulting lists/Arrays
- Using the
items
method on an IIngredient returns a IItemStack List:<ore:ingotGold>.items
- Using the
itemArray
method on an IIngredient returns a IItemStack[]:<ore:ingotGold>.itemArray
- Using the
items
method on a IMod object returns a IItemStack[]:loadedMods["minecraft"].items
Функции
Link to функции
Так что же мы можем сделать с ним сейчас?
Наследование от IIngredient
Link to наследование-от-iingredient
IItemStack extends IIngredient.
That means all functionality that is available to IIngredient objects also is applicable to IItemStacks.
Derived Methods
- stack.mark
- stack.amount
- stack.items
- stack.itemArray
- stack.liquids
- stack.commandString
- stack | otherIngredient
- stack.or(otherIngredient)
- stack.transform(transformer)
- stack.transformNew(transformer)
- stack.only(condition)
- stack.marked(mark)
- stack.matches(item)
- stack.matchesExact(item)
- stack.matches(liquid)
- stack has ingredient
- stack.applyTransform(stack,player)
- stack.hasTransformers()
Геттеры/сеттеры
Link to геттерысеттеры
Можете прочитать, как их использовать здесь. Также, можете проверить примеры ниже.
Геттер/метод | ZenSetter/ZenMethod | Тип |
---|---|---|
Геттер/метод definition | ZenSetter/ZenMethod | Тип IItemDefinition |
Геттер/метод name | ZenSetter/ZenMethod | Тип string |
Геттер/метод displayName | ZenSetter/ZenMethod displayName | Тип string |
Геттер/метод maxStackSize | ZenSetter/ZenMethod maxStackSize | Тип int |
Геттер/метод hardness | ZenSetter/ZenMethod hardness | Тип float |
Геттер/метод damage | ZenSetter/ZenMethod | Тип int |
Геттер/метод maxDamage | ZenSetter/ZenMethod maxDamage | Тип int |
Геттер/метод hasTag | ZenSetter/ZenMethod | Тип bool |
Геттер/метод tag | ZenSetter/ZenMethod withTag(tag) | Тип IData |
Геттер/метод ores | ZenSetter/ZenMethod | Тип List<IOreDictEntry> |
Геттер/метод toolClasses | ZenSetter/ZenMethod | Тип List<string> |
Геттер/метод itemEnchantability | ZenSetter/ZenMethod | Тип int |
Геттер/метод containerItem | ZenSetter/ZenMethod | Тип IItemStack |
Геттер/метод hasContainerItem | ZenSetter/ZenMethod | Тип bool |
Геттер/метод repairCost | ZenSetter/ZenMethod repairCost | Тип int |
Геттер/метод canEditBlocks | ZenSetter/ZenMethod | Тип bool |
Геттер/метод isOnItemFrame | ZenSetter/ZenMethod | Тип bool |
Геттер/метод isEnchantable | ZenSetter/ZenMethod | Тип bool |
Геттер/метод isEnchanted | ZenSetter/ZenMethod | Тип bool |
Геттер/метод isDamaged | ZenSetter/ZenMethod | Тип bool |
Геттер/метод isDamageable | ZenSetter/ZenMethod | Тип bool |
Геттер/метод isItemBlock | ZenSetter/ZenMethod | Тип bool (if contained item is an itemblock) |
Геттер/метод isStackable | ZenSetter/ZenMethod | Тип bool |
Геттер/метод isBeaconPayment | ZenSetter/ZenMethod | Тип bool |
Геттер/метод hasEffect | ZenSetter/ZenMethod | Тип bool |
Геттер/метод hasDisplayName | ZenSetter/ZenMethod | Тип bool |
Геттер/метод metadata | ZenSetter/ZenMethod | Тип int |
Геттер/метод hasSubtypes | ZenSetter/ZenMethod | Тип bool |
Геттер/метод isEmpty | ZenSetter/ZenMethod | Тип bool |
Геттер/метод burnTime | ZenSetter/ZenMethod | Тип int |
Геттер/метод showsDurabilityBar | ZenSetter/ZenMethod | Тип bool |
Геттер/метод hasCustomEntity | ZenSetter/ZenMethod | Тип bool |
Геттер/метод enchantments | ZenSetter/ZenMethod | Тип List<IEnchantment> |
Геттер/метод совпадающий Тег Точно | ZenSetter/ZenMethod | Тип bool |
Геттер/метод maxItemUseDuration | ZenSetter/ZenMethod | Тип int |
Геттер/метод capNBT | ZenSetter/ZenMethod | Тип IData |
Количество
Link to количество
Вызов метода | Возвращает | Типы параметров |
---|---|---|
Вызов метода stack.anyAmount() | Возвращает A new IItemStack with any amount for recipes | Типы параметров |
Вызов метода stack.amount(int amount) | Возвращает A new IItemStack with the specified amount | Типы параметров int |
Вызов метода stack.withAmount(int amount) | Возвращает A new IItemStack with the specified amount | Типы параметров int |
Вызов метода stack * amount | Возвращает A new IItemStack with the specified amount | Типы параметров int |
Вызов метода stack.splitStack(int amount) | Возвращает Разделяет IItemStack. Старый будет соответственно уменьшен. | Типы параметров int |
Weight
Link to weight
Вызов метода | Возвращает | Типы параметров |
---|---|---|
Вызов метода stack.percent(float chance) | Возвращает WeightedItemStack | Типы параметров float (100 = 100%) |
Вызов метода stack.weight(float chance) | Возвращает WeightedItemStack | Типы параметров float (1 = 100%) |
Damage
Link to damage
Вызов метода | Возвращает | Типы параметров |
---|---|---|
Вызов метода stack.anyDamage() | Возвращает A new IItemStack with any damage for recipes | Типы параметров |
Вызов метода stack.withDamage(int damage) | Возвращает A new IItemStack with the specified damage | Типы параметров int |
Вызов метода stack.damageItem(int amount, IEntity entity) | Возвращает void | Типы параметров int, IEntity |
Теги
Link to теги
Вызов метода | Возвращает | Типы параметров |
---|---|---|
Вызов метода stack.withEmptyTag() | Возвращает A new IItemStack with an empty NBT tag | Типы параметров |
Вызов метода stack.withTag(IData tag) | Возвращает A new IItemStack with the specified NBT tag | Типы параметров IData |
Вызов метода stack.withTag(IData tag, bool matchTagExact) | Возвращает A new IItemStack with the specified NBT tag | Типы параметров IData, bool |
Вызов метода stack.removeTag(String name) | Возвращает A new IItemStack with the specified NBT tag removed, if it exists | Типы параметров string |
Вызов метода stack.updateTag(тег IDat) | Возвращает A new IItemStack with the added NBT tag | Типы параметров IData |
Вызов метода stack.updateTag(IData тег, bool matchTagExact) | Возвращает A new IItemStack with the added NBT tag | Типы параметров IData, bool |
Block Casting
Link to block-casting
Вызов метода | Возвращает |
---|---|
Вызов метода stack.asBlock() | Возвращает A new IBlock object. |
Вызов метода stack as IBlock | Возвращает A new IBlock object. |
Lore/DisplayName
Link to loredisplayname
Вызов метода | Возвращает | Типы параметров |
---|---|---|
Вызов метода stack.withDisplayName(String name) | Возвращает A new IItemStack with the specified display name. Unlike the displayName setter, this only applies to this single item. | Типы параметров string (supports color codes with "§") |
Вызов метода stack.withLore(String[] lore) | Возвращает A new IItemStack with the specified lore. | Типы параметров string[] (supports color codes with "§") |
Вызов метода stack.clearCustomName() | Возвращает void | Типы параметров |
Cap NBT
Link to cap-nbt
Gets or Sets an item's forge capability data. In most cases, the tag of the stack has what you need, this is mainly for advanced use cases.
Вызов метода | Возвращает |
---|---|
Вызов метода stack.getCapNBT() | Возвращает IData |
Вызов метода stack.withCapNBT(IData data) | Возвращает A new IItemStack with the specified capability NBT |
Enchantments
Link to enchantments
Вызов метода | Возвращает | Типы параметров |
---|---|---|
Вызов метода stack.canApplyAtCraftingTable(IEnchantmentDefinition enchantment) | Возвращает A bool. | Типы параметров IEnchantmentDefinition |
Вызов метода stack.addEnchantment(IEnchantment enchantment) | Возвращает void | Типы параметров IEnchantment |
canItem...
Link to canitem
Вызов метода | Возвращает | Типы параметров |
---|---|---|
Вызов метода stack.canPlaceOn(IBlockDefinition block) | Возвращает A bool that tells if the item can be placed on the block. | Типы параметров IBlockDefinition |
Вызов метода stack.canDestroy(IBlockDefinition block) | Возвращает A bool that tells if the item can destroy the block. | Типы параметров IBlockDefinition |
Вызов метода stack.canHarvestBlock(IBlockState block) | Возвращает A bool that tells if the item can harvest the block. | Типы параметров IBlockState |
Вызов метода stack.getStrengthAgainstBlock(IBlockState block) | Возвращает A float that represents the item's strength against the block. | Типы параметров IBlockState |
create IEntityItem
Link to create-ientityitem
Вызов метода | Возвращает | Parameter Types |
---|---|---|
Вызов метода stack.createEntityItem(IWorld world, float x, float y, float z); | Возвращает A new IEntityItem that corresponds to the newly created item in the world | Parameter Types IWorld, float, float, float |
Вызов метода stack.createEntityItem(IWorld world, IBlockPos pos); | Возвращает A new IEntityItem that corresponds to the newly created item in the world | Parameter Types IWorld, IBlockPos |
Mutable
Link to mutable
Gets a mutable ItemStack. Its damage, amount and tag is mutable. Its withTag
, withAmount
and other methods will change the item itself, rather than returning a new changed item.
Вызов метода | Возвращает |
---|---|
Вызов метода stack.mutable() | Возвращает IMutableItemStack |
ItemTransformers and ItemConditions
Link to itemtransformers-and-itemconditions
You can find how to use these either in the IIngredient page or in their respecive entries:
Item Conditions
Item Transformers
Примеры
Link to примеры
DisplayName
Link to displayname
Globally (translates the item to the new name).
ZenScript Copyval apple = <minecraft:apple>;
//prints "Apple"
print(apple.displayName);
//Sets apples Display Name to "Tomato"
apple.displayName = "Tomato";
//prints "Tomato"
print(apple.displayName);
Locally (only this single item).
ZenScript Copy<minecraft:coal>.withDisplayName("Black Gold");
Lore
Link to lore
<minecraft:coal>.withLore(["This function","requires a","string[]"]);
Maximum Stack Size
Link to maximum-stack-size
The maximum Stack Size is how many items fit in one Stack, for example, wool’s Stack size is 64 and Buckets’ only 16.
ZenScript Copyval apple = <minecraft:apple>;
val bucket = <minecraft:bucket>;
//prints 64
print(apple.maxStackSize);
//sets apples Max Stack size to 32
apple.maxStackSize = 32;
//prints 32
print(apple.maxStackSize);
//sets apples Max Stack size to Bucket's Max Stack size
apple.maxStackSize = bucket.maxStackSize;
//prints 16
print(apple.maxStackSize);
Hardness
Link to hardness
The Hardness is how long it takes to break the referred block. Only works if the object refers to a block.
ZenScript Copyval grass = <minecraft:grass>;
//prints 1.0
print(grass.hardness);
//sets grass Hardness to 10.0
grass.hardness = 10.0;
//prints 10.0
print(grass.hardness);
Damage
Link to damage-1
The damage for items that cannot be damaged is 0.
ZenScript Copyval pick = <minecraft:diamond_pickaxe>;
//prints 1561
print(pick.maxDamage);
//sets the max damage of the Diamond Pickaxe to 256
pick.maxDamage = 256;
//prints 256
print(pick.maxDamage);
//Damage doesn't matter, used in recipes
<minecraft:iron_pickaxe>.anyDamage();
//With the given damage
<minecraft:iron_pickaxe>.withDamage(122);
Tag
Link to tag
The tag is an IData object.
If the item does not contain a tag, it will return an empty tag, never null.
ZenScript Copy//creates apple with the given tag
//Removes existing tags
<minecraft:apple>.withTag({Unbreakable: 1});
//creates apple with an empty tag
<minecraft:apple>.withEmptyTag();
//removes a tag by its name
item.removeTag("tagName");
//removes all tags from an item
item.removeTag(null);
//update the existing tag
//If the tag doesn't override an existing tag, they will stay constant.
item.updateTag({Unbreakable: 1});
Liquid
Link to liquid
Returns the liquid contained in a single item (if multiple) or null if the item is no container.
Returns an ILiquidStack Object or null.
ZenScript Copyval lav = <minecraft:lava_bucket>;
print(lav.liquid.name);
Количество
Link to количество-1
How many apples are there?
ZenScript Copy<minecraft:apple>.anyAmount();
//1 Apple
val apple = <minecraft:apple>;
//2 Apples
val moreApples = apple * 2;
//3 Apples
val evenMoreApples = <minecraft:apple> * 3;
Weight
Link to weight-1
Returns a weightedItemStack with the provided percentage.
ZenScript Copyval apple = <minecraft:apple>;
//Creates a weightedItemStack with 100 percent chance
var applePercentage = apple % 100;
//Does the same as the above
applePercentage = apple.weight(1.0);
Ores
Link to ores
Returns a List of IOreDictEntries referring to this item.
ZenScript Copy<minecraft:apple>.ores;
Casting to IBlock
Link to casting-to-iblock
You can cast an IItemStack to an IBlock, as long as you are referring to a block, otherwise the cast will throw an exception.
ZenScript Copy<minecraft:dirt>.asBlock();
<minecraft:dirt> as crafttweaker.block.IBlock;
You can also test if an IItemStack contains an ItemBlock and can thus be converted:
zenscript: Copy<minecraft:dirt>.isItemBlock; // true
<minecraft:stick>.isItemBlock; // false
Food Properties
Link to food-properties
You can check if an IItemStack is a food item and what food properties it has.
May not work for every modded food item!
ZenScript Copy<minecraft:apple>.isFood; //true
<minecraft:apple>.saturation; //0.3
<minecraft:apple>.healAmount; //4