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

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

Этот туториал посвящен продвинутому моддингу. Он должен научить вас, как настроить среду разработки, и познакомить вас с основами Mono Develop, этот учебник был написан для Linux, если вы используете Windows, вы можете использовать Visual Studio.

Установить VintageStory

В первую очередь скачайте VintageStory и убедитесь, что у вас установлена самая новая версия игры, иначе могут возникнуть ошибки.

Установить FlatPak

Мы будем использовать FlatPak для установки MonoDevelop, поэтому, если у вас уже есть FlatPak, вы можете пропустить этот шаг. У FlatPak есть собственные руководства для многих дистрибутивов здесь.

Установить MonoDevelop

Теперь пришло время установить MonoDevelop, а с FlatPak это всего одна команда. Просто откройте терминал и выполните следующую команду.
flatpak install --user --from https://download.mono-project.com/repo/monodevelop.flatpakref
Это может занять несколько минут в зависимости от вашего интернет-соединения. (Последняя версия на момент написания статьи весила около 275 МБ.)

Чтобы открыть MonoDevelop, запустите в терминале flatpak run com.xamarin.MonoDevelop.

Обзор API

Интерфейс API в основном задокументирован, но если вам нужна справочная документация, она доступна по адресу [1].

Примеры модов доступны на Github: [2]

Создание решения (проектная группа)

  • Откройте MonoDevelop и создайте новое решение с помощью: Файл -> Новое решение... (в верхнем левом углу).
  • Выберите .NET -> Library в качестве шаблона.

Mono new library.png

  • Нажмите "Далее.
  • Задайте свое Имя проекта, см. пример ниже, не меняйте путь, если хотите продолжить, оставьте его в покое.

Mono new library 2.png

  • Нажмите Создать. Теперь вы должны получить экран, который выглядит примерно так:

Mono new cs file.png

  • Щелкните правой кнопкой мыши проект (выделенный ниже) и выберите «Параметры».

Mono project menu.png

  • Нажмите «Выполнить» -> «Конфигурации» -> «По умолчанию» (выделено ниже).

Mono run config menu.png

  • Установите значения, как показано ниже, но замените «cynthia» на ваше имя пользователя и «MyCoolMod» на имя вашего проекта и нажмите «ОК».

Mono run config.png

  • Щелкните проект правой кнопкой мыши еще раз и выберите "Добавить -> Новый файл...".
  • Нажмите «Разное -> Пустой текстовый файл» и установите «launchmod.sh» в качестве имени, нажмите «Новый».

Mono new file.png

  • Вставьте содержимое раздела launchmod.sh этой страницы в новый файл launchmod.sh и сохраните его.
  • Щелкните правой кнопкой мыши "Ссылки" и выберите "Редактировать ссылки...".
  • Щелкните вкладку .Net Assembly и щелкните Обзор....
  • Перейдите по пути установки Vintage Story (/home/yourusernamehere/ApplicationData/vintagestory) и щелкните файл VintagestoryAPI.dll.
  • Нажмите «Открыть».
  • Нажмите «ОК».

Тестирование

  • Нажмите «Выполнить -> Запустить без отладки» или нажмите «CTRL + F5».
  • Vintage Story должна запуститься.

launchmod.sh

#!/bin/bash
VINTAGE_PATH="${HOME}/ApplicationData/vintagestory/"
MOD_PATH="${VINTAGE_PATH}Mods/"
cd ${VINTAGE_PATH}
mono Vintagestory.exe -oTestworld -pcreativebuilding

Подключить ведение журнала

Если вы хотите, вы можете скачать File:RedirectLogs.cs и добавить его в свой проект, что позволит увидеть журнал Vintagestory в MonoDevelop. После того, как вы загрузили файл, вы можете просто добавить его в проект, щелкнув правой кнопкой мыши проект и выбрав «Добавить -> Добавить файлы...», затем перейдя к файлу и нажав «Открыть». ', затем Скопируйте файл в каталог и ОК.

Дополнительные аргументы командной строки при отладке

  • -oFoobar открыть мир с именем "foobar", если он не существует, он создаст новый
  • -pcreativebuilding новый мир создаётся с заданным стилем игры ("выжить и построить" или "творческое строительство" по умолчанию)
  • --rndWorld всегда создает новый мир с увеличивающимся именем файла


Modding
Green Items require C# coding
Basics

Getting Started | Mod Types | Simple Examples | Theme Pack

Asset System | Textures | Items | Recipes | Blocks | Entities | Model Creator | Animation Basics | VTML & Icons | Mod Packaging & Release | Modinfo | Debugging

Advanced

JSON Patching | Advanced JSON Items | The Remapper | Server-Client Considerations | Compatibility with other mods

Setting Up Your Development Environment (General - Windows - Linux)

Advanced Blocks | Advanced Items | Item-Block Interactions | Block Behavior | Block Entities | Particle Effects | World Access | Inventory Handling | Chat Commands | GUIs | Server-Client Networking | Monkey patching (Harmony)

Data Management

Savegame Data Storage | ModConfig File | Chunk Data Storage | Tree Attribute

Worldgen

WorldGen Concepts | Terrain | Ores | Trees | WorldGen API

Rendering

Shaders and Renderers

Property Overview

Item | Entity | Block | Block Behaviors | Block Classes | Block Entities | Block Entity Behaviors

Workflows & Infrastructure

Modding Efficiency Tips | Mod-engine compatibility | Mod Extensibility | Load Order

Additional Resources

List of server commands | List of client commands | Client startup parameters | Creative Starter Guide | ServerBlockTicking | Bot System | WorldEdit | Cinematic Camera

Example Mods | API Docs | GitHub Repository