Ikon dipanggil dengan namanya
Widget tidak pernah menyimpan gambar. Ia hanya meminta nama, dan set ikon yang sedang dipakai memutuskan apa yang digambar — ganti set-nya dan semua ikon ikut berganti tanpa menyentuh satu baris kode pun.
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() adalah set yang sedang dipakai. Nama yang tidak bisa digambarnya menjadi kotak kosong yang tetap memakan tempat, dengan peringatan di build debug, jadi ikon yang hilang tidak pernah menggeser baris.
Cari ikon
Semua gambar yang dibawa gohud. Cari berdasarkan nama atau apa yang ditampilkan, persempit ke set atau grup, lalu pilih ikon untuk menyalin namanya.
Nama dan kata pencarian tetap berbahasa Inggris di semua bahasa — itulah yang Anda ketik di kode.
Empat set, satu pencarian
Setiap set menjawab panggilan yang sama. Set besar ditambahkan di atas set yang sedang dipakai.
| Set | Nama | Konstanta | Cara menyalakan |
|---|---|---|---|
| Default | 84 | GoIconSet | Selalu aktif |
| Abad pertengahan | 16 ukiran | — | GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK) |
| Game | 187 | GoGameIcons | GoUi.add_icons(GoGameIcons.icon_set()) |
| Pustaka | 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
Pustaka jatuh ke set game, dan set game ke set default, jadi satu baris membuat 1.271 nama bisa digambar. Sebuah set menyimpan gambarnya sebagai path dan hanya membaca file saat nama itu pertama kali digambar: menambahkan pustaka membaca satu tabel path (sekitar 30 ms di desktop), bukan 1.000 tekstur.
addons/gohud/icons/; opsi default “ekspor semua resource” tidak memerlukan apa pun.Cara sebuah nama ditemukan
Satu urutan untuk semua set, jadi Anda tahu gambar mana yang menang.
- Pertama, gambar milik setiap set — set yang sedang dipakai, lalu setiap set tambahan, lalu fallback mereka, tingkat demi tingkat. Gambar milik sebuah set adalah tekstur, path, atau glyph font ikon.
- Jika tak ada yang menggambarnya, alias dicoba:
gearmengarah kesettings,xkeclose. Hanya satu lompatan. - Masih tidak ada: kotak kosong yang tetap memakan tempat.
Urutan inilah yang membuat pedang ukiran preset abad pertengahan tetap di atas saat Anda menambahkan pustaka — gambarnya sendiri ditemukan sebelum fallback milik siapa pun.
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
Preset, set Anda, dan set tambahan
Tiga tempat menentukan apa yang digambar.
| Panggilan | Fungsinya |
|---|---|
GoUi.use_preset(…) | Tema, skin, dan set ikon sekaligus. Mengosongkan config.icons, mempertahankan config.extra_icons. |
GoUi.config.icons = my_set | Mengganti set ikon preset dengan milik Anda. |
GoUi.add_icons(set) | Menambahkan set yang dicari setelah set yang sedang dipakai. Tetap ada saat preset berganti. |
Gambar Anda sendiri
Timpa beberapa nama, tambahkan satu folder utuh, atau pasang font ikon — kode pemanggilnya tetap sama.
# 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())
- Gambar di kisi 24×24 dengan garis putih. Warna datang dari
modulate, yang hanya bisa menggelapkan — gambar hitam tetap hitam di tema apa pun. - Impor SVG sebagai
DPITextureagar tetap tajam di slot inventaris 64 dp. - Ikon tidak pernah dicerminkan pada bahasa yang ditulis dari kanan ke kiri. Hanya
backdanforwardyang berganti arah, dan keduanya Anda pilih lewat nama. - Font ikon juga bisa: isi
fontdancodepoints. Tidak ada yang lain berubah.
Nama, grup, dan pencarian
Aturan yang diikuti set bawaan, dan panggilan untuk menemukan nama.
- lower_snake_case, benda yang digambar di depan dan keadaannya di belakang:
volume_off,battery_charging,arrow_bar_left. - Tanpa awalan grup. Grup adalah data, jadi nama tetap sama di mana pun ia dikelompokkan.
- Nama di pustaka adalah nama Tabler dengan garis bawah:
cloud-raindi tabler.io menjadicloud_raindi sini. Nama Tabler untuk gambar yang sudah ada di gohud mengarah ke sana sebagai alias (shopping_cart→cart). - Sinonim adalah alias, tidak pernah gambar kedua.
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
Asal gambar-gambarnya
Semuanya MIT. Pemberitahuannya ikut di dalam ZIP sebagai THIRD_PARTY_NOTICES.md.
| Set | Sumber | Lisensi |
|---|---|---|
| Default | Digambar untuk gohud | MIT |
| Abad pertengahan | Digambar untuk gohud | MIT |
| Game | 171 dari Tabler Icons 3.46.0, 16 digambar untuk gohud | MIT |
| Pustaka | Tabler Icons 3.46.0 | MIT |
Jika Anda memasang ikon milik orang lain, tulis sumbernya di GoIconSet.attribution — dan simpan font ikon komersial di dalam game Anda, bukan di fork yang Anda publikasikan.