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.
| Conjunto | Nombres | Constantes | Cómo activarlo |
|---|---|---|---|
| Predeterminado | 84 | GoIconSet | Siempre activo |
| Medieval | 16 grabados | — | GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK) |
| Juego | 187 | GoGameIcons | GoUi.add_icons(GoGameIcons.icon_set()) |
| Biblioteca | 1.000 | GoIconLibrary | GoUi.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.
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.
- 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.
- Si nadie lo dibujó, se prueba un alias:
gearlleva asettings,xaclose. Un solo salto. - 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.
| Llamada | Qué 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_set | Sustituye 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())
- Dibuja en una cuadrícula de 24×24 con trazo blanco. El color llega con
modulate, que solo puede oscurecer — un dibujo negro sigue negro en cualquier tema. - Importa los SVG como
DPITexturepara que se vean nítidos en una casilla de inventario de 64 dp. - Los iconos nunca se reflejan en los idiomas de derecha a izquierda. Solo
backyforwardcambian de dirección, y esos los eliges por su nombre. - También sirve una fuente de iconos: rellena
fontycodepoints. Nada más cambia.
Nombres, grupos y búsqueda
Las reglas que siguen los conjuntos incluidos y las llamadas que encuentran un nombre.
- lower_snake_case, primero lo dibujado y al final su estado:
volume_off,battery_charging,arrow_bar_left. - Sin prefijos de grupo. Los grupos son datos, así que un nombre no cambia esté donde esté archivado.
- Los nombres de la biblioteca son los de Tabler con guiones bajos:
cloud-rainen tabler.io escloud_rainaquí. Los nombres de Tabler de dibujos que gohud ya tenía llevan a ellos como alias (shopping_cart→cart). - Un sinónimo es un alias, nunca un segundo dibujo.
search()
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.
| Conjunto | Origen | Licencia |
|---|---|---|
| Predeterminado | Dibujados para gohud | MIT |
| Medieval | Dibujados para gohud | MIT |
| Juego | 171 de Tabler Icons 3.46.0, 16 dibujados para gohud | MIT |
| Biblioteca | Tabler Icons 3.46.0 | MIT |
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.