Modding:Basic Item/ru: Difference between revisions

From Vintage Story Wiki
(Created page with "== Добавление текстуры == Давайте начнем с текстуры, которую мы будем использовать: File:Wand.png")
No edit summary
 
(20 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 (бесплатно с открытым исходным кодом или платите за предварительно скомпилированную версию)])


In order to use the texture, we need to put it in the right place (so the mod loader can find it). To do this we will create the folder <code>textures/item/</code>. Remember, this is in our namespaced folder so the full path is <code>assets/basicwand/textures/item/</code>.
Чтобы использовать текстуру, нам нужно поместить ее в нужное место (чтобы загрузчик модов мог ее найти). Для этого мы создадим папку <code>textures/item/</code>. Помните, это находится в нашей папке с пространством имен, поэтому полный путь - <code>assets/basicwand/textures/item/</code>.


== Creating the Item File ==
== Создание файла предмета ==
To create the actual wand item, we need to create a JSON file inside the <code>itemtypes/</code> folder. In this example we name it <code>wand.json</code>. This file contains the basic properties of our item.
Чтобы фактически создать элемент "палка", нам нужно создать файл 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] также является хорошим выбором).


The most basic item requires two things:
Самый простой предмет требует двух вещей:
* '''code''': A unique identifier for the item.
* '''code''': уникальный идентификатор элемента;
* '''texture''': What textures to apply to the item.
* '''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}}

Latest revision as of 10:26, 16 January 2024

Other languages:

Эта страница проверялась в последний раз для версии Vintage Story 1.15.


Во-первых, если вы этого еще не сделали, прочитайте руководство по системе ассетов . Это руководство должно познакомить вас с основами использования файлов JSON для добавления предметов в игру. Если вы хотите добавить предмет с функциональностью, вам следует обратиться к учебнику для Продвинутых предметов. На этой странице содержится полный список всех свойств, которые можно определить в файле json - Свойства предметов. Добавление блока в игру аналогично добавлению предмета, поэтому, если вы уже научились это делать, большинство следующих шагов должны быть знакомы.

Простой предмет

Первое, что нам нужно, это идея. Что нужно этой игре? Подождите! Я понял ... игре нужна крутая палочка. Давайте назовем этот мод BasicItem, потому что это руководство по созданию предметов, и мы делаем палочку.

Рабочее пространство

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

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

После того, как ваше рабочее пространство будет готово, мы можем приступить к созданию палки.

Добавление текстуры

Давайте начнем с текстуры, которую мы будем использовать: Wand.png
(Для создания собственных текстур вы можете использовать такие программы, как PaintDotNet(бесплатно), Piskel(бесплатно), (бесплатно) или Aseprite (бесплатно с открытым исходным кодом или платите за предварительно скомпилированную версию))

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

Создание файла предмета

Чтобы фактически создать элемент "палка", нам нужно создать файл JSON внутри папки itemtypes/. В этом примере мы назовем его wand.json. Этот файл содержит основные свойства нашего предмета. (мы рекомендуем использовать редактор с подсветкой синтаксиса, например Notepad++ или Sublime Text. Если вы собираетесь использовать много файлов JSON или немного C#, то Visual Studio Code также является хорошим выбором).

Самый простой предмет требует двух вещей:

  • code: уникальный идентификатор элемента;
  • texture: какие текстуры применить к предмету.

Мы также должны включить это свойство, чтобы позволить нам получить доступ к нашему предмету в творческом инвентаре:

  • creativeinventory: определяет вкладки творческого инвентаря, на которых должен отображаться элемент.

На данный момент наши значения для каждого свойства просты:

  • code: wand
  • texture: item/wand (Обратите внимание, что указанный путь не включает в себя texture.)
  • creativeinventory: general

Окончательные значения нашего JSON выглядят так:

{
  code: "wand",
  creativeinventory: {
    "general": ["*"]
  },
  texture: {
    base: "game:item/wand"
  }
}

Вы могли заметить, что свойства creativeinventory и textures не так просты, как значения code. Причину различий в textures и creativeinventory мы не рассмотрим в этом руководстве, а обсудим в расширенных руководствах.

Наименование предмета

Теперь у нас почти все готово, кроме имени. Для этого мы создаем другой файл JSON: lang/en.json. Игра использует этот файл, чтобы найти название предмета. Языковые файлы имеют очень простой синтаксис: "item-code": "Item Name".

Для нашей палочки это означает, что наш файл должен выглядеть примерно так:

{
  "item-wand": "Wand"
}

Вывод

Вместе, файлов предметов и языков технически достаточно, чтобы быть полноценным модом. Но они не добавляют классную палочку, j которой я сказал в начале этого урока. Чтобы добавить больше свойств, мы должны перейти к руководству Продвинутый предмет, где я объясняю, как мы можем сделать вещи намного круче, чем просто создать жалкую палку.

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.

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 ItemEntityEntity BehaviorsBlockBlock BehaviorsBlock ClassesBlock EntitiesBlock Entity BehaviorsCollectible BehaviorsWorld properties
Workflows & Infrastructure Modding Efficiency TipsMod-engine compatibilityMod ExtensibilityVS Engine
Additional Resources Community Resources Modding API Updates Programming Languages List of server commandsList of client commandsClient startup parametersServer startup parameters
Example ModsAPI DocsGitHub Repository