Space Station 13 - Modules - Types

Модпаки

Модпаки загружаются компилятором сразу после всего остального кода и после карты, что позволяет делать оверрайды, безболезненно добавлять предметы, пользуясь дефайнами из core code и много много всего.

Инициализируются же модпаки на этапе INIT_ORDER_MODPACKS сразу после INIT_ORDER_INPUT с вызовом соответствующего прока у датума. Подробнее можно почитать в [mods/_modpack.dm]

Зачем?

  1. Чтобы не изменять core code, а оверрайдить здесь
  2. Удобный ввод новых предметов
  3. Сохранять ивентовые паки для последующего возможного использования в других ивентах

Создание модпака

Любой модпак состоит из:

  • Папки пака

  • .dme файла с подключением всех остальных

  • .dm файла с датумом, содержащем информацию о паке

  • Остальных файлов пака

Быстро создать модпак можно с помощью скрипта modular_ss220/create_modpack.bat.

Структура модпака

Если мы условимся, что наш пак будет называется hello_world, то это будет выглядеть так:

modular_ss220/hello_world
|- _hello_world.dm
|- _hello_world.dme
|- any_file.dm
|- ...
\- some_file.dm

А теперь каждый файл по отдельности:

modular_ss220/hello_world/_hello_world.dme

#include "_hello_world.dm"

#include "any_file.dm"
// ...
#include "some_file.dm"

Здесь подключаются все необходимые файлы, включая файл с датумом модпака. Ничего особенного.

Стоит лишь учитывать, что пути локальные, а не глобальные.

modular_ss220/hello_world/_hello_world.dm

/datum/modpack/hello_world
    name = "Hello world"
    desc = "Описание модпака"
    author = "SuhEugene" // Хороший мужик, систему модапаков у него 'позаимствована'.
  • name - Имя пака. Необязательно такое же, как в коде, но желательно.
  • desc - Очевидно, описание пака. Хотелось бы, чтобы оно было достаточно подробным, чтобы можно было понять что содержит пак, но не сильно замудрённым, чтобы любой игрок осилил буквы.
  • author - Никнейм на гитхабе, тег дискорда или даже несколько таких. Просто чтобы обозначить автора(ов) в простейшей форме.

modular_ss220/hello_world/any_file.dm

Это просто любой файл. Как в названии и написано. И название необязательно такое. Просто какой-либо угодно файл с dm кодом.

Ассеты

Этим обобщающим словом обычно называют картинки и звуки. Их я попрошу оставлять в папке modular_ss220/hello_world/icons/ и в modular_ss220/hello_world/sound/ соответственно. Лучше всего, если модпак будет использовать собственные ассеты и не обращаться к пакам или же другим модпакам.