Biểu tượng được gọi theo tên
Widget không bao giờ giữ hình. Nó chỉ hỏi tên, còn vẽ gì là do bộ biểu tượng đang dùng quyết định — đổi bộ là mọi biểu tượng đổi theo mà không phải sửa một dòng code nào.
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() là bộ đang dùng. Tên nào nó không vẽ được sẽ thành một ô trống giữ nguyên chỗ, kèm cảnh báo trong bản build debug, nên thiếu một biểu tượng cũng không làm lệch hàng.
Tìm biểu tượng
Mọi hình vẽ đi kèm gohud. Tìm theo tên hoặc theo hình dáng, thu hẹp theo bộ hay nhóm, rồi chọn một biểu tượng để sao chép tên.
Tên và từ khóa tìm kiếm giữ nguyên tiếng Anh ở mọi ngôn ngữ — đó là thứ bạn gõ trong code.
Bốn bộ, một cách tìm
Bộ nào cũng trả lời cùng một lời gọi. Các bộ lớn được thêm chồng lên bộ đang dùng.
| Bộ | Tên | Hằng số | Cách bật |
|---|---|---|---|
| Mặc định | 84 | GoIconSet | Luôn bật |
| Trung cổ | 16 hình khắc | — | GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK) |
| Game | 187 | GoGameIcons | GoUi.add_icons(GoGameIcons.icon_set()) |
| Thư viện | 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
Thư viện lùi về bộ game, bộ game lùi về bộ mặc định, nên chỉ một dòng là vẽ được 1.271 tên. Một bộ giữ hình vẽ dưới dạng đường dẫn và chỉ đọc file khi tên đó được vẽ lần đầu: thêm thư viện là đọc một bảng đường dẫn (khoảng 30 ms trên máy tính), không phải 1.000 texture.
addons/gohud/icons/; tùy chọn mặc định “xuất mọi tài nguyên” thì không cần gì.Cách một tên được tìm
Một thứ tự chung cho mọi bộ, nên bạn biết trước hình nào thắng.
- Trước hết là hình riêng của mọi bộ — bộ đang dùng, rồi từng bộ thêm vào, rồi bộ dự phòng của chúng, từng tầng một. Hình riêng của một bộ là texture, đường dẫn hoặc glyph của font biểu tượng.
- Nếu không ai vẽ được, thử bí danh:
geardẫn tớisettings,xtớiclose. Chỉ một bước. - Vẫn không có: một ô trống giữ nguyên chỗ.
Nhờ thứ tự đó mà thanh kiếm khắc của preset trung cổ vẫn nằm trên cùng khi bạn thêm thư viện — hình riêng của nó được tìm thấy trước bộ dự phòng của bất kỳ ai.
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, bộ của bạn và bộ thêm vào
Ba chỗ quyết định vẽ gì.
| Lời gọi | Tác dụng |
|---|---|
GoUi.use_preset(…) | Đổi theme, skin và bộ biểu tượng một lượt. Xóa config.icons, giữ config.extra_icons. |
GoUi.config.icons = my_set | Thay bộ biểu tượng của preset bằng bộ của bạn. |
GoUi.add_icons(set) | Thêm một bộ được tra sau bộ đang dùng. Đổi preset vẫn còn. |
Hình vẽ của riêng bạn
Ghi đè vài tên, thêm cả một thư mục hoặc gắn một font biểu tượng — code gọi vẫn giữ nguyên.
# 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())
- Vẽ trên lưới 24×24 bằng nét trắng. Màu đến từ
modulate, vốn chỉ làm tối đi — hình vẽ màu đen sẽ đen ở mọi theme. - Nhập SVG dưới dạng
DPITextuređể chúng sắc nét trong ô túi đồ 64 dp. - Biểu tượng không bao giờ lật gương trong các ngôn ngữ viết từ phải sang trái. Chỉ
backvàforwardđổi hướng, và bạn chọn chúng bằng tên. - Font biểu tượng cũng được: điền
fontvàcodepoints. Ngoài ra không có gì thay đổi.
Tên, nhóm và tìm kiếm
Các quy tắc bộ đi kèm tuân theo, và các lời gọi để tìm một tên.
- lower_snake_case, thứ được vẽ đứng trước, trạng thái ở sau:
volume_off,battery_charging,arrow_bar_left. - Không có tiền tố nhóm. Nhóm là dữ liệu, nên tên giữ nguyên dù được xếp vào đâu.
- Tên trong thư viện là tên của Tabler với dấu gạch dưới:
cloud-raintrên tabler.io ở đây làcloud_rain. Tên Tabler của những hình gohud đã có sẵn dẫn tới chúng dưới dạng bí danh (shopping_cart→cart). - Từ đồng nghĩa là bí danh, không bao giờ là hình thứ hai.
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
Hình vẽ đến từ đâu
Tất cả đều là MIT. Thông báo đi kèm trong ZIP dưới tên THIRD_PARTY_NOTICES.md.
| Bộ | Nguồn | Giấy phép |
|---|---|---|
| Mặc định | Vẽ cho gohud | MIT |
| Trung cổ | Vẽ cho gohud | MIT |
| Game | 171 hình từ Tabler Icons 3.46.0, 16 hình vẽ cho gohud | MIT |
| Thư viện | Tabler Icons 3.46.0 | MIT |
Nếu gắn biểu tượng của người khác, hãy ghi nguồn vào GoIconSet.attribution — và giữ font biểu tượng thương mại trong game của bạn, đừng để trong một bản fork bạn công bố.