Modding:Basic Item/ru: Difference between revisions
(Created page with "На данный момент наши значения для каждого свойства просты: * <code>code</code>: <code>wand</code> * <code>texture</code>: <c...") |
Mirotworez (talk | contribs) No edit summary |
||
(15 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> | |||
{{GameVersion|1.15}} | |||
__FORCETOC__ | __FORCETOC__ | ||
Во-первых, если вы этого еще не сделали, прочитайте руководство | Во-первых, если вы этого еще не сделали, прочитайте руководство по {{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 32: | Line 35: | ||
* <code>creativeinventory</code>: <code>general</code> | * <code>creativeinventory</code>: <code>general</code> | ||
'' | ''Окончательные'' значения нашего JSON выглядят так: | ||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
Line 40: | Line 43: | ||
}, | }, | ||
texture: { | texture: { | ||
base: "item/wand" | base: "game:item/wand" | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Вы могли заметить, что свойства <code>creativeinventory</code> и <code>textures</code> не так просты, как значения <code>code</code>. Причину различий в <code>textures</code> и <code>creativeinventory</code> мы не рассмотрим в этом руководстве, а обсудим в расширенных руководствах. | |||
== | == Наименование предмета == | ||
Теперь у нас почти все готово, кроме имени. Для этого мы создаем другой файл JSON: <code>lang/en.json</code>. Игра использует этот файл, чтобы найти название предмета. Языковые файлы имеют очень простой синтаксис: <code>"item-code": "Item Name"</code>. | |||
Для нашей палочки это означает, что наш файл должен выглядеть примерно так: | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
Line 57: | Line 60: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Вывод == | ||
Вместе, файлов предметов и языков технически достаточно, чтобы быть полноценным модом. Но они не добавляют ''классную'' палочку, j которой я сказал в начале этого урока. Чтобы добавить больше свойств, мы должны перейти к руководству [[Modding: Advanced Item|Продвинутый предмет]], где я объясняю, как мы можем сделать вещи намного круче, чем просто создать жалкую палку. | |||
{{Navbox/modding|Vintage Story}} | {{Navbox/modding|Vintage Story}} |
Latest revision as of 10:26, 16 January 2024
Эта страница проверялась в последний раз для версии Vintage Story 1.15.
Во-первых, если вы этого еще не сделали, прочитайте руководство по системе ассетов . Это руководство должно познакомить вас с основами использования файлов JSON для добавления предметов в игру. Если вы хотите добавить предмет с функциональностью, вам следует обратиться к учебнику для Продвинутых предметов. На этой странице содержится полный список всех свойств, которые можно определить в файле json - Свойства предметов. Добавление блока в игру аналогично добавлению предмета, поэтому, если вы уже научились это делать, большинство следующих шагов должны быть знакомы.
Простой предмет
Первое, что нам нужно, это идея. Что нужно этой игре? Подождите! Я понял ... игре нужна крутая палочка. Давайте назовем этот мод BasicItem, потому что это руководство по созданию предметов, и мы делаем палочку.
Рабочее пространство
Сначала создайте папку для размещения файлов мода, которая станет вашим рабочим пространством, где мы создадим сам мод. Нам придется добавить несколько папок в основную папку, чтобы сохранить наши файлы организованными. Мод-загрузчик Vintage Story требует, чтобы некоторые файлы были помещены в определенные папки, чтобы загрузчик мог найти то, что ему нужно для загрузки. Для этого мода все будет идти в нашей папке ресурсов пространства имен. Для нас эта папка является assets/basicwand/
. Примечании: пространство имен не обязательно должно совпадать с именем мода.
Все моды, которые добавляют контент, должны находиться в папке <assets> и в своем собственном каталоге пространства имен. Пространство имен для нас это basicwand
. Это соглашение предотвращает возникновение проблем у нескольких модов, использующих один и тот же код товара. Например, если вы включите расширенную информацию отладки с помощью команды .edi
, вы можете заметить, что все элементы в игре имеют префикс game:
, который является пространством имен для всего ванильного контента.
После того, как ваше рабочее пространство будет готово, мы можем приступить к созданию палки.
Добавление текстуры
Давайте начнем с текстуры, которую мы будем использовать:
(Для создания собственных текстур вы можете использовать такие программы, как 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](/images/thumb/1/15/Icon_Sign.png/32px-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 | 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 |