Моддинг: настройка среды разработки

From Vintage Story Wiki
This page is a translated version of the page Modding:Setting up your Development Environment and the translation is 100% complete.
Other languages:

This page was last verified for Vintage Story version 1.15.


Программное обеспечение

Когда вы будете готовы приступить к кодированию модов для Vintage Story, вы, вероятно, захотите настроить среду разработки, которая упростит процесс кодирования и тестирования ваших творений. Есть несколько приложений, которые помогут вам в разработке модов. Вот несколько предложений:

  • Visual Studio Community это бесплатная и очень мощная среда разработки, описанная в руководстве ниже. Это также инструмент, который команда Vintage Story использует для создания игры. Он также имеет MacOS версию.
  • Jetbrains Rider — это бесплатная и современная среда разработки с бесшовной поддержкой проектов, сочетаний клавиш и макетов Visual Studio. Это корпоративный продукт, и некоторые функции заблокированы лицензией (проверка дублирования кода, инструменты веб-разработчика), но все функции, необходимые для разработки модов VS, бесплатны. Функции индексации/перехода к ссылкам и встроенные функции декомпиляции очень эффективны, так как вы можете нажать на метод, который использует Vintage Story, и он покажет вам код, стоящий за ним. Обратите внимание, что в настоящее время в нем есть одна ошибка + задокументировано обходное решение. тут.
  • MonoDevelop — еще одна IDE, более легкая, чем Visual Studio Community.
  • Notepad++ ваш самый простой инструмент для редактирования текста с некоторыми дополнительными функциями. На самом деле, вы можете кодировать моды в любом текстовом редакторе. Однако при программировании отсутствует мгновенная контекстно-зависимая обратная связь, что очень полезно. Если вы выберете этот путь, вы сможете использовать саму игру для проб и ошибок, перезагрузив их во время игры.

Установить средство разработки

VintageStory разработан на C#. Выберите одну из вышеперечисленных IDE или другие альтернативы. Мы предлагаем использовать Visual Studio Community для Windows. Для Linux вы можете использовать Visual Studio Code, Rider или MonoDevelop.

После загрузки IDE вы можете получить проект мода или вручную настроить проект мода. Шаблон мода предлагает удобный инструмент для настройки нескольких проектов модов, а также для быстрой упаковки и получения готового к отправке мода.

Руководство по установке в Windows/macOS с Visual Studio

OS Repo Command
Windows скачать exe Запустить загруженный файл
macOS скачать dmg Запустить загруженный файл

Руководство по установке на Linux/macOS с MonoDevelop

Вы можете использовать MonoDevelop IDE для создания модов VS в Linux. Инструкции по загрузке приведены ниже, выберите свою ОС и перейдите по ссылке, чтобы добавить репозиторий, затем запустите команду установки.

OS Repo Command
Debian 8-10 repo sudo apt-get install monodevelop
Ubuntu 14.04-20.04 repo sudo apt-get install monodevelop
CentOS / RedHat repo yum install monodevelop
Используя Flatpak Скачать Flatpak flatpak install --user --from https://download.mono-project.com/repo/monodevelop.flatpakref
macOS руководство по сборке Используйте Visual Studio или соберите из исходного кода
Другие Компиляции из исходников Следуйте инструкциям для компиляции из исходников

Руководство по установке на Linux / macOS с Visual Studio Code

Вы можете использовать Visual Studio Code для создания модов VS в Linux. Инструкции по загрузке приведены ниже, выберите свою ОС и перейдите по ссылке, чтобы загрузить ее.

OS Download Command
Debian 8-10 скачать deb sudo dpkg -i /path/to/vscode/file.deb && sudo apt-get install -f
Ubuntu 18.04-20.04 скачать deb sudo apt install /path/to/vscode/file.deb
CentOS / RedHat / Fedora / SUSE скачать rpm rpm -ih /path/to/vscode/file.rpm
Arch пакет yay -S visual-studio-code-bin
Использовать Snap скачать snapd sudo snap install code --classic
macOS скачать zip Запустить загруженный файл
Другие компилирование из исходников Следуйте инструкциям для компиляции из исходников

