gohud

Preset của riêng bạn — một file

← Theme

Thêm một theme trước đây có nghĩa là sửa tay bốn chỗ — bảng màu của trình dựng, phần hình dáng, một skin, một tài nguyên preset. Giờ một lệnh đặt tất cả vào đúng chỗ.

python3 addons/gohud/tools/new_theme.py neon --from scifi_dark --title "Neon"
python3 addons/gohud/tools/make_theme.py neon      # file .tres của theme + hình vẽ cho các control
godot --headless --path . --import                  # import phần hình vẽ mới một lần
GoUi.use_preset(&"neon")                             # xong — nó cũng hiện ra trong danh sách chọn

Dòng đầu ghi ra themes/palettes/neon.jsonthemes/presets/neon.tres. File JSON mang theo mọi giá trị của theme mà nó kế thừa, viết ra đầy đủ, nên nó kiêm luôn bản liệt kê những gì bạn đổi được: xóa một khóa để giữ giá trị của theme cha, viết một khóa để ghi đè. Preset được tìm bằng cách quét themes/presets/, nên không phải sửa code đăng ký nào cả — danh sách thả xuống trong project setting cũng tự thấy nó.

Những gì bạn đổi được — gói trong một trang

Ở đâuCái gìBằng cách nào
fromtheme chadark · light · scifi_dark · medieval_dark · … hoặc một theme JSON khác. Khóa bỏ trống thì kế thừa giá trị của nó; kế thừa thành vòng tròn sẽ báo lỗi
palettenền · ba lớp bề mặt · viền · ba sắc độ chữ · màu nhấn · bốn màu trạng thái · lớp phủ mờ · bóng đổ · rãnh thanh"#RRGGBB", alpha viết là "#RRGGBB@0.35"
màu rực chỉ dùng để tô *_vividgiữ cho thanh luôn tươi ngay cả khi màu chữ buộc phải tối đi — bỏ sót một cái thì trình dựng sẽ báo
độ dễ đọckhông chỉnh bằng tay. Chữ, viền, màu nhấn và nhãn nằm trên nó đều được trình dựng đẩy cho tới khi vượt ngưỡng — chỉ đổi mỗi màu nhấn thì các lượt kiểm tra vẫn qua
shapekindflat (bo tròn) · cut (góc vát) · medieval (khung rèn)
kích thướcradius · radius_small · radius_large · gap · gap_small · gap_large · padding · button_height · button_padding[4] — các token đi theo, nên tấm nền và phần tính toán của widget không bao giờ lệch nhau
chỉ với cutcut_ratio · cut_max · corners (diagonal|all) · glow · edge
chỉ với medievalmaterial (0 sắt · 1 da thuộc · 2 giấy da) · grain_alpha · ornament_scale · bevel_strength · fontstitle, subtitle, caption, body, button gán vào các file font res:// nằm trong add-on
skinbase — dòng skin cho những chỗ code tự vẽ lấy (cần điều khiển, ô nhanh, badge, vòng coach mark, chip, đường kẻ chia)default · scifi · medieval
dialscác con số của những chỗ đó: bề rộng và sắc pha của viền ô nhanh, phần đệm của badge, độ đậm của chip và alert, bề rộng và độ đậm của vòng cần điều khiển, cỡ vát góc, ánh sáng tỏa và dấu góc của sci-fiMọi giá trị của theme cha đều được viết rõ trong file JSON. Trình dựng ghi chúng vào themes/skins/gohud_skin_<id>.treskhông đụng tới code skin nào. Chỉ khi muốn đổi chính hình vẽ bạn mới chạy --new-skin, lệnh này dựng khung sẵn cho một lớp con của GoSkin
iconsbộ biểu tượngmột đường dẫn res:// tới tài nguyên GoIconSet — bỏ trống thì giữ lại của theme JSON cha
dark · titlecách danh sách chọn hiển thị nóboolean · chuỗi

Toàn bộ núm chỉnh

Bảng dưới đây do tools/make_site.py điền thẳng từ các dòng @export trong script của skin — thêm một núm chỉnh hay đổi một giá trị mặc định thì bảng đi theo. Hãy dùng đúng những cái tên này dưới skin.dials trong file JSON. Núm chỉnh có mặc định ghi là 14 là số nguyên, cái ghi 10.0 là số thực — viết kiểu nào trong JSON cũng được, trình dựng sẽ ép về đúng kiểu của script.

Skin mặc định GoSkin — 17

