# UI — общий интерфейс всех игр UI — общий для всех игр слой интерфейса: панель инструментов в правом верхнем углу, игровое меню, индикатор сохранения, уведомления в левом верхнем углу, просмотр фона и единый вид панелей, кнопок и списков. Собственной истории и правил у него нет. Почти все остальные моды строятся поверх него — поэтому UI есть в каждой игре и значится в зависимостях у огромного числа модов. ![Сцена в Cthangover в полдень: часы слева вверху, панель инструментов справа вверху, варианты выбора сцены справа.](assets/scene-hud.jpg) ## Панель инструментов Каждая иконка открывает свою панель. Набор кнопок не фиксирован: свой добавляет каждый мод игры, поэтому в новелле без предметов не будет сумки, а в игре со Scenario Studio появится ещё одна иконка. ![Панель инструментов Cthangover: инструменты, карта, сумка, персонажи, рекруты, навыки, меню (шестерёнка) и журнал.](assets/toolbar.png) В Cthangover слева направо: 1. **Инструменты** — меню инструментов разработчика (только когда в игре есть редакторы). 2. **Карта** — карта мира (Map Engine). 3. **Сумка** — инвентарь (Items). 4. **Персонажи** — отряд и персонажи (Characters). 5. **Рекруты** — завербованные персонажи (Recruiting). 6. **Навыки** — навыки (Skills). 7. **Меню** — игровое меню, о нём ниже (этот мод). 8. **Журнал** — задания (Quests). В других играх набор другой: например, RPG Plus добавляет **лист персонажа**. ## Игровое меню Иконка-шестерёнка открывает меню: **Вернуться**, **Сохранить**, **Загрузить**, **Настройки**, **Главное меню** и **Выход**. В сценах, где сохранение запрещено, пункт «Сохранить» неактивен — как на скриншоте. «Загрузить», «Сохранить» и «Настройки» открывают те же окна, что и в главном меню. ![Игровое меню поверх сцены: Menu, Resume, Save, Load, Settings, Main menu, Exit.](assets/game-menu.jpg) ## Уведомления В левом верхнем углу появляются короткие сообщения: новая запись в журнале, подсказка от сюжета. Одновременно показывается до четырёх, каждое держится на экране около десяти секунд, остальные ждут своей очереди. ![Уведомление под часами: «Осмотрись. В переулке что-то лежит.» — подсказка из пролога Cthangover.](assets/notification.png) ## Авторам модов **Добавить кнопку на панели инструментов и её панель** можно записью `ui` в манифесте. Так Items добавляет сумку: ```json "ui": [ { "id": "inventory", "kind": "panel", "slot": "ModBeforeUIPanel", "scene_path": "scenes/ui/inventory_panel.tscn", "button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 }, "priority": 10 } ] ``` - `button.index` задаёт порядок иконок (карта 10, сумка 20, персонажи 30, навыки 40, меню 50, журнал 60, студия 90); - `button.icon` — имя иконки, `button.locale` — ключ перевода подсказки; - запись без `button` — панель или оверлей, который игра открывает сама: Crafting добавляет верстак как `"kind": "overlay"` в слот `ModLastPanel` и открывает его из сценариев. **Открыть панель из сценария** можно действием `ui.toggle_panel`, а **показать уведомление** — командой `notify`: ```scenario notify "Новая запись в журнале." ``` **Придерживайтесь общего стиля.** Панели, собранные в коде, берут рамки, надписи, чипы и кнопки из набора виджетов (`UiKit`) и его токенов цвета и размера, поэтому новая панель сразу вписывается в игру и следует её теме. ## Если что-то пошло не так 1. **На панели инструментов нет кнопки.** Мод, который её добавляет, не входит в эту игру; проверьте состав игры в разделе **Моды и коллекции**. 2. **«Сохранить» неактивно.** Текущая сцена не разрешает сохранение; перейдите в другое место и попробуйте снова. Авторы разрешают его строкой `save_allowed: true` в заголовке одного из сценариев сцены. 3. **Панель открывается пустой.** Моду панели пока нечего показывать в этой игре — например, задания ещё не начались.