Modding:Basic Item/ru: Difference between revisions

From Vintage Story Wiki
no edit summary
(Created page with "Самый простой предмет требует двух вещей: * '''code''': уникальный идентификатор элемента; * '''texture''':...")
No edit summary
 
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
{{GameVersion|1.15}}
__FORCETOC__
__FORCETOC__
Во-первых, если вы этого еще не сделали, прочитайте руководство ро [[Getting Started with Advanced Modding#Domains|Системе активов]]. Это руководство должно познакомить вас с основами использования файлов JSON для добавления предметов в игру. Если вы хотите добавить предмет с функциональностью, вам следует обратиться к учебнику для [[Advanced Items|Продвинутых предметов]]. На этой странице содержится полный список всех свойств, которые можно определить в файле json - [[Item Json Properties|Свойства предметов]]. Добавление блока в игру аналогично добавлению предмета, поэтому, если вы уже научились это делать, большинство следующих шагов должны быть знакомы.
Во-первых, если вы этого еще не сделали, прочитайте руководство по {{pll|Modding:Asset System|системе ассетов}}. Это руководство должно познакомить вас с основами использования файлов JSON для добавления предметов в игру. Если вы хотите добавить предмет с функциональностью, вам следует обратиться к учебнику для [[Advanced Items|Продвинутых предметов]]. На этой странице содержится полный список всех свойств, которые можно определить в файле json - [[Item Json Properties|Свойства предметов]]. Добавление блока в игру аналогично добавлению предмета, поэтому, если вы уже научились это делать, большинство следующих шагов должны быть знакомы.


== Простой предмет ==
== Простой предмет ==
Line 6: Line 8:


== Рабочее пространство ==
== Рабочее пространство ==
Сначала создайте папку для размещения файлов мода, которая станет вашим рабочим пространством, где мы создадим сам мод. Нам придется добавить несколько папок в основную папку, чтобы сохранить наши файлы организованными. Мод-загрузчик Vintage Story требует, чтобы некоторые файлы были помещены в определенные папки, чтобы загрузчик мог найти то, что ему нужно для загрузки. Для этого мода все будет идти в нашей папке ресурсов пространства имен. Для нас эта папка является <code>assets/basicwand/</code>. ''Примечании'': пространство имен не обязательно должно совпадать с именем мода.
Сначала создайте папку для размещения файлов мода, которая станет вашим '''рабочим пространством''', где мы создадим сам мод. Нам придется добавить несколько папок в основную папку, чтобы сохранить наши файлы организованными. Мод-загрузчик Vintage Story требует, чтобы некоторые файлы были помещены в определенные папки, чтобы загрузчик мог найти то, что ему нужно для загрузки. Для этого мода все будет идти в нашей папке ресурсов пространства имен. Для нас эта папка является <code>assets/basicwand/</code>. ''Примечании'': пространство имен не обязательно должно совпадать с именем мода.


Все моды, которые добавляют контент, должны находиться в папке <assets> и в своем собственном каталоге пространства имен. Пространство имен для нас это <code>basicwand</code>. Это соглашение предотвращает возникновение проблем у нескольких модов, использующих один и тот же код товара. Например, если вы включите расширенную информацию отладки с помощью команды <code>.edi</code>, вы можете заметить, что все элементы в игре имеют префикс <code>game:</code>, который является пространством имен для всего ванильного контента.
Все моды, которые добавляют контент, должны находиться в папке <assets> и в своем собственном каталоге пространства имен. Пространство имен для нас это <code>basicwand</code>. Это соглашение предотвращает возникновение проблем у нескольких модов, использующих один и тот же код товара. Например, если вы включите расширенную информацию отладки с помощью команды <code>.edi</code>, вы можете заметить, что все элементы в игре имеют префикс <code>game:</code>, который является пространством имен для всего ванильного контента.
Line 13: Line 15:


== Добавление текстуры ==
== Добавление текстуры ==
Давайте начнем с текстуры, которую мы будем использовать: [[File:Wand.png]]
Давайте начнем с текстуры, которую мы будем использовать: [[File:Wand.png]] <br>
(Для создания собственных текстур вы можете использовать такие программы, как [https://www.dotpdn.com/downloads/pdn.html/ PaintDotNet(бесплатно)], [https://www.piskelapp.com/ Piskel(бесплатно)], [https://www.gimp.org/GIMP (бесплатно)] или [https://github.com/aseprite/aseprite/ Aseprite (бесплатно с открытым исходным кодом или платите за предварительно скомпилированную версию)])


Чтобы использовать текстуру, нам нужно поместить ее в нужное место (чтобы загрузчик модов мог ее найти). Для этого мы создадим папку <code>textures/item/</code>. Помните, это находится в нашей папке с пространством имен, поэтому полный путь - <code>assets/basicwand/textures/item/</code>.
Чтобы использовать текстуру, нам нужно поместить ее в нужное место (чтобы загрузчик модов мог ее найти). Для этого мы создадим папку <code>textures/item/</code>. Помните, это находится в нашей папке с пространством имен, поэтому полный путь - <code>assets/basicwand/textures/item/</code>.


== Создание файла предмета ==
== Создание файла предмета ==
Чтобы фактически создать элемент "палка", нам нужно создать файл JSON внутри папки <code>itemtypes/</code>. В этом примере мы назовем его <code>wand.json</code>. Этот файл содержит основные свойства нашего предмета.
Чтобы фактически создать элемент "палка", нам нужно создать файл JSON внутри папки <code>itemtypes/</code>. В этом примере мы назовем его <code>wand.json</code>. Этот файл содержит основные свойства нашего предмета. (мы рекомендуем использовать редактор с подсветкой синтаксиса, например [https://notepad-plus-plus.org/ Notepad++] или [https://www.sublimetext.com/ Sublime Text]. Если вы собираетесь использовать много файлов JSON или немного C#, то [https://code.visualstudio.com/ Visual Studio Code] также является хорошим выбором).


Самый простой предмет требует двух вещей:
Самый простой предмет требует двух вещей:
Line 24: Line 27:
* '''texture''': какие текстуры применить к предмету.
* '''texture''': какие текстуры применить к предмету.


We also need to include this property to allow us access to our item in the creative inventory:
Мы также должны включить это свойство, чтобы позволить нам получить доступ к нашему предмету в творческом инвентаре:
* '''creativeinventory''': defines the creative inventory tabs where the item should be shown
* '''creativeinventory''': определяет вкладки творческого инвентаря, на которых должен отображаться элемент.


For now, our values for each property are simple:
На данный момент наши значения для каждого свойства просты:
* <code>code</code>: <code>wand</code>
* <code>code</code>: <code>wand</code>
* <code>texture</code>: <code>item/wand</code> (Note that the specified path does '''not''' include <code>texture</code> in the path.)
* <code>texture</code>: <code>item/wand</code> (Обратите внимание, что указанный путь '''не''' включает в себя <code>texture</code>.)
* <code>creativeinventory</code>: <code>general</code>
* <code>creativeinventory</code>: <code>general</code>


''Finally'' the values in the actual JSON look like this:
''Окончательные'' значения нашего JSON выглядят так:
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
Line 40: Line 43:
   },
   },
   texture: {
   texture: {
     base: "item/wand"
     base: "game:item/wand"
   }
   }
}
}
</syntaxhighlight>
</syntaxhighlight>


You might have noticed that the <code>creativeinventory</code> and <code>texture</code> properties aren't as simple as the <code>code</code> values. The reason for the differences in <code>texture</code> and <code>creativeinventory</code> isn't something we'll cover in this tutorial, but is discussed in advanced tutorials.
Вы могли заметить, что свойства <code>creativeinventory</code> и <code>textures</code> не так просты, как значения <code>code</code>. Причину различий в <code>textures</code> и <code>creativeinventory</code> мы не рассмотрим в этом руководстве, а обсудим в расширенных руководствах.


== Naming the Item ==
== Наименование предмета ==
Now we've got almost everything ready, except for a proper name. To do this we create another JSON file: <code>lang/en.json</code>. The game uses this file to look up the name of the item. The language files have a very simple syntax: <code>"item-code": "Item Name"</code>.
Теперь у нас почти все готово, кроме имени. Для этого мы создаем другой файл JSON: <code>lang/en.json</code>. Игра использует этот файл, чтобы найти название предмета. Языковые файлы имеют очень простой синтаксис: <code>"item-code": "Item Name"</code>.


For our wand, this means our file should look something like this:
Для нашей палочки это означает, что наш файл должен выглядеть примерно так:
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
Line 57: Line 60:
</syntaxhighlight>
</syntaxhighlight>


== Conclusion ==
== Вывод ==
Together, the item and language files are technically enough to be a complete mod. But they don't add the cool wand I said we would make at the beginning of this tutorial. In order to add more properties, we have to head over to the [[Modding:Advanced Item]] tutorial where I explain how we can do way cooler things with items than just create a measly stick.
Вместе, файлов предметов и языков технически достаточно, чтобы быть полноценным модом. Но они не добавляют ''классную'' палочку, j которой я сказал в начале этого урока. Чтобы добавить больше свойств, мы должны перейти к руководству [[Modding: Advanced Item|Продвинутый предмет]], где я объясняю, как мы можем сделать вещи намного круче, чем просто создать жалкую палку.


{{Navbox/modding|Vintage Story}}
{{Navbox/modding|Vintage Story}}
Confirmedusers
13,514

edits