Руководство по установке на Windows / Linux / macOS с JetBrains Rider

Вы можете использовать Jetbrains Rider для создания модов VS в Linux. Инструкции по загрузке приведены ниже, выберите свою ОС и перейдите по ссылке, чтобы загрузить ее.

OS Download Command
Windows скачать exe Запустить загруженный файл
Arch Пакет yay -S rider mono mono-msbuild
Используя Toolbox СкачатьToolbox Следуйте приведенным инструкциям для вашей ОС
Используя Snap Скачать snapd sudo snap install rider --classic
macOS Скачать dmg Запустить загруженный файл
Другие Скачать .tar.gz sudo tar -xzf ideaIU.tar.gz -C /opt && cd /opt/idea-dir-edit-me && sudo ./idea.sh

Шаблоны модов

Настройка с использованием официального шаблона мода

Для начала загрузите решение VSModTemplate с GitHub. Теперь вам просто нужно распаковать zip-архив в нужное место.

VSMods9.png

Перейдите к vsmodtemplate-x.y.z и дважды щелкните VSMods.sln (работает, только если установлена Visual Studio). В качестве альтернативы вы также можете запустить Visual Studio, нажав File -> Open -> Project/Solution..., перейти к извлеченной папке и выбрать VSMods.sln.

Но прежде чем вы сможете начать работать, вы должны сначала настроить ModTools.

Запустить ModTools

ModTools позволяет вам довольно легко выполнять различные задачи, вводя команду. Для каждой платформы требуется свой способ запуска. Обратите внимание, что инструменты модификации были протестированы только с Visual Studio и MonoDevelop, но они не требуются для модификации игры, они просто упрощают некоторые задачи.

Windows

Дважды щелкните vsmodtools.exe.

Linux

Откройте терминал, перейдите в эту папку и введите mono vsmodtools.exe.

Mac OS

Дважды щелкните modtools.command.

ModTools.png

Настройка

Syntax: setup [optional path]


Прежде чем делать что-либо еще, вы должны настроить свое рабочее пространство. Просто введите setup, и он автоматически попытается найти каталог установки Vintage Story. Если он не может найти его, вам будет предложено ввести полный путь. После того, как вы введете свой путь, он обновит файлы вашего проекта, чтобы вы могли начать с ним работать. Теперь снова откройте проект и запустите первый тест, нажав Start VSMods10.png. Если все настроено правильно, должна запуститься Vintage Story.

Настройка проекта (ZIP)

Система исходных модов позволяет вам создавать zip-моды, которые могут отправлять исходный код помимо своих активов. Исходный код компилируется во время выполнения движком modloader. Это имеет большое преимущество в том, что оно открыто и легко модифицируется во время выполнения, но также имеет один существенный недостаток, заключающийся в том, что встроенный компилятор исходного кода может компилировать код только до версии C# 6.0, поэтому более новые функции языка не поддерживаются. Если это для вас шоу-стоппер, мы советуем вам собрать скомпилированный мод.

Добавить мод

Syntax: add <modid>


Добавляет новый проект мода в вашу рабочую область, а также создает assets, папку src и файл modinfo.json. Мод будет добавлен в ваше визуальное студийное решение и загружен Vintage Story. Обязательно заполните всю дополнительную информацию в modinfo.json.

Удалить мод

Syntax: delete <modid>


Перед выполнением убедитесь, что ваш проект закрыт, иначе вы можете столкнуться с некоторыми трудностями. Запуск этой команды полностью (необратимо) удалит данный мод.

Упаковка мода

Syntax: pack <modid>


Создает zip-файл мода и помещает его в /releases/<modid>/<modid>_v<modversion>.zip. Этот файл готов к использованию и может быть передан другим людям.


Syntax: pack-all


Упаковывает все моды в вашем рабочем пространстве одновременно.

Настройка проекта (скомпилированный ZIP)

И dll, и zip-моды имеют свои преимущества и недостатки, так почему бы не объединить их вместе? Настройка этого проекта очень похожа на zip. Вместо того, чтобы добавлять исходный код в zip-файл, он использует скомпилированную dll. Это позволяет вам иметь все преимущества dll, сохраняя при этом структуру активов zip mod.

