Modding:Creating Recipes/ru: Difference between revisions

From Vintage Story Wiki
(Created page with "Теоретически, мы могли бы также добавить свойство <code>quantity</code> (количество) здесь.")
(change separator (tab to comma))
(11 intermediate revisions by 2 users not shown)
Line 14: Line 14:
который будет выглядеть так:
который будет выглядеть так:
<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>S</code> являются идентификаторами, которые будут определены позже. Каждая строка разделена вкладкой, а пустая ячейка помечена подчеркиванием <code>_</code>. <code>Ширина</code> этого рецепта <code>1</code> и в нем <code>3</code> строки. Не ставьте пробелы между ячейками, например <code>_ P _</code> это 5, а не 3 ячейки.
<code>P</code> и <code>S</code> являются идентификаторами, которые будут определены позже. Каждая строка разделена запятой, а пустая ячейка помечена подчеркиванием <code>_</code>. <code>Ширина</code> этого рецепта <code>1</code> и в нем <code>3</code> строки. Не ставьте пробелы между ячейками, например <code>_ P _</code> это 5, а не 3 ячейки.


=== Ингредиенты ===
=== Ингредиенты ===
Line 70: Line 70:
Теоретически, мы могли бы также добавить свойство <code>quantity</code> (количество) здесь.
Теоретически, мы могли бы также добавить свойство <code>quantity</code> (количество) здесь.


=== Distributing ===
=== Распространение ===


This is what our final recipe looks like:
Вот как выглядит наш последний рецепт:


<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
ingredientPattern: "P S S",
ingredientPattern: "P,S,S",
width: 1,
width: 1,
height: 3,
height: 3,
Line 87: Line 87:
</syntaxhighlight>
</syntaxhighlight>


In order to add those crafting recipes to your mod, you have to create another folder in your workspace <code>assets/myadvancedwand/recipes/grid/</code> and copy the files in there.
Чтобы добавить эти рецепты для крафта в ваш мод, вам нужно создать еще одну папку в вашем рабочем пространстве <code>assets/myadvancedwand/recipes/grid/</code> и скопировать туда файлы.


You can download the full mod including the items [[Media:MyWandRecipe.zip|here]].
Вы можете скачать полный мод, включая предметы [[Media:MyWandRecipe.zip|здесь]].


== Advanced ==
== Продвинутые рецепты ==


=== Type based recipes ===
=== Типовые рецепты ===


There are more complicated things you can do with recipes. This the recipe for wooden planks which are crafted out of logs:
Есть более сложные вещи, которые вы можете сделать с рецептами. Это рецепт для деревянных досок, которые сделаны из бревен:
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
Line 108: Line 108:
</syntaxhighlight>
</syntaxhighlight>


Instead of having a recipe for every wood type, you can assign a name to an ingredient (in this case it is <code>name: "wood"</code>) and everything identified by <code>*</code> will later on replaced be for the output. Meaning <code>{wood}</code> will be replaced by the type of the giving log.
Вместо того, чтобы иметь рецепт для каждого типа древесины, вы можете назначить имя ингредиенту (в данном случае это <code>name: "wood"</code>), и все обозначенное <code>*</code>, позже будет заменено на выходе. Значение <code>{wood}</code> будет заменено типом используемого дерева.


For example if we would have a birch log block, its code would be <code>log-birch-ud</code>, so <code>*</code> would stand for <code>birch</code>, therefore the output will be converted from <code>code: "planks-{wood}"</code> to <code>code: "planks-birch"</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

Прежде чем создавать рецепты, рекомендуем сначала прочитать Основа предмета, чтобы понять это руководство.

Основы

Давайте создадим рецепт для нашей палочки, который мы добавили в руководстве основа предмета.

Шаблон ингредиентов

Давайте начнем с объявления шаблона или макета рецепта, в нашем примере мы хотим, чтобы игрок поместил кирку поверх двух палочек.

Recipe Wand Pickaxe.png

который будет выглядеть так:

	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 в всплывающую подсказку:

Recipe Stick Tooltip.png


Кроме того, мы могли бы добавить необходимое количество к нашим ингредиентам, поэтому вместо одной палки на слот мы могли бы потребовать больше:

	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".


Icon Sign.png

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.