🇷🇺 Русский (Russian)
🇷🇺 Русский (Russian)
Внешний вид
🇷🇺 Русский (Russian)
🇷🇺 Русский (Russian)
Внешний вид
This page is written for version:
1.21
This page is written for version:
1.21
Инструменты необходимы для выживания и развития, позволяя игрокам собирать ресурсы, строить здания и защищаться.
INFO
If you're creating multiple tool materials, consider using an Enum
to store them. Vanilla does this in the ToolMaterials
class, which stores all the tool materials that are used in the game.
Этот класс также можно использовать для определения свойств материала вашего инструмента по отношению к классическим материалам инструмента.
"Вы можете создать материал для инструмента, создав новый класс, который его наследует — в этом примере я буду создавать инструменты «Guidite»:
public class GuiditeMaterial implements ToolMaterial {
// Your IDE should override the interface's methods for you, or at least shout at you to do so.
}
Материал инструмента сообщает игре следующую информацию:
getDurability()
Сколько раз можно использовать инструмент, прежде чем он сломается.
Пример
@Override
public int getDurability() {
return 455;
}
getMiningSpeedMultiplier()
Если инструмент используется для разрушения блоков, с какой скоростью он должен их разрушать?
Для справки: скорость добычи алмазного инструмента составляет 8,0F, а скорость добычи каменного инструмента — 4,0F.
Пример
@Override
public float getMiningSpeedMultiplier() {
return 5.0F;
}
getAttackDamage()
Сколько единиц урона должен наносить инструмент при использовании его в качестве оружия против другого существа?
Пример
@Override
public float getAttackDamage() {
return 1.5F;
}
getMiningLevel()
Обратный тег показывает, что инструмент не может добывать. Например, использование тега BlockTags.INCORRECT_FOR_WOODEN_TOOL
запрещает инструмент добывать определенные блоки:
{
"values": [
"#minecraft:needs_diamond_tool",
"#minecraft:needs_iron_tool",
"#minecraft:needs_stone_tool"
]
}
Это означает, что инструмент не может добывать блоки, для которых требуется алмазный, железный или каменный инструмент.
Пример
Мы воспользуемся тегом железного инструмента. Это не позволяет инструментам Guidite добывать блоки, для которых требуется инструмент прочнее железа.
@Override
public TagKey<Block> getInverseTag() {
return BlockTags.INCORRECT_FOR_IRON_TOOL;
}
Если вы хотите использовать пользовательский тег, вы можете использовать TagKey.of(...)
для создания пользовательского ключа тега.
getEnchantability()
Насколько легко получить лучшие и более высокие уровни чар с помощью этого предмета? Для справки: зачаровываемость золота составляет 22, в то время как зачаровываемость незерита — 15.
Пример
@Override
public int getEnchantability() {
return 22;
}
getRepairIngredient()
Какой предмет или предметы используются для ремонта инструмента?
Пример
@Override
public Ingredient getRepairIngredient() {
return Ingredient.ofItems(ModItems.SUSPICIOUS_SUBSTANCE, Items.POTATO);
}
После того как вы создали материал для инструмента и настроили его по своему вкусу, вы можете создать его экземпляр для использования в конструкторах предметов инструмента.
public static final GuiditeMaterial INSTANCE = new GuiditeMaterial();
Используя ту же вспомогательную функцию, что и в руководстве Создание вашего первого элемента, вы можете создавать свои инструменты:
public static final Item GUIDITE_SWORD = register(new SwordItem(GuiditeMaterial.INSTANCE, new Item.Settings()), "guidite_sword");
Не забудьте добавить их в группу предметов, если вы хотите получить к ним доступ из творческого инвентаря!
ItemGroupEvents.modifyEntriesEvent(ItemGroups.TOOLS)
.register((itemGroup) -> itemGroup.add(ModItems.GUIDITE_SWORD));
Вам также придется добавить текстуру, перевод предмета и модель предмета. Однако для модели элемента вам следует использовать модель item/handheld
в качестве родительской.
В этом примере я буду использовать следующую модель и текстуру для предмета «Меч Guidite»:
{
"parent": "item/handheld",
"textures": {
"layer0": "fabric-docs-reference:item/guidite_sword"
}
}
Вот и все! Если вы зайдете в игру, вы увидите свой(и) инструмент(ы) на вкладке инструментов в меню творческого инвентаря.