gohud

Iconos

1.287 dibujos que llamas por su nombre — 84 siempre presentes, 187 para juegos y 1.000 más en la biblioteca. Encuentra uno abajo, copia su nombre y cualquier widget de gohud podrá dibujarlo.

Un icono se llama por su nombre

Los widgets nunca guardan una imagen. Piden un nombre, y el conjunto de iconos en uso decide qué se dibuja — cambia el conjunto y todos los iconos cambian sin tocar una línea 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() es el conjunto en uso. Un nombre que no puede dibujar se convierte en una caja vacía que conserva su espacio, con un aviso en las compilaciones de depuración, así que un icono que falta nunca desplaza una fila.

Buscar un icono

Todos los dibujos que trae gohud. Busca por nombre o por lo que muestra, filtra por conjunto o grupo y elige un icono para copiar su nombre.

Los nombres y las palabras de búsqueda siguen en inglés en todos los idiomas — son lo que escribes en el código.

Cuatro conjuntos, una sola búsqueda

Todos los conjuntos responden a la misma llamada. Los grandes se añaden encima del conjunto en uso.

ConjuntoNombresConstantesCómo activarlo
Predeterminado84GoIconSetSiempre activo
Medieval16 grabados—GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
Juego187GoGameIconsGoUi.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

La biblioteca recurre al conjunto de juego y este al predeterminado, así que una sola línea hace dibujables 1.271 nombres. Un conjunto guarda sus dibujos como rutas y lee un archivo solo la primera vez que se dibuja su nombre: añadir la biblioteca lee una tabla de rutas (unos 30 ms en un escritorio), no 1.000 texturas.

Las rutas son texto, no dependencias. Una exportación que elige recursos debe incluir addons/gohud/icons/; la opción predeterminada «exportar todos los recursos» no necesita nada.

Cómo se encuentra un nombre

Un solo orden para todos los conjuntos, así sabes qué dibujo gana.

  1. Primero, los dibujos propios de cada conjunto — el conjunto en uso, luego cada conjunto añadido y después sus respaldos, nivel por nivel. El dibujo propio de un conjunto es una textura, una ruta o un glifo de una fuente de iconos.
  2. Si nadie lo dibujó, se prueba un alias: gear lleva a settings, x a close. Un solo salto.
  3. Si aún no hay nada: una caja vacía que conserva su espacio.

Por ese orden, la espada grabada del preajuste medieval sigue arriba cuando añades la biblioteca — su dibujo propio se encuentra antes que el respaldo de cualquiera.

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

Preajustes, tu conjunto y conjuntos añadidos

Tres lugares deciden qué se dibuja.

LlamadaQué hace
GoUi.use_preset(…)Tema, skin y conjunto de iconos de una vez. Vacía config.icons y conserva config.extra_icons.
GoUi.config.icons = my_setSustituye el conjunto de iconos del preajuste por el tuyo.
GoUi.add_icons(set)Añade un conjunto que se consulta después del que está en uso. Sobrevive a los cambios de preajuste.

Tus propios dibujos

Sobrescribe algunos nombres, añade una carpeta entera o conecta una fuente de iconos — el código que llama no cambia.

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

Nombres, grupos y búsqueda

Las reglas que siguen los conjuntos incluidos y las llamadas que encuentran un nombre.

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 dónde vienen los dibujos

Todo es MIT. Los avisos viajan en el ZIP como THIRD_PARTY_NOTICES.md.

ConjuntoOrigenLicencia
PredeterminadoDibujados para gohudMIT
MedievalDibujados para gohudMIT
Juego171 de Tabler Icons 3.46.0, 16 dibujados para gohudMIT
BibliotecaTabler Icons 3.46.0MIT

Si conectas iconos de otra persona, escribe su origen en GoIconSet.attribution — y deja las fuentes de iconos comerciales dentro de tu juego, no en un fork que publiques.