Modding:Простой предмет
Во-первых, если вы этого еще не сделали, прочитайте руководство по Системе активов. Это руководство должно познакомить вас с основами использования файлов JSON для добавления предметов в игру. Если вы хотите добавить предмет с функциональностью, вам следует обратиться к учебнику для Продвинутых предметов. На этой странице содержится полный список всех свойств, которые можно определить в файле json - Свойства предметов. Добавление блока в игру аналогично добавлению предмета, поэтому, если вы уже научились это делать, большинство следующих шагов должны быть знакомы.
Простой предмет
Первое, что нам нужно, это идея. Что нужно этой игре? Подождите! Я понял ... игре нужна крутая палочка. Давайте назовем этот мод BasicItem, потому что это руководство по созданию предметов, и мы делаем палочку.
Рабочее пространство
Сначала создайте папку для размещения файлов мода, которая станет вашим рабочим пространством, где мы создадим сам мод. Нам придется добавить несколько папок в основную папку, чтобы сохранить наши файлы организованными. Мод-загрузчик Vintage Story требует, чтобы некоторые файлы были помещены в определенные папки, чтобы загрузчик мог найти то, что ему нужно для загрузки. Для этого мода все будет идти в нашей папке ресурсов пространства имен. Для нас эта папка является assets/basicwand/
. Примечании: пространство имен не обязательно должно совпадать с именем мода.
Все моды, которые добавляют контент, должны находиться в папке <assets> и в своем собственном каталоге пространства имен. Пространство имен для нас это basicwand
. Это соглашение предотвращает возникновение проблем у нескольких модов, использующих один и тот же код товара. Например, если вы включите расширенную информацию отладки с помощью команды .edi
, вы можете заметить, что все элементы в игре имеют префикс game:
, который является пространством имен для всего ванильного контента.
После того, как ваше рабочее пространство будет готово, мы можем приступить к созданию палки.
Добавление текстуры
Давайте начнем с текстуры, которую мы будем использовать:
Чтобы использовать текстуру, нам нужно поместить ее в нужное место (чтобы загрузчик модов мог ее найти). Для этого мы создадим папку textures/item/
. Помните, это находится в нашей папке с пространством имен, поэтому полный путь - assets/basicwand/textures/item/
.
Создание файла предмета
Чтобы фактически создать элемент "палка", нам нужно создать файл JSON внутри папки itemtypes/
. В этом примере мы назовем его wand.json
. Этот файл содержит основные свойства нашего предмета.
Самый простой предмет требует двух вещей:
- code: уникальный идентификатор элемента;
- texture: какие текстуры применить к предмету.
Мы также должны включить это свойство, чтобы позволить нам получить доступ к нашему предмету в творческом инвентаре:
- creativeinventory: определяет вкладки творческого инвентаря, на которых должен отображаться элемент.
На данный момент наши значения для каждого свойства просты:
code
:wand
texture
:item/wand
(Обратите внимание, что указанный путь не включает в себяtexture
.)creativeinventory
:general
Окончательные значения нашего JSON выглядят так:
{
code: "wand",
creativeinventory: {
"general": ["*"]
},
texture: {
base: "item/wand"
}
}
Вы могли заметить, что свойства creativeinventory
и texture
не так просты, как значения code
. Причину различий в texture
и creativeinventory
мы не рассмотрим в этом руководстве, а обсудим в расширенных руководствах.
Наименование предмета
Теперь у нас почти все готово, кроме имени. Для этого мы создаем другой файл JSON: lang/en.json
. Игра использует этот файл, чтобы найти название предмета. Языковые файлы имеют очень простой синтаксис: "item-code": "Item Name"
.
Для нашей палочки это означает, что наш файл должен выглядеть примерно так:
{
"item-wand": "Wand"
}
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.
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 |