Eskiden bir tema eklemek dört yeri elle düzenlemek demekti — üreticinin paleti, biçim, bir kaplama, bir ön ayar kaynağı. Artık tek bir komut hepsini yerine koyuyor.
python3 addons/gohud/tools/new_theme.py neon --from scifi_dark --title "Neon"
python3 addons/gohud/tools/make_theme.py neon # tema .tres + denetim grafikleri
godot --headless --path . --import # yeni grafikleri bir kez içe aktar
GoUi.use_preset(&"neon") # bitti — seçicide de görünür
İlk satır themes/palettes/neon.json ve themes/presets/neon.tres dosyalarını
yazar. JSON, devraldığı temanın her değerini açık açık taşır; böylece aynı zamanda
değiştirebileceklerinizin listesi olur: üst temanın değerini korumak için bir anahtarı silin, ezmek için
yazın. Ön ayarlar themes/presets/ klasörü taranarak bulunur, yani hiçbir kayıt kodu
değişmez — proje ayarındaki açılır liste de onu kendiliğinden alır.
Neleri değiştirebilirsiniz — tek sayfada
| Nerede | Ne | Nasıl |
|---|---|---|
from | üst tema | dark · light · scifi_dark · medieval_dark · … ya da başka bir JSON teması. Atlanan anahtarlar onun değerlerini devralır; devralma döngüsü hata verir |
palette | arka plan · üç yüzey · kenarlık · üç yazı tonu · vurgu · dört durum rengi · scrim · gölge · çubuk oluğu | "#RRGGBB", alfa için "#RRGGBB@0.35" |
yalnızca dolguya özgü canlı renkler *_vivid | yazı rengi koyulaşmak zorunda kalsa bile çubukları doygun tutar — birini eksik bırakırsanız üretici bunu bildirir | |
| okunaklılık | elle ayarlanmaz. Yazı, kenarlıklar, vurgu ve onun üstündeki etiket, eşikleri geçene kadar üretici tarafından itilir — yalnızca vurguyu değiştirin, denetimler yine geçsin | |
shape | kind | flat (yuvarlak) · cut (pahlı köşeler) · medieval (dövme çerçeveler) |
| boyutlar | radius · radius_small · radius_large · gap · gap_small · gap_large · padding · button_height · button_padding[4] — token'lar peşinden gelir, böylece paneller ile widget hesapları asla çelişmez | |
yalnızca cut | cut_ratio · cut_max · corners (diagonal|all) · glow · edge | |
yalnızca medieval | material (0 demir · 1 deri · 2 parşömen) · grain_alpha · ornament_scale · bevel_strength · fonts — title, subtitle, caption, body, button eklenti içindeki res:// yazı tipi dosyalarıyla eşleştirilir | |
skin | base — kodun kendi çizdiği yerler için aile (joystick, slotlar, rozetler, rehber işareti halkası, chip'ler, ayırıcılar) | default · scifi · medieval |
dials — o yerlerin sayıları: slot kenarlık kalınlığı ve tonu, rozet iç boşluğu, chip ve uyarı saydamsızlığı, joystick halka kalınlığı ve saydamsızlığı, bilimkurgu pah boyutları, ışıma ve köşelik | Üst temanın her değeri JSON'da açık açık yazılıdır. Üretici bunları themes/skins/gohud_skin_<id>.tres dosyasına yazar — hiçbir kaplama koduna dokunulmaz. Yalnızca çizimlerin kendisini değiştirmek için --new-skin çalıştırırsınız; bu da bir GoSkin alt sınıfının iskeletini oluşturur | |
icons | simge seti | bir GoIconSet kaynağına giden res:// yolu — atlandığında JSON üst temasından korunur |
dark · title | seçicide nasıl görüneceği | boolean · metin |
Bütün ayarlar
Aşağıdaki tabloyu tools/make_site.py doğrudan kaplama betiklerinin @export
satırlarından doldurur — bir ayar ekleyin ya da bir varsayılanı değiştirin, tablo peşinden gelsin. Bu adları
JSON içinde skin.dials altında kullanın. Varsayılanı 14 okunan bir ayar tam sayıdır,
10.0 okunan ise ondalıklıdır — JSON'a hangi biçimde yazarsanız yazın, üretici betiğin türüne
dönüştürür.
Varsayılan kaplama GoSkin — 17
| Ayar | Varsayılan | Neyi belirler |
|---|---|---|
chip_fill_alpha | 0.16 | Bir chip panelinin dolgu saydamsızlığı. |
chip_edge_alpha | 0.45 | Bir chip panelinin kenar saydamsızlığı. |
alert_tint | 0.1 | Bir uyarı kutusunun panelinin durum rengine ne kadar yaklaştırılacağı. |
slot_tint_lit | 0.24 | Bekleme süresi işlerken hızlı slot panelinin vurgu tonu. |
slot_tint_idle | 0.08 | Boştayken hızlı slot panelinin vurgu tonu. |
slot_border_lit | 2 | Bekleme süresi işlerken hızlı slot kenarlık kalınlığı (dp). |
slot_border_idle | 1 | Boştayken hızlı slot kenarlık kalınlığı (dp). |
badge_pad_x | 5 | Bir rozetin (adet, kalan süre) yatay iç boşluğu (dp). |
badge_pad_y | 1 | Bir rozetin dikey iç boşluğu (dp). |
badge_edge_alpha | 0.6 | Bir rozet panelinin kenar saydamsızlığı. |
float_shadow_alpha | 0.45 | Yüzen kartların (rehber işareti, soru kartı) gölge saydamsızlığı. |
float_shadow_size | 14 | Yüzen kartların gölge bulanıklığı (dp). |
float_shadow_lift | 4 | Yüzen bir kartın gölgesinin aşağı doğru kayması (dp). |
float_glow_size | 10.0 | Gölge yerine ışıyan yüzen bir panelin ışıma mesafesi (dp); bilimkurgunun pahlı paneli gibi. |
joystick_base_alpha | 0.42 | Joystick'in taban diskinin saydamsızlığı. |
joystick_ring_alpha | 0.45 | Joystick halkasının saydamsızlığı. |
joystick_ring_width | 2.0 | Joystick halkasının kalınlığı (dp). |
Bilimkurgu kaplaması GoSkinSciFi — 10
| Ayar | Varsayılan | Neyi belirler |
|---|---|---|
cut_chip | 7.0 | Bir chip panelinin pah boyutu (dp). |
cut_skeleton | 5.0 | Bir iskelet panelinin pah boyutu (dp). |
cut_alert | 8.0 | Bir uyarı kutusunun pah boyutu (dp). |
cut_segment | 8.0 | Bölümlü bir denetimin pah boyutu (dp). |
cut_slot | 6.0 | Bir hızlı slot panelinin pah boyutu (dp). |
cut_disc_ratio | 0.24 | Avatarların ve disklerin pahı = çap × bu oran. |
slot_glow_alpha | 0.45 | Bekleme süresi işleyen bir slotun ışıma saydamsızlığı. |
slot_glow_size | 6.0 | Bekleme süresi işleyen bir slotun ışıma mesafesi (dp). |
bracket_arm | 12.0 | Rehber işaretinin hedefleme köşeliğinin kol uzunluğu (dp). |
bracket_thickness | 2.0 | Rehber işaretinin hedefleme köşeliğinin çizgi kalınlığı (dp). |
Ortaçağ kaplaması GoSkinMedieval — 5
| Ayar | Varsayılan | Neyi belirler |
|---|---|---|
slot_radius | 4.0 | Ortaçağ hızlı slot çerçevesinin köşe yarıçapı (dp). |
leather_grain_alpha | 0.035 | Hızlı slotların içindeki hafif deri izlerinin saydamsızlığı. |
ornament_scale | 1.0 | Hızlı slot köşelerindeki metal süslerin ölçeği. Menü çerçeveleri shape.ornament_scale kullanır. |
bevel_strength | 0.18 | Hızlı slot kenarları boyunca uzanan metal ışıltının şiddeti. |
slot_rivets | 1 | Hızlı slotlarda küçük metal perçinleri göster: 0 gizler, 1 gösterir. |
Kaplamanın alt sınıfını türetin (isteğe bağlı)
Yalnızca temanın ve biçimin erişemediği şeyler — joystick'in altıgeni, slot rozetleri, rehber işaretinin
hedefleme köşeliği — bir kaplamada yaşar. GoSkin'in alt sınıfını türetin, yalnızca o metotları
ezin ve JSON'daki skin alanını o kaynağa yöneltin. Yalnızca renk değiştiren bir tema bu adımı
atlar.
tools/check_scaffold.sh her çalıştırmada kullan-at bir tema
oluşturur — vurguyu değiştirir, yarıçapı 4 yapar — ve silmeden önce üretimi, token yayılımını ve temiz bir
kontrast geçişini doğrular. İlk çalıştırma, yalnızca vurgusu değiştirilmiş bir temanın 8 çiftte
başarısız olduğunu ortaya çıkardı: üretici yazı renklerini itiyor ama vurguyu yazıldığı gibi kullanıyordu.
Artık vurguyu ve onun üstündeki etiketi de itiyor.