Добавить мод

Syntax: add <modid> compiled


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

Установить мод

Syntax: set <modid> <source|compiled>


Устанавливает данный zip-мод либо в исходный, либо в скомпилированный. Это может быть полезно, если вы захотите позже изменить тип вашего мода.

Настройка проекта (DLL)

Модификации Dll намного мощнее исходных модов, но у них есть два основных недостатка. Во-первых, они не могут нести ресурсы, которые будут загружены игрой, во-вторых, потому что они настолько мощные, что могут быть опасны. Кроме того, моды dll могут (в отличие от других) иметь перекрестные ссылки на моды, предоставлять API и использовать C # 7. Мы рекомендуем этот тип модов для более опытных разработчиков модов.

Добавить мод

Syntax: add-dll <modid>


Добавляет новый проект мода в вашу рабочую область. Сгенерированный файл AssemblyInfo.cs будет находиться в вашей папке свойств, он содержит информацию о моде (имя, автор, версия, описание и т. д.), поэтому обязательно измените их, прежде чем распространять мод среди других людей. . Мод будет добавлен в ваше визуальное студийное решение и загружен VintageStory.

Удалить мод

Syntax: delete <modid>


Перед выполнением убедитесь, что ваш проект закрыт, иначе вы можете столкнуться с некоторыми трудностями. Запуск этой команды полностью (необратимо) удалит данный мод.

Выпуск Мода

Как только вы запустите VintageStory в своей рабочей области, мод DLL будет скомпилирован. Вы можете найти его в папке mods под именем: <modid>.dll. Если вы хотите загрузить этот мод или поделиться им с друзьями, вам нужно использовать этот файл.

Ручная настройка

  • Создать новый проект
  • Добавьте как минимум ссылку на библиотеку VintageStoryApi.dll (в Windows она находится в каталоге установки)
  • Откройте свойства проекта. В разделе отладки выберите «Запустить внешнюю программу», выберите VintageStory.exe. Также настройте рабочий каталог, в котором находится исполняемый файл.
  • Если вы компилируете в файл .dll, настройте атрибут ModInfo в файле AssemblyInfo.cs ([пример https://github.com/anegostudios/vsmodtemplate/blob/master/Properties/AssemblyInfo.cs])
    • Добавьте следующие аргументы командной строки: -openWorld="modsamplestest" -pcreativebuilding --addModPath="C:\path\to\your\bin\folder" --addOrigin="C:\path\to\your\assets\folder\if\you\have\any"
  • Если вы хотите отправить исходный мод или мод с активами, настройте modinfo.json (пример ). Убедитесь, что ваши папки настроены таким образом, что modPath содержит modinfo.json и папку с именем «src», содержащую ваши исходные файлы. При желании он также может содержать папку активов для ваших активов.
    • Добавьте следующие аргументы командной строки: -openWorld="modsamplestest" -pcreativebuilding --addModPath="C:\path\to\your\modPath"
  • Я рекомендую добавить в ваш проект файл RedirectLogs.cs, чтобы вы могли видеть вывод журнала в своем Окно вывода визуальной студии. Однако не отправляйте свой мод вместе с ним.
  • Запустите проект и надейтесь на лучшее :D
  • Чтобы отправить мод, посмотрите Упаковка мода

Если у вас возникли проблемы, вы можете узнать из проекта vsmodexamples

Дальнейшее продвижение

Если вам удалось настроить среду разработки и запустить Vintage Story через проект VSMods в вашей среде IDE, то пришло время приступить к работе над своим первым модом кода. На данный момент есть много вариантов, которые вы можете выбрать, поскольку моды кода могут изменить практически любой аспект игры. Тем не менее, лучше всего начать с блоков и элементов (поскольку к этому моменту вы уже должны быть знакомы с их созданием с использованием JSONS).

Перейдите на страницу Расширенные блоки, чтобы создать свой первый расширенный блок кода.

Или перейдите на страницу Расширенные элементы, чтобы создать свой первый расширенный элемент кода.


Создание модов
Зеленые вещи требуют программирования на 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