Modding:Asset System/ru: Difference between revisions
(Created page with "Поиск папки с активами") |
Mirotworez (talk | contribs) No edit summary Tag: Manual revert |
||
(34 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{GameVersion|1. | <languages/> | ||
{{GameVersion|1.15}} | |||
__FORCETOC__ | __FORCETOC__ | ||
Vintage Story загружает большую часть игрового контента из JSON файлов. Многие примеры этого можно найти в каталоге <code>assets</code> внутри вашей [[Vintagestory folder|папки с игрой]]. Такие вещи, как блоки, предметы, генерация мира, рецепты и т. Д., Загружаются из ресурсов во время запуска. | Vintage Story загружает большую часть игрового контента из JSON файлов. Многие примеры этого можно найти в каталоге <code>assets</code> внутри вашей [[Vintagestory folder|папки с игрой]]. Такие вещи, как блоки, предметы, генерация мира, рецепты и т. Д., Загружаются из ресурсов во время запуска. | ||
== Находим папку assets == | |||
Все действующие ресурсы для Vintage Story видны в папке с игрой, что позволяет вам просматривать их и учиться писать свои собственные. Вы можете найти эти файлы, используя следующие методы для каждого типа ОС, на которой вы играете в Vintage Story. Если вы ищете исходный код (то есть классы C#), ваш лучший вариант - погрузиться в '''[https://github.com/anegostudios Vintage Story Github]''' и просмотреть репозитории '''vsapi''', '''vssurvivalmod''', '''vsessentialsmod''' и '''vscreativemod''' для ссылок на классы. | |||
=== Windows === | === Windows === | ||
Если вы используете Vintage Story в Windows, вы можете перейти к нужной папке, набрав %appdata% в строке поиска в меню пуск, и вы попадете в папку roaming вашего компьютера. Найдите папку <code>Vintagestory</code>, и вы сразу же наткнетесь на папку assets, которая содержит "creative", "game" и "survival". | |||
* '''creative''' | * '''creative''' содержит ресурсы только для творческого режима. | ||
* '''game''' | * '''game''' содержит много универсальных ресурсов, таких как файлы lang, модели объектов и другие важные ресурсы для игры. | ||
* '''survival''' | * '''survival''' содержит большую часть фактического контента, с которым сталкивается большинство игроков, и содержит все ресурсы, используемые Vintage Story, такие как текстуры звуков и генерация мира. | ||
== | == Список типов ассетов == | ||
Ниже приведены категории ресурсов, которые вы можете использовать при моддинге для Vintage Story. Каждый из них легко модифицируем и может быть использован для простого добавления собственного контента или изменений без необходимости какого-либо сложного кодирования. Вы также можете прочитать [[Modding:Basic Modding Examples|примеры]], чтобы узнать, что вы можете с ними сделать. | |||
<table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'> | <table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'> | ||
<tr style=''> | <tr style=''> | ||
<th width='300' align='left'> | <th width='300' align='left'>Имя</th> | ||
<th width='200' align='left'> | <th width='200' align='left'>Влияние на игру</th> | ||
<th width='80' align='left'> | <th width='80' align='left'>Тип стороны</th> | ||
<th align='left'> | <th align='left'>Применение</th> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div class="tt" data-tt-id="root"> | <td><div class="tt" data-tt-id="root">Категория активов</div></td> | ||
<td></td> | <td></td> | ||
<td></td> | <td></td> | ||
Line 33: | Line 34: | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_blocktypes" data-tt-parent="root">blocktypes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_blocktypes" data-tt-parent="root">blocktypes</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Определяет все блоки существующие в игре</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_itemtypes" data-tt-parent="root">itemtypes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_itemtypes" data-tt-parent="root">itemtypes</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Определяет все предметы существующие в игре </td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_lang" data-tt-parent="root">lang</div></td> | <td scope="row"><div class="tt" data-tt-id="p_lang" data-tt-parent="root">lang</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Перевод</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldproperties" data-tt-parent="root">worldproperties</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldproperties" data-tt-parent="root">worldproperties</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Содержит некоторые часто используемые списки свойств</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldproperties_abstract" data-tt-parent="p_worldproperties">abstract</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldproperties_abstract" data-tt-parent="p_worldproperties">abstract</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td></td> | <td></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldproperties_block" data-tt-parent="p_worldproperties">block</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldproperties_block" data-tt-parent="p_worldproperties">block</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Универсально</td> | ||
<td></td> | <td></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_sounds" data-tt-parent="root">sounds</div></td> | <td scope="row"><div class="tt" data-tt-id="p_sounds" data-tt-parent="root">sounds</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Звуки в игре</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shapes" data-tt-parent="root">shapes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shapes" data-tt-parent="root">shapes</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Содержит 3d модели для всех предметов, блоков и существ</td> | ||
</tr> | </tr> | ||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_shapes_block" data-tt-parent="p_shapes">block</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shapes_block" data-tt-parent="p_shapes">block</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Модели для блоков</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shapes_entity" data-tt-parent="p_shapes">entity</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shapes_entity" data-tt-parent="p_shapes">entity</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Модели для существ</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shapes_item" data-tt-parent="p_shapes">item</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shapes_item" data-tt-parent="p_shapes">item</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Универсально</td> | ||
<td> | <td>Модели для предметов</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_recipes" data-tt-parent="root">recipes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_recipes" data-tt-parent="root">recipes</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Рецепты крафта, колочения, кузнечного дела и лепки из глины</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_recipes_alloy" data-tt-parent="p_recipes">alloy</div></td> | <td scope="row"><div class="tt" data-tt-id="p_recipes_alloy" data-tt-parent="p_recipes">alloy</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Как металлы могут быть объединены для создания сплавов</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_recipes_grid" data-tt-parent="p_recipes">grid</div></td> | <td scope="row"><div class="tt" data-tt-id="p_recipes_grid" data-tt-parent="p_recipes">grid</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Рецепты создания сетки 3х3</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_recipes_smithing" data-tt-parent="p_recipes">smithing</div></td> | <td scope="row"><div class="tt" data-tt-id="p_recipes_smithing" data-tt-parent="p_recipes">smithing</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Рецепты кузнечного дела на наковальне</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldgen" data-tt-parent="root">worldgen</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldgen" data-tt-parent="root">worldgen</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Содержит всю конфигурацию для генерации мира</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldgen_terrain" data-tt-parent="p_worldgen">terrain</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldgen_terrain" data-tt-parent="p_worldgen">terrain</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Определяет, как должна выглядеть местность и чем она должна быть украшена</td> | ||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_dialog" data-tt-parent="root">config</div></td> | |||
<td>Да</td> | |||
<td>Универсально</td> | |||
<td>Используется для общих данных, которые не вписываются в другие категории.</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_worldgen_tree" data-tt-parent="p_worldgen">tree</div></td> | <td scope="row"><div class="tt" data-tt-id="p_worldgen_tree" data-tt-parent="p_worldgen">tree</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Определяет форму деревьев</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_entity" data-tt-parent="root">entity</div></td> | <td scope="row"><div class="tt" data-tt-id="p_entity" data-tt-parent="root">entity</div></td> | ||
<td> | <td>Да</td> | ||
<td> | <td>Только сервер</td> | ||
<td> | <td>Животные и другие существа</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shaders" data-tt-parent="root">shaders</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shaders" data-tt-parent="root">shaders</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Содержит исходный код GLSL, определяющий способ отображения игры</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_shaderincludes" data-tt-parent="root">shaderincludes</div></td> | <td scope="row"><div class="tt" data-tt-id="p_shaderincludes" data-tt-parent="root">shaderincludes</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Содержит исходный код GLSL, определяющий способ отображения игры</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures" data-tt-parent="root">textures</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures" data-tt-parent="root">textures</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Содержит всю графику игры</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_blocks" data-tt-parent="p_textures">block</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_blocks" data-tt-parent="p_textures">block</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры блоков</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_items" data-tt-parent="p_textures">item</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_items" data-tt-parent="p_textures">item</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры предметов</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_decal" data-tt-parent="p_textures">decal</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_decal" data-tt-parent="p_textures">decal</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td>Decaltextures</td> | <td>Decaltextures</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_entities" data-tt-parent="p_textures">entities</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_entities" data-tt-parent="p_textures">entities</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры существ</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_environment" data-tt-parent="p_textures">environment</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_environment" data-tt-parent="p_textures">environment</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры окружения (Небо, Луна, Солнце и т.д.)</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_gui" data-tt-parent="p_textures">gui</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_gui" data-tt-parent="p_textures">gui</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры интерфейса</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_hud" data-tt-parent="p_textures">hud</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_hud" data-tt-parent="p_textures">hud</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры индикаторов</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_textures_particle" data-tt-parent="p_textures">particle</div></td> | <td scope="row"><div class="tt" data-tt-id="p_textures_particle" data-tt-parent="p_textures">particle</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Текстуры частиц</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_music" data-tt-parent="root">music</div></td> | <td scope="row"><div class="tt" data-tt-id="p_music" data-tt-parent="root">music</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Музыкальные треки игры и их конфигурация</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td scope="row"><div class="tt" data-tt-id="p_dialog" data-tt-parent="root">dialog</div></td> | <td scope="row"><div class="tt" data-tt-id="p_dialog" data-tt-parent="root">dialog</div></td> | ||
<td> | <td>Нет</td> | ||
<td> | <td>Только клиент</td> | ||
<td> | <td>Содержит несколько макетов диалогов</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
= | = Домены = | ||
Домены используются для отделения мод-контента от оригинального. По сути, домен - это префикс для любого заданного кода (идентификатор элемента, блока и т.д.) Или пути (текстуры, звуки и т.д.). Сама по себе Vintage Story имеет свой собственный префикс <code>game</code> для всех его активов (папки игры, выживания и творчества). | |||
Когда [[Mod Packaging|пакуете мод]], вы указываете домен, помещая каталог в каталог мода <code>assets</code> со всеми вашими активами мода внутри. Имя каталога вашего домена будет «текущим доменом» для всех активов в нем. Если в коде ресурса не указан домен, игра предположит, что он находится в текущем домене, то есть вам нужно добавить префикс домена только в том случае, если вы хотите сослаться на что-то за пределами текущего домена. | |||
Например, если вы хотите создать новый блок, который использует оригинальную текстуру кожи, вам нужно будет указать домен (поскольку у вашего блока не стандартный). Вместо использования <code>block/leather</code> для <code>assets/survival/textures/block/leather.png</code> вы должны добавить префикс для домена <code>game:block/leather</code>. | |||
== | == Перезапись активов == | ||
Никаких ограничений. Вы вполне можете изменить любой актив Vintage Story, используя папку домена <code>game</code>. | |||
Чтобы изменить Блоктайп кровати, вы можете поместить свой собственный JSON файл в zip архив расположенный в <code>assets/game/blocktypes/wood/bed.json</code>. Тогда Vintage Story загрузит ваш JSON-файл вместо исходного. | |||
Пакеты тем могут переопределять только ресурсы, которые не влияют на игровую механику, другие типы модов могут переопределять любой актив. | |||
== | == Доступ к активам в коде == | ||
Чтобы получить доступ к активам в коде мода, вы можете использовать [[Modding:AssetManager| Менеджер Активов]]. | |||
= | = Дальнейшее продвижение = | ||
Как только вы поймете, что такое ресурсы и как они организованы, можете перейти к вашему первому контент-моду. Перейдите к странице '''[[Modding:Basic Block | Основа блока ]]''', чтобы узнать, как сделать свой первый блок, или перейдите на страницу '''[[Modding:Basic Item |Основа предмета]]''', если вы хотите начать с создания предмета. Обе статьи, отличный способ научиться делать свой первый мод. | |||
{{Navbox/modding|Vintage Story}} | {{Navbox/modding|Vintage Story}} |
Latest revision as of 10:23, 16 January 2024
Эта страница проверялась в последний раз для версии Vintage Story 1.15.
Vintage Story загружает большую часть игрового контента из JSON файлов. Многие примеры этого можно найти в каталоге assets
внутри вашей папки с игрой. Такие вещи, как блоки, предметы, генерация мира, рецепты и т. Д., Загружаются из ресурсов во время запуска.
Находим папку assets
Все действующие ресурсы для Vintage Story видны в папке с игрой, что позволяет вам просматривать их и учиться писать свои собственные. Вы можете найти эти файлы, используя следующие методы для каждого типа ОС, на которой вы играете в Vintage Story. Если вы ищете исходный код (то есть классы C#), ваш лучший вариант - погрузиться в Vintage Story Github и просмотреть репозитории vsapi, vssurvivalmod, vsessentialsmod и vscreativemod для ссылок на классы.
Windows
Если вы используете Vintage Story в Windows, вы можете перейти к нужной папке, набрав %appdata% в строке поиска в меню пуск, и вы попадете в папку roaming вашего компьютера. Найдите папку Vintagestory
, и вы сразу же наткнетесь на папку assets, которая содержит "creative", "game" и "survival".
- creative содержит ресурсы только для творческого режима.
- game содержит много универсальных ресурсов, таких как файлы lang, модели объектов и другие важные ресурсы для игры.
- survival содержит большую часть фактического контента, с которым сталкивается большинство игроков, и содержит все ресурсы, используемые Vintage Story, такие как текстуры звуков и генерация мира.
Список типов ассетов
Ниже приведены категории ресурсов, которые вы можете использовать при моддинге для Vintage Story. Каждый из них легко модифицируем и может быть использован для простого добавления собственного контента или изменений без необходимости какого-либо сложного кодирования. Вы также можете прочитать примеры, чтобы узнать, что вы можете с ними сделать.
Имя | Влияние на игру | Тип стороны | Применение |
---|---|---|---|
Категория активов |
|||
blocktypes |
Да | Универсально | Определяет все блоки существующие в игре |
itemtypes |
Да | Универсально | Определяет все предметы существующие в игре |
lang |
Нет | Универсально | Перевод |
worldproperties |
Да | Универсально | Содержит некоторые часто используемые списки свойств |
abstract |
Да | Универсально | |
block |
Да | Универсально | |
sounds |
Нет | Универсально | Звуки в игре |
shapes |
Нет | Универсально | Содержит 3d модели для всех предметов, блоков и существ |
block |
Нет | Универсально | Модели для блоков |
entity |
Нет | Универсально | Модели для существ |
item |
Нет | Универсально | Модели для предметов |
recipes |
Да | Только сервер | Рецепты крафта, колочения, кузнечного дела и лепки из глины |
alloy |
Да | Только сервер | Как металлы могут быть объединены для создания сплавов |
grid |
Да | Только сервер | Рецепты создания сетки 3х3 |
smithing |
Да | Только сервер | Рецепты кузнечного дела на наковальне |
worldgen |
Да | Только сервер | Содержит всю конфигурацию для генерации мира |
terrain |
Да | Только сервер | Определяет, как должна выглядеть местность и чем она должна быть украшена |
config |
Да | Универсально | Используется для общих данных, которые не вписываются в другие категории. |
tree |
Да | Только сервер | Определяет форму деревьев |
entity |
Да | Только сервер | Животные и другие существа |
shaders |
Нет | Только клиент | Содержит исходный код GLSL, определяющий способ отображения игры |
shaderincludes |
Нет | Только клиент | Содержит исходный код GLSL, определяющий способ отображения игры |
textures |
Нет | Только клиент | Содержит всю графику игры |
block |
Нет | Только клиент | Текстуры блоков |
item |
Нет | Только клиент | Текстуры предметов |
decal |
Нет | Только клиент | Decaltextures |
entities |
Нет | Только клиент | Текстуры существ |
environment |
Нет | Только клиент | Текстуры окружения (Небо, Луна, Солнце и т.д.) |
gui |
Нет | Только клиент | Текстуры интерфейса |
hud |
Нет | Только клиент | Текстуры индикаторов |
particle |
Нет | Только клиент | Текстуры частиц |
music |
Нет | Только клиент | Музыкальные треки игры и их конфигурация |
dialog |
Нет | Только клиент | Содержит несколько макетов диалогов |
Домены
Домены используются для отделения мод-контента от оригинального. По сути, домен - это префикс для любого заданного кода (идентификатор элемента, блока и т.д.) Или пути (текстуры, звуки и т.д.). Сама по себе Vintage Story имеет свой собственный префикс game
для всех его активов (папки игры, выживания и творчества).
Когда пакуете мод, вы указываете домен, помещая каталог в каталог мода assets
со всеми вашими активами мода внутри. Имя каталога вашего домена будет «текущим доменом» для всех активов в нем. Если в коде ресурса не указан домен, игра предположит, что он находится в текущем домене, то есть вам нужно добавить префикс домена только в том случае, если вы хотите сослаться на что-то за пределами текущего домена.
Например, если вы хотите создать новый блок, который использует оригинальную текстуру кожи, вам нужно будет указать домен (поскольку у вашего блока не стандартный). Вместо использования block/leather
для assets/survival/textures/block/leather.png
вы должны добавить префикс для домена game:block/leather
.
Перезапись активов
Никаких ограничений. Вы вполне можете изменить любой актив Vintage Story, используя папку домена game
.
Чтобы изменить Блоктайп кровати, вы можете поместить свой собственный JSON файл в zip архив расположенный в assets/game/blocktypes/wood/bed.json
. Тогда Vintage Story загрузит ваш JSON-файл вместо исходного.
Пакеты тем могут переопределять только ресурсы, которые не влияют на игровую механику, другие типы модов могут переопределять любой актив.
Доступ к активам в коде
Чтобы получить доступ к активам в коде мода, вы можете использовать Менеджер Активов.
Дальнейшее продвижение
Как только вы поймете, что такое ресурсы и как они организованы, можете перейти к вашему первому контент-моду. Перейдите к странице Основа блока , чтобы узнать, как сделать свой первый блок, или перейдите на страницу Основа предмета, если вы хотите начать с создания предмета. Обе статьи, отличный способ научиться делать свой первый мод.
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 |