كانت إضافة سمة تعني تعديل أربعة مواضع باليد — لوحة ألوان البنّاء، والشكل، والمظهر، ومورد النمط الجاهز. وأمر واحد اليوم يضعها كلها في مكانها.
python3 addons/gohud/tools/new_theme.py neon --from scifi_dark --title "Neon"
python3 addons/gohud/tools/make_theme.py neon # ملف السمة .tres + رسوم عناصر التحكم
godot --headless --path . --import # استورد الرسوم الجديدة مرة واحدة
GoUi.use_preset(&"neon") # تمّ — ويظهر في قائمة الاختيار أيضًا
السطر الأول يكتب themes/palettes/neon.json وthemes/presets/neon.tres. وملف
JSON يحمل كل قيمة من السمة التي يرث عنها، مكتوبةً صراحةً، فيصلح في الوقت نفسه قائمةً بما تستطيع
تغييره: احذف مفتاحًا لتبقي قيمة الأصل، واكتب واحدًا لتتجاوزها. والأنماط الجاهزة تُكتشف بـ مسح
themes/presets/، فلا تتغير أي شيفرة تسجيل — وقائمة إعداد المشروع المنسدلة تلتقطها كذلك.
ما الذي تستطيع تغييره — في صفحة واحدة
| أين | ماذا | كيف |
|---|---|---|
from | السمة الأصل | dark · light · scifi_dark · medieval_dark · … أو سمة JSON أخرى. والمفاتيح المحذوفة ترث قيمها؛ ودورة الوراثة تفشل |
palette | الخلفية · ثلاثة أسطح · الحدّ · ثلاث درجات نص · لون التمييز · أربعة ألوان حالة · الحجاب · الظل · مجرى الشريط | "#RRGGBB"، والشفافية بصيغة "#RRGGBB@0.35" |
ألوان زاهية للتعبئة فقط *_vivid | تُبقي الأشرطة مشبعة حتى حين يضطر لون النص إلى الدكانة — أغفل واحدًا منها فينبّهك البنّاء | |
| الوضوح | لا يُضبط باليد. النصوص والحدود ولون التمييز والنص فوقه يدفعها البنّاء حتى تتجاوز العتبات — غيّر لون التمييز وحده وستظل الفحوص ناجحة | |
shape | kind | flat (مدوّر) · cut (زوايا مشطوفة) · medieval (إطارات مطروقة) |
| المقاسات | radius · radius_small · radius_large · gap · gap_small · gap_large · padding · button_height · button_padding[4] — والتوكنات تتبعها، فلا تختلف حسابات اللوحات والودجات أبدًا | |
لـ cut فقط | cut_ratio · cut_max · corners (diagonal|all) · glow · edge | |
لـ medieval فقط | material (0 حديد · 1 جلد · 2 رقّ) · grain_alpha · ornament_scale · bevel_strength · fonts — أي title وsubtitle وcaption وbody وbutton مربوطةً بملفات خطوط res:// داخل الإضافة | |
skin | base — العائلة التي تحكم المواضع التي يرسمها الكود بنفسه (عصا التوجيه، والخانات، والشارات، وحلقة العلامة الإرشادية، والشرائح، والفواصل) | default · scifi · medieval |
dials — أرقام تلك المواضع: عرض حدّ الخانة وصبغتها، وحشوة الشارة، وعتامة الشريحة والتنبيه، وعرض حلقة عصا التوجيه وعتامتها، ومقاسات الشطف والتوهّج والأقواس في طراز الخيال العلمي | كل قيمة من الأصل مكتوبة صراحةً في ملف JSON. والبنّاء يكتبها في themes/skins/gohud_skin_<id>.tres — دون المساس بأي شيفرة مظهر. ولا تشغّل --new-skin، الذي يولّد هيكل صنف مشتقّ من GoSkin، إلا لتغيير الرسوم نفسها | |
icons | مجموعة الأيقونات | مسار res:// إلى مورد GoIconSet — ويُحتفظ به من أصل JSON عند إغفاله |
dark · title | كيف تعرضه قائمة الاختيار | قيمة منطقية · نص |
كل مقبض
الجدول أدناه يملؤه tools/make_site.py مباشرةً من أسطر @export
في سكربتات المظاهر — أضف مقبضًا أو غيّر قيمة افتراضية فيتبعه الجدول. استعمل هذه الأسماء تحت
skin.dials في ملف JSON. والمقبض الذي تُقرأ قيمته الافتراضية 14 عدد صحيح، والذي
تُقرأ 10.0 عدد عشري — اكتب أيّ الصيغتين في JSON ويحوّلها البنّاء إلى نوع السكربت.
المظهر الافتراضي GoSkin — 17
| المقبض | الافتراضي | ما الذي يضبطه |
|---|---|---|
chip_fill_alpha | 0.16 | عتامة تعبئة لوحة الشريحة. |
chip_edge_alpha | 0.45 | عتامة حافة لوحة الشريحة. |
alert_tint | 0.1 | مقدار ميل لوحة صندوق التنبيه نحو لون حالته. |
slot_tint_lit | 0.24 | صبغة لون التمييز في لوحة الخانة السريعة أثناء سريان مهلة استعدادها. |
slot_tint_idle | 0.08 | صبغة لون التمييز في لوحة الخانة السريعة في حال السكون. |
slot_border_lit | 2 | عرض حدّ الخانة السريعة (dp) أثناء سريان مهلة استعدادها. |
slot_border_idle | 1 | عرض حدّ الخانة السريعة (dp) في حال السكون. |
badge_pad_x | 5 | الحشوة الداخلية الأفقية (dp) للشارة (الكمية، الوقت المتبقي). |
badge_pad_y | 1 | الحشوة الداخلية الرأسية (dp) للشارة. |
badge_edge_alpha | 0.6 | عتامة حافة لوحة الشارة. |
float_shadow_alpha | 0.45 | عتامة ظل البطاقات العائمة (العلامة الإرشادية، بطاقة السؤال). |
float_shadow_size | 14 | ضبابية ظل البطاقات العائمة (dp). |
float_shadow_lift | 4 | إزاحة ظل البطاقة العائمة إلى الأسفل (dp). |
float_glow_size | 10.0 | مدى توهّج (dp) اللوحة العائمة التي تتوهّج بدل أن تُلقي ظلًّا، مثل اللوحة المشطوفة في طراز الخيال العلمي. |
joystick_base_alpha | 0.42 | عتامة قرص قاعدة عصا التوجيه. |
joystick_ring_alpha | 0.45 | عتامة حلقة عصا التوجيه. |
joystick_ring_width | 2.0 | عرض حلقة عصا التوجيه (dp). |
مظهر الخيال العلمي GoSkinSciFi — 10
| المقبض | الافتراضي | ما الذي يضبطه |
|---|---|---|
cut_chip | 7.0 | مقدار الشطف (dp) في لوحة الشريحة. |
cut_skeleton | 5.0 | مقدار الشطف (dp) في اللوحة النائبة. |
cut_alert | 8.0 | مقدار الشطف (dp) في صندوق التنبيه. |
cut_segment | 8.0 | مقدار الشطف (dp) في أداة التحكم المقسّمة. |
cut_slot | 6.0 | مقدار الشطف (dp) في لوحة الخانة السريعة. |
cut_disc_ratio | 0.24 | شطف الصور الرمزية والأقراص = القطر × هذه النسبة. |
slot_glow_alpha | 0.45 | عتامة توهّج الخانة التي تسري مهلة استعدادها. |
slot_glow_size | 6.0 | مدى توهّج (dp) الخانة التي تسري مهلة استعدادها. |
bracket_arm | 12.0 | طول ذراع (dp) قوس التصويب في العلامة الإرشادية. |
bracket_thickness | 2.0 | سماكة خط (dp) قوس التصويب في العلامة الإرشادية. |
مظهر العصور الوسطى GoSkinMedieval — 5
| المقبض | الافتراضي | ما الذي يضبطه |
|---|---|---|
slot_radius | 4.0 | نصف قطر زوايا (dp) إطار الخانة السريعة في طراز العصور الوسطى. |
leather_grain_alpha | 0.035 | عتامة علامات الجلد الخفيفة داخل الخانات السريعة. |
ornament_scale | 1.0 | مقياس الزخارف المعدنية عند أركان الخانات السريعة. أما إطارات القوائم فتستعمل shape.ornament_scale. |
bevel_strength | 0.18 | شدّة الإبراز المعدني على طول حواف الخانات السريعة. |
slot_rivets | 1 | إظهار مسامير معدنية صغيرة على الخانات السريعة: 0 يخفيها، و1 يظهرها. |
اشتقّ المظهر (اختياري)
لا يعيش في المظهر إلا ما لا تصله السمة ولا الشكل — سداسية عصا التوجيه، وشارات الخانات، وقوس التصويب
في العلامة الإرشادية. اشتقّ من GoSkin، وتجاوز تلك الدوال وحدها، ثم وجّه مفتاح skin
في ملف JSON إلى ذلك المورد. أما السمة التي تغيّر الألوان وحدها فتتخطى هذه الخطوة.
tools/check_scaffold.sh سمةً مؤقتة في كل تشغيل —
يغيّر لون التمييز، ويضبط نصف القطر على 4 — ويتحقق من التوليد ومن انتشار التوكنات ومن نجاح فحص
التباين قبل أن يحذفها. وقد كشف أول تشغيل أن سمةً لم يتغير فيها إلا لون التمييز تسقط في
8 أزواج: فالبنّاء كان يدفع ألوان النصوص لكنه يستعمل لون التمييز كما كُتب. أما الآن فهو يدفع
لون التمييز والنص فوقه كذلك.