gohud

Ícones

1.287 desenhos que você chama pelo nome — 84 sempre presentes, 187 para jogos e mais 1.000 na biblioteca. Encontre um abaixo, copie o nome e qualquer widget do gohud consegue desenhá-lo.

Um ícone é chamado pelo nome

Os widgets nunca guardam uma imagem. Eles pedem um nome, e o conjunto de ícones em uso decide o que é desenhado — troque o conjunto e todos os ícones mudam sem tocar em uma linha de código.

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() é o conjunto em uso. Um nome que ele não consegue desenhar vira uma caixa vazia que mantém o espaço, com um aviso nas builds de depuração, então um ícone ausente nunca desloca uma linha.

Encontrar um ícone

Todos os desenhos que o gohud traz. Pesquise pelo nome ou pelo que mostram, filtre por conjunto ou grupo e escolha um ícone para copiar o nome.

Os nomes e as palavras de busca ficam em inglês em todos os idiomas — são o que você digita no código.

Quatro conjuntos, uma única busca

Todo conjunto responde à mesma chamada. Os grandes são adicionados por cima do conjunto em uso.

ConjuntoNomesConstantesComo ativar
Padrão84GoIconSetSempre ativo
Medieval16 gravados—GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
Jogo187GoGameIconsGoUi.add_icons(GoGameIcons.icon_set())
Biblioteca1.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

A biblioteca recorre ao conjunto de jogo, e este ao padrão, então uma linha torna 1.271 nomes desenháveis. Um conjunto guarda os desenhos como caminhos e só lê um arquivo na primeira vez que o nome é desenhado: adicionar a biblioteca lê uma tabela de caminhos (cerca de 30 ms num desktop), não 1.000 texturas.

Caminhos são texto, não dependências. Uma exportação que escolhe recursos precisa incluir addons/gohud/icons/; o padrão “exportar todos os recursos” não precisa de nada.

Como um nome é encontrado

Uma única ordem para todos os conjuntos, para você saber qual desenho vence.

  1. Primeiro os desenhos próprios de cada conjunto — o conjunto em uso, depois cada conjunto adicionado e então os fallbacks deles, nível por nível. O desenho próprio de um conjunto é uma textura, um caminho ou um glifo de fonte de ícones.
  2. Se ninguém o desenhou, tenta-se um alias: gear leva a settings, x a close. Só um salto.
  3. Ainda nada: uma caixa vazia que mantém o espaço.

É por essa ordem que a espada gravada do preset medieval continua no topo quando você adiciona a biblioteca — o desenho próprio dele é encontrado antes do fallback de qualquer um.

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

Presets, o seu conjunto e conjuntos extras

Três lugares decidem o que é desenhado.

ChamadaO que faz
GoUi.use_preset(…)Tema, skin e conjunto de ícones de uma vez. Limpa config.icons e mantém config.extra_icons.
GoUi.config.icons = my_setTroca o conjunto de ícones do preset pelo seu.
GoUi.add_icons(set)Adiciona um conjunto consultado depois do que está em uso. Sobrevive às trocas de preset.

Seus próprios desenhos

Substitua alguns nomes, adicione uma pasta inteira ou conecte uma fonte de ícones — o código que chama continua igual.

# 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())

Nomes, grupos e busca

As regras que os conjuntos incluídos seguem e as chamadas que encontram um nome.

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

De onde vêm os desenhos

Tudo é MIT. Os avisos viajam no ZIP como THIRD_PARTY_NOTICES.md.

ConjuntoOrigemLicença
PadrãoDesenhados para o gohudMIT
MedievalDesenhados para o gohudMIT
Jogo171 do Tabler Icons 3.46.0, 16 desenhados para o gohudMIT
BibliotecaTabler Icons 3.46.0MIT

Se você conectar ícones de outra pessoa, escreva a origem em GoIconSet.attribution — e mantenha fontes de ícones comerciais dentro do seu jogo, não num fork que você publica.