Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Начало работы

Для начала разработки в проекте мода необходимо создать обязательные классы и структуру папок:

  • Definitions.cs

  • ModInitializer.csModSettings.cs

Создание обязательных классов

  • Definitions.cs - файл с определениями

Этот файл представляет собой контейнер определений, в настоящее время там содержится только устойчивое имя мода (для того, чтобы оставить его кодировку неизменной в случае переименования):

...

ModSettings.cs - файл настроек мода

Нужен для хранения настроек мода, если таковые есть, в формате XML - для этого необходимо имплементировать интерфейс IXmlConvertible, в том случае, если настроек нет, то файл выглядит вот так.

...

  • ModInitializer.cs - инициализация мода

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

...

Реализован на уровне базового класса - если нет специальной необходимости, его можно не перегружать.


Создание переносимой области

Далее нужно создать переносимую область, которая будет добавляться в основное приложение, формируется она таким образом:

  1. В корне проекта создаем папку PortableViews

  2. В ней создаем единственную папку с названием моде (в нашем примере ModPartnerDeveloperSolution) - другого содержимого в папке быть не должно

  3. Уже в папке ModPartnerDeveloperSolution формируем инфраструктуру - подпапки, содержащие представления (cshtml), скрипты (js) и стили (сss).

...

Контейнер для бизнес-логики и моделей

Контейнер называется PluginLogics, данная папка содержит две подпапки

...