Шаблон:Сущность/doc

Материал из Space Station 14 Вики
Версия от 12:41, 25 марта 2026; Pok (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Модуль предназначен для вывода блоков сущности по её id. Основная его настройка делается не в самом вызове модуля, а в шаблонах сущностей и компонентов вида component/..., prototype/... и их вариантах /store. Используется на страницах сущностей см. Категория:Сущности.

Поля берутся из json страниц

Для подпроектов

Как устроен шаблон сущности

Шаблон должен уметь работать в нескольких режимах. Обычно вся схема полей описывается через {{#invoke:Сущность/поля}}.

Базовый вид:

{{#invoke:Сущность/поля|main
|title_*       =
|cardLabel_*   =
|cardContent_* =
|cardTag       =
}}

По нему {{сущность}} понимает:

  • какие заголовки можно выводить в режиме title;
  • какие поля попадут в карточку через режимы cardLabel и cardContent;
  • нужно ли добавлять тег карточки через cardTag.

Описание полей через Модуль:Сущность/поля

{{#invoke:Сущность/поля}} принимает составные параметры вида режим_поле.

Пример:

{{#invoke:Сущность/поля|main
|title_Механики     = Имеет размер!
|cardLabel_Размер   = [[Размер]]
|cardContent_Размер = Маленький
|cardTag            = Предмет
}}

Это создаст на странице:

  • заголовок h2 Механики;
  • ячейку карточки с заголовком Размер;
  • содержание ячейки карточки 1;
  • в карточку будет добавлен тег Предмет.

Если один и тот же режим содержит несколько полей, они просто перечисляются отдельными параметрами. Это лишь пример, лучше получать обрабатывать переданные параметры, чтобы они менялись взависимости от сущности. § Какие параметры получает шаблон

Какие параметры получает шаблон

Кроме режимов и id, модуль передаёт шаблону параметры из JSON-страницы сущности.

Например, json сущности MopItem из Участник:IanComradeBot/component/meleeWeapon.json выглядит так:

"MopItem": {
    "damage": {
        "types": {
            "Blunt": 10
        }
    },
...
},

то внутри шаблона их можно получать как:

  • {{{damage}}} -> "types": {"Blunt": 10}}
  • {{{damage.types}}} -> {"Blunt": 10}
  • {{{damage.types.Blunt}}} -> 10

То есть модуль передаёт расплющенные параметры записи, и после этого их можно использовать как обычные параметры шаблона, в том числе с точками в имени.

Дальше их можно оставить так, либо использовать json функции из {{#invoke:GetField}}, если нужно обработать вложенность (пример Шаблон:Component/meleeWeapon).

Использование модуля

Основной вызов:

  • {{сущность|id}}

Модуль сам:

  • определяет компоненты сущности по component.json;
  • определяет связанные прототипы по prototype_store.json;
  • подгружает шаблоны component/..., prototype/..., а также /store-варианты;
  • собирает итоговые блоки заголовков и карточки.

Ограничение вывода

Можно управлять тем, какие поля будут выведены, через белый и чёрный списки. Эти параметры принимают список имён через запятую и убирают соответствующие из обработки.

Примеры:

Формат значения:

  • режим_поле


Иногда нужно скрыть часть шаблонов сущности целиком, не меняя их разметку.

Примеры:

Параметры

ПараметрОписаниеОбязателен?
|1 =Id сущности.Да
|whitelist =Белый список полей в формате режим_поле, перечисленных через запятую.Нет
|blacklist =Чёрный список полей в формате режим_поле, перечисленных через запятую.Нет
|ignoreComponents =Список компонентов, которые не нужно учитывать при сборке сущности.Нет
|ignorePrototypes =Список прототипов, которые не нужно учитывать при сборке сущности.Нет

См. также

Примечания

  • Если нужный шаблон сущности или компонента отсутствует, модуль выводит служебный блок с указанием отсутствующего шаблона.
  • В белом и чёрном списках используются режимы из описания шаблона: обычно title и card.
  • Для карточки модуль отдельно вызывает подпись поля и его содержимое, поэтому обычно нужно задавать обе части: cardLabel и cardContent.