gohud

ไอคอน

ภาพ 1,287 แบบที่เรียกด้วยชื่อ — มีอยู่เสมอ 84 แบบ สำหรับเกม 187 แบบ และในไลบรารีอีก 1,000 แบบ หาไอคอนด้านล่าง คัดลอกชื่อ แล้ววิดเจ็ตไหนของ gohud ก็วาดได้

ไอคอนเรียกด้วยชื่อ

วิดเจ็ตไม่เคยถือรูปภาพ มันแค่ถามชื่อ ส่วนจะวาดอะไรนั้นชุดไอคอนที่ใช้อยู่เป็นผู้ตัดสิน — เปลี่ยนชุดเมื่อไร ไอคอนทั้งหมดก็เปลี่ยนตามโดยไม่ต้องแก้โค้ดสักบรรทัด

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() คือชุดที่ใช้อยู่ ชื่อที่มันวาดไม่ได้จะกลายเป็นกล่องว่างที่ยังกินพื้นที่เท่าเดิม และมีคำเตือนในบิลด์ดีบัก ไอคอนหายไปหนึ่งตัวจึงไม่ทำให้แถวเลื่อน

หาไอคอน

ภาพทั้งหมดที่มากับ gohud ค้นด้วยชื่อหรือสิ่งที่ภาพแสดง กรองตามชุดหรือกลุ่ม แล้วเลือกไอคอนเพื่อคัดลอกชื่อ

ชื่อและคำค้นเป็นภาษาอังกฤษในทุกภาษา — เพราะนั่นคือสิ่งที่คุณพิมพ์ในโค้ด

สี่ชุด หาทางเดียว

ทุกชุดตอบการเรียกแบบเดียวกัน ชุดใหญ่จะเพิ่มซ้อนบนชุดที่ใช้อยู่

ชุดชื่อค่าคงที่วิธีเปิด
ค่าเริ่มต้น84GoIconSetเปิดอยู่เสมอ
ยุคกลางภาพสลัก 16 ชิ้น—GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
เกม187GoGameIconsGoUi.add_icons(GoGameIcons.icon_set())
ไลบรารี1,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

ไลบรารีถอยไปหาชุดเกม และชุดเกมถอยไปหาชุดค่าเริ่มต้น บรรทัดเดียวจึงวาดได้ 1,271 ชื่อ ชุดหนึ่งเก็บภาพเป็นพาธ และอ่านไฟล์เฉพาะตอนที่ชื่อนั้นถูกวาดครั้งแรก — การเพิ่มไลบรารีจึงอ่านตารางพาธหนึ่งตาราง (ราว 30 ms บนเดสก์ท็อป) ไม่ใช่เท็กซ์เจอร์ 1,000 ภาพ

พาธเป็นสตริง ไม่ใช่ dependency การ export แบบเลือกรีซอร์สต้องรวม addons/gohud/icons/ ด้วย ส่วนค่าเริ่มต้น “export ทุกรีซอร์ส” ไม่ต้องทำอะไร

ลำดับการหาชื่อ

ทุกชุดใช้ลำดับเดียวกัน คุณจึงรู้ล่วงหน้าว่าภาพไหนจะชนะ

  1. ภาพของแต่ละชุดเองมาก่อน — ชุดที่ใช้อยู่ ตามด้วยแต่ละชุดที่เพิ่ม แล้วจึงเป็น fallback ของชุดเหล่านั้นทีละชั้น ภาพของชุดเองคือเท็กซ์เจอร์ พาธ หรือ glyph ของไอคอนฟอนต์
  2. ถ้าไม่มีใครวาดได้ ก็ลองชื่อแฝง: gear พาไปที่ settings, x พาไปที่ close ข้ามได้ครั้งเดียว
  3. ถ้ายังไม่มี: กล่องว่างที่ยังกินพื้นที่เท่าเดิม

เพราะลำดับนี้ ดาบสลักของพรีเซ็ตยุคกลางจึงยังอยู่บนสุดเมื่อคุณเพิ่มไลบรารี — ภาพของมันเองถูกพบก่อน fallback ของใคร

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

พรีเซ็ต ชุดของคุณ และชุดที่เพิ่ม

สามที่เป็นผู้ตัดสินว่าจะวาดอะไร

การเรียกทำอะไร
GoUi.use_preset(…)เปลี่ยนธีม สกิน และชุดไอคอนในครั้งเดียว ล้าง config.icons แต่เก็บ config.extra_icons ไว้
GoUi.config.icons = my_setแทนชุดไอคอนของพรีเซ็ตด้วยชุดของคุณ
GoUi.add_icons(set)เพิ่มชุดที่จะถูกค้นต่อจากชุดที่ใช้อยู่ ยังอยู่แม้เปลี่ยนพรีเซ็ต

ภาพของคุณเอง

ทับชื่อไม่กี่ชื่อ เพิ่มทั้งโฟลเดอร์ หรือเสียบไอคอนฟอนต์ — โค้ดที่เรียกยังเหมือนเดิม

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

ชื่อ กลุ่ม และการค้นหา

กฎที่ชุดที่มากับแพ็กเกจยึดถือ และการเรียกที่ใช้หาชื่อ

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

ภาพมาจากไหน

ทั้งหมดเป็น MIT ประกาศติดไปใน ZIP ในชื่อ THIRD_PARTY_NOTICES.md

ชุดที่มาสัญญาอนุญาต
ค่าเริ่มต้นวาดขึ้นเพื่อ gohudMIT
ยุคกลางวาดขึ้นเพื่อ gohudMIT
เกม171 แบบจาก Tabler Icons 3.46.0 และ 16 แบบวาดขึ้นเพื่อ gohudMIT
ไลบรารีTabler Icons 3.46.0MIT

ถ้าเสียบไอคอนของคนอื่น ให้เขียนที่มาไว้ใน GoIconSet.attribution — และเก็บไอคอนฟอนต์เชิงพาณิชย์ไว้ในเกมของคุณ ไม่ใช่ใน fork ที่คุณเผยแพร่