Моддинг: Упаковка мода

From Vintage Story Wiki
This page is a translated version of the page Modding:Mod Packaging and the translation is 100% complete.
Other languages:

This page was last verified for Vintage Story version 1.15.


Если ваш мод изменяет только визуальные эффекты, звуки и другие «тематические» активы, см. также страницу пакета тем.

Zip-файлы

Чтобы мод было легко установить и использовать, его следует запаковать в zip-файл. Любые активы (изображения, файлы .json и т. д.) помещаются в каталог «assets» в корне zip-файла, любые исходные файлы в папку «src», а любые библиотеки DLL (и, возможно, файлы PDB) помещаются непосредственно в zip-файл. Корневая папка.

Обратите внимание, что если у вас есть мод с кодом, который не имеет ресурсов (т. е. ваш мод представляет собой единственную DLL C#), можно отправить чистую DLL, не упаковывая ее в zip-архив. Однако это не очень хорошая идея, так как при таком распространении трудно включить файл PDB, а загрузка DLL непосредственно в Windows может привести к проблемам с загрузкой вашего мода из-за политик безопасности, применяемых к файлам, загруженным из Интернета.

Zip File Structure
.zip
assets
domain
asset files (tree overview)
modinfo.json
modicon.png
compiled sources files (*.dll and *.pdb)
src
source code files - folders allowed (*.cs)

Информационный файл

Для каждого мода в zip-файле требуется modinfo.json внутри корневого каталога архива. В противном случае весь мод будет проигнорирован. В этом информационном файле указывается, что это за мод, его название, автор и т. д.

Пример информационного файла пакета тем (modinfo.json):

{
  "type": "content",
  "modid": "creativemdexamplemod",
  "name": "My Example Content Mod",
  "description" : "This is an example mod, which does nothing",
  "authors": ["CreativeMD"],
  "version": "1.0",
  "dependencies": { 
	"game": "",
	"survival": ""
  },
  "website": "http://example.com"
}

  "type": "content",

Помимо"type": "content", существует также "type": "theme" и "type": "code".

  • "type": "content": определяет этот мод как Content Mod. Модификации контента не могут содержать код C# (если это так, они будут проигнорированы).
  • "type": "theme": определяет этот мод как Theme Pack. Тематические пакеты не могут переопределить игровой процесс, влияющий на категории активов (такие как типы блоков, типы предметов и т. д.), и код C# не будет загружен.
  • "type": "code": Определяет этот мод как Code Mod. Модификации кода аналогичны модификациям содержимого, за исключением того, что они также могут загружать код C#, чтобы делать то, что невозможно с помощью JSON.
  "dependencies": {
    "game": "1.5.3"
  },

Означает, что для этого требуется как минимум VintageStory v1.5.3 или более новая версия. Для получения дополнительной информации см. модинфо.

Значок

Примечание: Иконки модов поддерживаются, начиная с версии 1.16.

Файл modicon.png (если он существует) будет использоваться и отображаться в меню менеджера модов.

Example Mod.png

Распространение и установка

Чтобы установить мод, просто поместите zip-файл в каталог Mods в вашем каталоге Vintage.

Вы можете загрузить свой мод в Базу модов Vintage Story, чтобы люди могли его найти.



Создание модов
Зеленые вещи требуют программирования на C#
Основы

С чего начать | Типы модов | Простые примеры | Набор тем

Система ассетов | Текстуры | Предметы | Рецепты | Блоки | Сущности | Редактор моделей | Базовая анимация | VTML и иконки | Упаковка и выпуск мода | Modinfo | Отладка

Продвинутое

JSON-патчи | Продвинутый предмет JSON | Ремаппер|Modding:The_Remapper | Сервер и клиент | Совместимость с другими модами

Настройка среды разработки (Основное - Windows - Linux)

Продвинутые блоки en | Продвинутые предметы en | Взаимодействие блоков и предметов en | Block Behavior | Block Entities en | Простые частицы en | Доступ к миру en | Базовая обработка инвентаря en | Команды чата en | GUI en | Взаимодействие сервер-клиент en | Monkey patching (Harmony) en

Управление данными

Хранение данных в игровом сейве en | Конфиг мода en | Хранение данных в чанке en | Tree Attribute en

Генерация мира

Концепт генерации | Рельеф | Руды en | Деревья en | WorldGen API en

Рендеринг

Шейдеры и рендереры en

Обзор свойства

Предмет en | Энтити en | Блок en | Block Behaviors en | Классы блока en | Block Entity en | Block Entity Behaviors en

Рабочие процессы и инфраструктура

Советы по эффективности моддинга | Совместимость мод-движка | Расширяемость модов | Порядок загрузки

Дополнительные ресурсы

List of server commands/ru | List of client commands/ru | Client startup parameters/ru | Creative Starter Guide/ru | Рандомные тики | Система ботов | WorldEdit | Cinematic Camera/ru

Примеры модов | Документация по API | Репозиторий GitHub