Núm chỉnhMặc địnhĐặt cái gì
chip_fill_alpha0.16Độ đậm phần tô trên tấm nền của một chip.
chip_edge_alpha0.45Độ đậm phần viền trên tấm nền của một chip.
alert_tint0.1Tấm nền của hộp alert ngả về màu trạng thái của nó bao nhiêu.
slot_tint_lit0.24Mức pha màu nhấn vào tấm nền của ô nhanh khi hồi chiêu đang chạy.
slot_tint_idle0.08Mức pha màu nhấn vào tấm nền của ô nhanh lúc bình thường.
slot_border_lit2Bề rộng viền ô nhanh (dp) khi hồi chiêu đang chạy.
slot_border_idle1Bề rộng viền ô nhanh (dp) lúc bình thường.
badge_pad_x5Phần đệm ngang bên trong (dp) của một badge (số lượng, thời gian còn lại).
badge_pad_y1Phần đệm dọc bên trong (dp) của một badge.
badge_edge_alpha0.6Độ đậm phần viền trên tấm nền của một badge.
float_shadow_alpha0.45Độ đậm bóng đổ của các thẻ nổi (coach mark, prompt card).
float_shadow_size14Độ nhòe (dp) của bóng đổ trên thẻ nổi.
float_shadow_lift4Khoảng lệch xuống dưới (dp) của bóng đổ trên thẻ nổi.
float_glow_size10.0Khoảng tỏa sáng (dp) của tấm nền nổi dùng ánh sáng thay cho bóng đổ, như tấm nền vát góc kiểu sci-fi.
joystick_base_alpha0.42Độ đậm của đĩa nền dưới cần điều khiển.
joystick_ring_alpha0.45Độ đậm của vòng quanh cần điều khiển.
joystick_ring_width2.0Bề rộng (dp) của vòng quanh cần điều khiển.

Skin sci-fi GoSkinSciFi — 10

Núm chỉnhMặc địnhĐặt cái gì
cut_chip7.0Cỡ vát góc (dp) trên tấm nền của một chip.
cut_skeleton5.0Cỡ vát góc (dp) của một tấm nền skeleton.
cut_alert8.0Cỡ vát góc (dp) của một hộp alert.
cut_segment8.0Cỡ vát góc (dp) của một control chia đoạn.
cut_slot6.0Cỡ vát góc (dp) trên tấm nền của một ô nhanh.
cut_disc_ratio0.24Vát góc của ảnh đại diện và đĩa tròn = đường kính × tỉ lệ này.
slot_glow_alpha0.45Độ đậm ánh sáng tỏa của một ô đang hồi chiêu.
slot_glow_size6.0Khoảng tỏa sáng (dp) của một ô đang hồi chiêu.
bracket_arm12.0Chiều dài nhánh (dp) của khung ngắm góc trên coach mark.
bracket_thickness2.0Độ dày nét (dp) của khung ngắm góc trên coach mark.

Skin trung cổ GoSkinMedieval — 5

Núm chỉnhMặc địnhĐặt cái gì
slot_radius4.0Bán kính bo góc (dp) của khung ô nhanh kiểu trung cổ.
leather_grain_alpha0.035Độ đậm của những vết da thuộc mờ bên trong các ô nhanh.
ornament_scale1.0Tỉ lệ của các chi tiết kim loại ở góc ô nhanh. Khung menu dùng shape.ornament_scale.
bevel_strength0.18Độ mạnh của vệt sáng kim loại dọc theo mép ô nhanh.
slot_rivets1Hiện những chiếc đinh tán kim loại nhỏ trên ô nhanh: 0 là ẩn, 1 là hiện.

Kế thừa skin (tùy chọn)

Chỉ những gì theme và hình dáng không với tới — hình lục giác của cần điều khiển, badge trên ô nhanh, khung ngắm góc của coach mark — mới nằm trong một skin. Hãy kế thừa GoSkin, chỉ ghi đè đúng các phương thức đó, rồi trỏ trường skin trong file JSON vào tài nguyên đó. Một theme chỉ đổi màu thì bỏ qua bước này.

Một lượt kiểm tra giữ đúng lời hứa. tools/check_scaffold.sh tạo một theme dùng xong bỏ ở mỗi lần chạy — đổi màu nhấn, đặt bán kính bằng 4 — rồi xác minh việc sinh ra, việc token lan truyền và một lượt kiểm tra tương phản sạch sẽ trước khi xóa nó đi. Lần chạy đầu tiên đã phát hiện một theme chỉ đổi mỗi màu nhấn mà hỏng mất 8 cặp màu: trình dựng đẩy màu chữ nhưng lại dùng màu nhấn đúng như được viết. Giờ nó đẩy cả màu nhấn lẫn nhãn nằm trên đó.