Modding:Creating Recipes/ru: Difference between revisions
(Created page with "Создание рецептов") |
(change separator (tab to comma)) |
||
(30 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Прежде чем создавать рецепты, рекомендуем сначала прочитать [[Basic Item|Основа предмета]], чтобы понять это руководство. | |||
== | == Основы == | ||
Давайте создадим рецепт для нашей палочки, который мы добавили в руководстве [[Basic Item|основа предмета]]. | |||
=== | === Шаблон ингредиентов === | ||
Давайте начнем с объявления шаблона или макета рецепта, в нашем примере мы хотим, чтобы игрок поместил кирку поверх двух палочек. | |||
[[File:Recipe Wand Pickaxe.png]] | [[File:Recipe Wand Pickaxe.png]] | ||
который будет выглядеть так: | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
ingredientPattern: "P S S", | ingredientPattern: "P,S,S", | ||
width: 1, | width: 1, | ||
height: 3, | height: 3, | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<code>P</code> | <code>P</code> и <code>S</code> являются идентификаторами, которые будут определены позже. Каждая строка разделена запятой, а пустая ячейка помечена подчеркиванием <code>_</code>. <code>Ширина</code> этого рецепта <code>1</code> и в нем <code>3</code> строки. Не ставьте пробелы между ячейками, например <code>_ P _</code> это 5, а не 3 ячейки. | ||
=== | === Ингредиенты === | ||
Все, что нам нужно сделать сейчас, это определить идентификаторы, которые мы использовали ранее. В нашем примере <code>P</code> обозначает медную кирку, а <code>S</code> - обычную палку. | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
Line 33: | Line 32: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<code>Type</code> | <code>Type</code> является либо <code>block</code>, либо <code>item</code>, в зависимости от того, является ли он предметом или блоком. | ||
Когда в рецептах есть ванильные предметы, им нужно <code>game:</code> перед названием предмета. Когда они из вашего собственного мода, вы можете просто поставить название предмета. | |||
Чтобы узнать <code>code</code> каждого предмета (или блока), вы можете ввести <code>.edi</code> в консоль, которая добавит свойство code в всплывающую подсказку: | |||
[[File:Recipe Stick Tooltip.png]] | [[File:Recipe Stick Tooltip.png]] | ||
Кроме того, мы могли бы добавить необходимое количество к нашим ингредиентам, поэтому вместо одной палки на слот мы могли бы потребовать больше: | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
Line 51: | Line 50: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Еще одна вещь, которую мы могли бы сделать - вместо того, чтобы потреблять кирку, мы могли бы использовать ее как инструмент: | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
Line 60: | Line 59: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Это может привести к тому, что кирка потеряет одну прочность во время крафта, вместо того, чтобы потреблять всю кирку сразу. | |||
=== | === Возврат (выход) === | ||
Нам все еще нужно определить результат, который довольно похож на определение ингредиентов: | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
output: { type: "item", code: "wand-pickaxe"} | output: { type: "item", code: "wand-pickaxe"} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Теоретически, мы могли бы также добавить свойство <code>quantity</code> (количество) здесь. | |||
=== | === Распространение === | ||
Вот как выглядит наш последний рецепт: | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
ingredientPattern: "P S S", | ingredientPattern: "P,S,S", | ||
width: 1, | width: 1, | ||
height: 3, | height: 3, | ||
Line 88: | Line 87: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Чтобы добавить эти рецепты для крафта в ваш мод, вам нужно создать еще одну папку в вашем рабочем пространстве <code>assets/myadvancedwand/recipes/grid/</code> и скопировать туда файлы. | |||
Вы можете скачать полный мод, включая предметы [[Media:MyWandRecipe.zip|здесь]]. | |||
== | == Продвинутые рецепты == | ||
=== | === Типовые рецепты === | ||
Есть более сложные вещи, которые вы можете сделать с рецептами. Это рецепт для деревянных досок, которые сделаны из бревен: | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
Line 109: | Line 108: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Вместо того, чтобы иметь рецепт для каждого типа древесины, вы можете назначить имя ингредиенту (в данном случае это <code>name: "wood"</code>), и все обозначенное <code>*</code>, позже будет заменено на выходе. Значение <code>{wood}</code> будет заменено типом используемого дерева. | |||
Например, если бы у нас был блок бревна березы, его код был бы <code>log-birch-ud</code>, поэтому <code>*</code> будет означать <code>birch</code>, поэтому выходные данные будут преобразованы из <code>code: "planks-{wood}"</code> в <code>code: "planks-birch"</code>. | |||
{{Navbox/modding|Vintage Story}} | {{Navbox/modding|Vintage Story}} |
Revision as of 15:18, 12 October 2020
Прежде чем создавать рецепты, рекомендуем сначала прочитать Основа предмета, чтобы понять это руководство.
Основы
Давайте создадим рецепт для нашей палочки, который мы добавили в руководстве основа предмета.
Шаблон ингредиентов
Давайте начнем с объявления шаблона или макета рецепта, в нашем примере мы хотим, чтобы игрок поместил кирку поверх двух палочек.
который будет выглядеть так:
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 |
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 • List of server commands • List of client commands • Client startup parameters • Server startup parameters Example Mods • API Docs • GitHub Repository |