gohud

Іконки

1 287 малюнків, які викликаються за іменем: 84 є завжди, 187 — для ігор, ще 1 000 — у бібліотеці. Знайдіть потрібний нижче, скопіюйте ім'я — і будь-який віджет gohud його намалює.

Іконку викликають за іменем

Віджет ніколи не зберігає картинку. Він запитує ім'я, а що малювати, вирішує поточний набір іконок — змініть набір, і всі іконки зміняться без правки жодного рядка коду.

GoStyle.icon_button(GoIconSet.SETTINGS, open_settings)   # a button
slot.icon_name = GoGameIcons.BACKPACK                     # a quick slot
var mark := GoUi.icons().node(&"cloud_rain", 24)          # a bare Control, any size

GoUi.icons() — це поточний набір. Ім'я, яке він не може намалювати, стає порожнім полем того самого розміру, а в налагоджувальній збірці з'являється попередження, тож відсутня іконка ніколи не зсуває рядок.

Знайти іконку

Усі малюнки, що є в gohud. Шукайте за іменем або за зображенням, звузьте пошук до набору чи групи й виберіть іконку, щоб скопіювати її ім'я.

Імена й слова для пошуку лишаються англійськими будь-якою мовою — саме їх ви пишете в коді.

Чотири набори, один пошук

Кожен набір відповідає на той самий виклик. Великі набори додаються поверх поточного.

НабірІменаКонстантиЯк увімкнути
Стандартний84GoIconSetУвімкнений завжди
Середньовічний16 гравійованих—GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
Ігровий187GoGameIconsGoUi.add_icons(GoGameIcons.icon_set())
Бібліотека1 000GoIconLibraryGoUi.add_icons(GoIconLibrary.icon_set())
GoUi.add_icons(GoIconLibrary.icon_set())   # the library — and the game set under it
GoUi.add_icons(GoGameIcons.icon_set())     # or the game set alone

Бібліотека звертається до ігрового набору, а той — до стандартного, тож один рядок робить доступними 1 271 імен. Набір зберігає малюнки як шляхи й читає файл лише тоді, коли ім'я малюється вперше: під час додавання бібліотеки читається таблиця шляхів (близько 30 мс на комп'ютері), а не 1 000 текстур.

Шляхи — це рядки, а не залежності. Експорт із вибором ресурсів має містити addons/gohud/icons/; стандартному «експорту всіх ресурсів» нічого не потрібно.

Як шукається ім'я

Один порядок для всіх наборів, тож наперед ясно, який малюнок переможе.

  1. Спершу власні малюнки кожного набору — поточного, далі кожного доданого, потім їхніх запасних, рівень за рівнем. Власний малюнок набору — це текстура, шлях або гліф шрифту іконок.
  2. Якщо ніхто його не намалював, пробується псевдонім: gear веде до settings, x — до close. Лише один перехід.
  3. І якщо нічого немає — порожнє поле того самого розміру.

Саме тому гравійований меч середньовічного пресету лишається зверху, коли ви додаєте бібліотеку: його власний малюнок знаходиться раніше за будь-чий запасний.

GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
GoUi.add_icons(GoIconLibrary.icon_set())

GoUi.icons().texture(&"sword")      # the medieval engraving — its own drawing comes first
GoUi.icons().texture(&"rocket")     # from the game set
GoUi.icons().canonical(&"gear")     # &"settings" — an alias

Пресети, свій набір і додаткові набори

Що малювати, вирішують три місця.

ВикликЩо робить
GoUi.use_preset(…)Змінює тему, скін і набір іконок разом. Очищує config.icons, зберігає config.extra_icons.
GoUi.config.icons = my_setЗамінює набір іконок пресету вашим.
GoUi.add_icons(set)Додає набір, до якого заглядають після поточного. Переживає зміну пресету.

Власні малюнки

Перевизначте кілька імен, додайте цілу теку або підключіть шрифт іконок — код виклику не змінюється.

# Override a few names — everything else still comes from the set in use
var mine := GoIconSet.new()
mine.fallback = GoUi.icons()
mine.textures = {GoIconSet.CLOSE: preload("res://art/close.svg")}
GoUi.config.icons = mine

# A folder of drawings — file name = icon name, each read when first drawn
GoUi.config.icons = GoIconSet.from_folder("res://art/icons", GoUi.icons())

Імена, групи й пошук

Правила, яких дотримуються вбудовані набори, і виклики, що знаходять ім'я.

var icons := GoUi.icons()
icons.search("arrow left", 5)       # best matches first: back, arrow_bar_left …
icons.search("rain")                # cloud_rain, then drawings tagged "rain"

group_names() · names_in_group()

icons.group_names()                 # every group key, in lookup order
icons.names_in_group(&"weather")    # one group, in display order — every set's share of it
icons.group_title(&"weather")       # "Weather & sky"

canonical() · has_icon()

icons.canonical(&"gear")            # &"settings"
icons.canonical(&"treasure_chest")  # &"chest" — Tabler's name for a game drawing
icons.has_icon(&"cloud_rain")       # true once the library is added — nothing is loaded to answer

Звідки взялися малюнки

Усе під MIT. Повідомлення їдуть у ZIP у файлі THIRD_PARTY_NOTICES.md.

НабірДжерелоЛіцензія
СтандартнийНамальовані для gohudMIT
СередньовічнийНамальовані для gohudMIT
Ігровий171 з Tabler Icons 3.46.0, 16 намальовані для gohudMIT
БібліотекаTabler Icons 3.46.0MIT

Якщо підключаєте чужі іконки, вкажіть джерело в GoIconSet.attribution — а комерційні шрифти іконок тримайте всередині своєї гри, а не в публічному форку.