Создание рецептов
Прежде чем создавать рецепты, рекомендуем сначала прочитать Основа предмета, чтобы понять это руководство.
Основы
Давайте создадим рецепт для нашей палочки, который мы добавили в руководстве основа предмета.
Шаблон ингредиентов
Давайте начнем с объявления шаблона или макета рецепта, в нашем примере мы хотим, чтобы игрок поместил кирку поверх двух палочек.
который будет выглядеть так:
ingredientPattern: "P,S,S",
width: 1,
height: 3,
P
и S
являются идентификаторами, которые будут определены позже. Каждая строка разделена запятой, а пустая ячейка помечена подчеркиванием _
. Ширина
этого рецепта 1
и в нем 3
строки. Не ставьте пробелы между ячейками, например _ P _
это 5, а не 3 ячейки.
Ингредиенты
Все, что нам нужно сделать сейчас, это определить идентификаторы, которые мы использовали ранее. В нашем примере P
обозначает медную кирку, а S
- обычную палку.
ingredients: {
"P": { type: "item", code: "game:pickaxe-copper"},
"S": { type: "item", code: "game:stick"}
},
Type
является либо block
, либо item
, в зависимости от того, является ли он предметом или блоком.
Когда в рецептах есть ванильные предметы, им нужно game:
перед названием предмета. Когда они из вашего собственного мода, вы можете просто поставить название предмета.
Чтобы узнать code
каждого предмета (или блока), вы можете ввести .edi
в консоль, которая добавит свойство code в всплывающую подсказку:
Кроме того, мы могли бы добавить необходимое количество к нашим ингредиентам, поэтому вместо одной палки на слот мы могли бы потребовать больше:
ingredients: {
"P": { type: "item", code: "game:pickaxe-copper"},
"S": { type: "item", code: "game:stick", quantity: 2}
},
Еще одна вещь, которую мы могли бы сделать - вместо того, чтобы потреблять кирку, мы могли бы использовать ее как инструмент:
ingredients: {
"P": { type: "item", code: "game:pickaxe-copper", isTool: true},
"S": { type: "item", code: "game:stick"}
},
Это может привести к тому, что кирка потеряет одну прочность во время крафта, вместо того, чтобы потреблять всю кирку сразу.
Возврат (выход)
Нам все еще нужно определить результат, который довольно похож на определение ингредиентов:
output: { type: "item", code: "wand-pickaxe"}
Теоретически, мы могли бы также добавить свойство quantity
(количество) здесь.
Распространение
Вот как выглядит наш последний рецепт:
{
ingredientPattern: "P,S,S",
width: 1,
height: 3,
ingredients: {
"P": { type: "item", code: "game:pickaxe-copper"},
"S": { type: "item", code: "game:stick"}
},
output: { type: "item", code: "wand-pickaxe"}
}
Чтобы добавить эти рецепты для крафта в ваш мод, вам нужно создать еще одну папку в вашем рабочем пространстве assets/myadvancedwand/recipes/grid/
и скопировать туда файлы.
Вы можете скачать полный мод, включая предметы здесь.
Продвинутые рецепты
Типовые рецепты
Есть более сложные вещи, которые вы можете сделать с рецептами. Это рецепт для деревянных досок, которые сделаны из бревен:
{
ingredientPattern: "L",
ingredients: {
"L": { type: "block", code: "game:log-*-ud", name: "wood" }
},
width: 1,
height: 1,
output: { type: "block", code: "planks-{wood}", quantity: 4 }
}
Вместо того, чтобы иметь рецепт для каждого типа древесины, вы можете назначить имя ингредиенту (в данном случае это name: "wood"
), и все обозначенное *
, позже будет заменено на выходе. Значение {wood}
будет заменено типом используемого дерева.
Например, если бы у нас был блок бревна березы, его код был бы log-birch-ud
, поэтому *
будет означать birch
, поэтому выходные данные будут преобразованы из code: "planks-{wood}"
в code: "planks-birch"
.
Wondering where some links have gone?
The modding navbox is going through some changes! Check out Navigation Box Updates for more info and help finding specific pages.
Modding | |
---|---|
Modding Introduction | Getting Started • Пакет тем |
Content Modding | Content Mods • Developing a Content Mod • Basic Tutorials • Intermediate Tutorials • Advanced Tutorials • Content Mod Concepts |
Code Modding | Code Mods • Setting up your Development Environment |
Property Overview | Item • Entity • Block • Block Behaviors • Block Classes • Block Entities • Block Entity Behaviors • World properties |
Workflows & Infrastructure | Modding Efficiency Tips • Mod-engine compatibility • Mod Extensibility • VS Engine |
Additional Resources | Community Resources • Modding API Updates • Programming Languages • List of server commands • List of client commands • Client startup parameters • Server startup parameters Example Mods • API Docs • GitHub Repository |