Modding:Простой предмет
Во-первых, если вы этого еще не сделали, прочитайте руководство ро Системе активов. Это руководство должно познакомить вас с основами использования файлов JSON для добавления предметов в игру. Если вы хотите добавить предмет с функциональностью, вам следует обратиться к учебнику для Продвинутых предметов. На этой странице содержится полный список всех свойств, которые можно определить в файле json - Свойства предметов. Добавление блока в игру аналогично добавлению предмета, поэтому, если вы уже научились это делать, большинство следующих шагов должны быть знакомы.
Простой предмет
Первое, что нам нужно, это идея. Что нужно этой игре? Подождите! Я понял ... игре нужна крутая палочка. Давайте назовем этот мод BasicItem, потому что это руководство по созданию предметов, и мы делаем палочку.
Рабочее пространство
Сначала создайте папку для размещения файлов мода, которая станет вашим рабочим пространством, где мы создадим сам мод. Нам придется добавить несколько папок в основную папку, чтобы сохранить наши файлы организованными. Мод-загрузчик Vintage Story требует, чтобы некоторые файлы были помещены в определенные папки, чтобы загрузчик мог найти то, что ему нужно для загрузки. Для этого мода все будет идти в нашей папке ресурсов пространства имен. Для нас эта папка является assets/basicwand/
. Примечании: пространство имен не обязательно должно совпадать с именем мода.
Все моды, которые добавляют контент, должны находиться в папке <assets> и в своем собственном каталоге пространства имен. Пространство имен для нас это basicwand
. Это соглашение предотвращает возникновение проблем у нескольких модов, использующих один и тот же код товара. Например, если вы включите расширенную информацию отладки с помощью команды .edi
, вы можете заметить, что все элементы в игре имеют префикс game:
, который является пространством имен для всего ванильного контента.
После того, как ваше рабочее пространство будет готово, мы можем приступить к созданию палки.
Добавление текстуры
Давайте начнем с текстуры, которую мы будем использовать:
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 textures/item/
. Remember, this is in our namespaced folder so the full path is assets/basicwand/textures/item/
.
Creating the Item File
To create the actual wand item, we need to create a JSON file inside the itemtypes/
folder. In this example we name it wand.json
. This file contains the basic properties of our item.
The most basic item requires two things:
- code: A unique identifier for the item.
- texture: What textures to apply to the item.
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
For now, our values for each property are simple:
code
:wand
texture
:item/wand
(Note that the specified path does not includetexture
in the path.)creativeinventory
:general
Finally the values in the actual JSON look like this:
{
code: "wand",
creativeinventory: {
"general": ["*"]
},
texture: {
base: "item/wand"
}
}
You might have noticed that the creativeinventory
and texture
properties aren't as simple as the code
values. The reason for the differences in texture
and creativeinventory
isn't something we'll cover in this tutorial, but is discussed in advanced tutorials.
Naming the Item
Now we've got almost everything ready, except for a proper name. To do this we create another JSON file: lang/en.json
. The game uses this file to look up the name of the item. The language files have a very simple syntax: "item-code": "Item Name"
.
For our wand, this means our file should look something like this:
{
"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 • Entity Behaviors • Block • Block Behaviors • Block Classes • Block Entities • Block Entity Behaviors • Collectible 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 |