gohud

Три слоя

← Темы

Пресет связывает все три. Поля, оставленные пустыми, откатываются к значениям по умолчанию.

СлойРешаетКак это менять
Theme Цвета, размеры, масштаб текста и форму всего, что рисует движок, — панелей кнопок, полей ввода, вкладок, графики переключателей Напишите .tres вручную или создайте его через tools/make_theme.py
GoSkin Форму всего, что рисует код, — стика, лицевых панелей быстрых слотов, кольца обучающей подсказки, чипов, скелетонов, разделителей, заголовков секций Наследуйте его и переопределяйте только нужные методы
GoIconSet Иконки по имени — 84 рисунка по умолчанию либо 16 гравированных рисунков средневекового набора поверх них. Текстурный пак или иконочный шрифт; вызывающий код в обоих случаях одинаков Подайте свой набор или переопределите лишь несколько имён
Почему одной Theme мало. У StyleBoxFlat угол бывает только скруглённым: поставьте радиус в ноль — получите прямой угол; промежуточного нет. Диагонально срезанные углы, одна утолщённая грань, внешнее свечение — движок не рисует ничего из этого. А стик и обучающая подсказка рисуются в _draw(), куда тема не дотягивается вовсе.

Как выбрать

GoUi.use_preset(GoThemePresets.SCIFI_DARK)

Эта одна строка меняет тему, скин и иконки. Из редактора это делается через Project Settings → Gohud → Theme → Preset, из ресурса настроек — через GoConfig.preset.

Оставить одно поле своим

GoUi.use_preset(GoThemePresets.SCIFI_DARK)
GoUi.config.icons = my_icons     # ваши иконки, всё остальное — из пресета

Явно заданные theme, skin или icons берут верх над пресетом.

Шесть встроенных пресетов

ПресетПанелиСкин · иконки
default_dark · default_lightСкруглённые панели StyleBoxFlat на градуированной шкале теней; основные кнопки поднимаются и проседают при нажатииGoSkin · 84 иконки по умолчанию
scifi_dark · scifi_lightПанели GoStyleBoxCut со срезанными углами, неоновой гранью и свечением; фокусные метки GoStyleBoxBracketGoSkinSciFi — шестиугольный стик · иконки по умолчанию
medieval_dark · medieval_lightКованые рамки GoStyleBoxMedieval — железо и кожа либо пергамент — с заклёпками и угловыми орнаментами на менюGoSkinMedieval · 16 гравированных иконок поверх стандартных

Средневековье: железо, кожа и пергамент

medieval_dark соединяет тёмное железо и кожу со старым золотом. medieval_light берёт пергамент и чернила. Оба используют GoSkinMedieval, те же виджеты и 16 оригинальных иконок с гравировкой; иконки навигации откатываются к исходному набору.

GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
# Или: GoUi.use_preset(GoThemePresets.MEDIEVAL_LIGHT)

Выбирайте пресет до создания интерфейса. Явные переопределения GoConfig.theme, skin или icons по-прежнему имеют приоритет. Откройте res://addons/gohud/examples/medieval/medieval.tscn и нажмите F6 — увидите рабочий лист персонажа, сумку и журнал заданий. Его кнопки переключают варианты и открывают описание предмета.

Средневековый железный вариант — интерфейсы персонажа, инвентаря и заданий
Железо и кожа
Средневековый пергаментный вариант — интерфейсы персонажа, инвентаря и заданий
Пергамент и чернила

У рамок меню есть заклёпка и небольшой угловой орнамент; всегда видимый HUD сохраняет сдержанную грань. Здоровье, мана и выносливость заливаются красным, синим и оливковым. Cinzel ограничен заголовками и подзаголовками; основной текст сохраняет шрифт проекта или шрифт по умолчанию. Лицензия встроенного шрифта лежит в assets/fonts/cinzel/OFL.txt.

Гравированный набор перерисовывает bag, book, box, coin, crown, flag, heart, key, map, potion, shield, star, sword и user, а также добавляет scroll и seal. Любое другое имя откатывается к набору по умолчанию, поэтому close и settings сохраняют свои стандартные рисунки в любом пресете. Cinzel покрывает латиницу; для локализованных заголовков задайте собственный шрифт через shape.fonts.

Что набор тестов проверяет для обоих вариантов. Что выбран средневековый скин; что панели меню и HUD — кованые рамки, причём орнамент только на меню; что заголовки идут шрифтом Cinzel, а основной текст сохраняет унаследованный шрифт; что гравированные иконки импортируются как DPITexture; что настоящий быстрый слот использует скин; что изменение регуляторов у копии скина доходит до слота, не трогая пресет; и что обратное переключение восстанавливает геометрию стандартного и sci-fi вариантов.

Сделайте собственное королевство

python3 addons/gohud/tools/new_theme.py kingdom --from medieval_dark
# Отредактируйте themes/palettes/kingdom.json, затем:
python3 addons/gohud/tools/make_theme.py kingdom
godot --headless --path . --import
# В GDScript, до создания виджетов:
GoUi.use_preset(&"kingdom")

JSON-темы могут наследовать другие JSON-темы. Пропущенные значения сохраняют настройки родителя; циклическое наследование отвергается. Сгенерированный пресет сохраняет набор иконок родителя.

НастройкаДействие
shape.material0: железо · 1: кожа · 2: пергамент. Управляет фактурой поверхности.
shape.grain_alphaНепрозрачность фактуры. Поставьте 0 для чистой поверхности.
shape.ornament_scale · shape.bevel_strengthРазмер углового орнамента меню и сила фасочного блика.
shape.fontsСопоставляет роли title, subtitle, caption, body и button со шрифтами res:// внутри аддона. Пропущенные роли сохраняют унаследованный шрифт.
skin.dialsРадиус быстрого слота, видимость заклёпок, фактура и блик. Полная таблица ниже перечисляет каждый регулятор.