gohud

Скіни — там, куди темі не дістатися

← Оформлення

МетодВирішує
surface_box · floating_box · overlay_boxЛицьові боки карток і панелей, плаваючі поверхні, «пігулки», покладені поверх гри чи карти
chip_box · chip_inkПанель чипа й колір напису, який на ній лишається розбірливим
slot_box · slot_inkЛицьові боки швидких слотів і їхній текст
disc_boxКоло за аватаром чи бейджем
alert_box · skeleton_box · segment_boxВбудовані сповіщення, заглушки, сегментовані контроли
coach_ring_boxПозначка, якою навчальний тур обводить свою ціль
draw_joystick · draw_coach_pointerТе, що малюється напряму — стик і його вказівник
divider_color · divider_thickness · section_boxРоздільники та заголовки секцій
badge_boxБейджі швидких слотів — кількість і час, що лишився
progress_fill_box · notice_box · tint_noticeЗаливки смуг (з обведенням там, де заливка не дотягує до 3:1 на своєму жолобі) та снекбари
class_name MySkin extends GoSkin

func draw_joystick(canvas: CanvasItem, center: Vector2, knob: Vector2,
        radius: float, knob_radius: float, ink: Color, base: Color, active: bool) -> void:
    # Віджет уже обчислив позиції — тут відбувається лише малювання
    canvas.draw_circle(center, radius, Color(base, 0.4))
    canvas.draw_circle(knob, knob_radius, ink)

Форми, яких StyleBoxFlat не вміє

КласЩо малює
GoStyleBoxCutЗрізані по діагоналі кути, один потовщений акцентний край, зовнішнє сяйво
GoStyleBoxBracketЛише кутові позначки, лишаючи вміст необрамленим
GoStyleBoxMedievalКована рама — заклепки, кутове гравіювання, фаска-відблиск і зернистість заліза, шкіри чи пергаменту

Усі три серіалізуються в ресурс Theme, як і будь-який інший StyleBox, — саме це й дозволяє темі міняти форму.

Задавайте поля через content_margin_*. Якщо успадкувати StyleBox у GDScript, _get_style_margin() ніколи не викликається (виміряно на Godot 4.7). Заповнюйте вбудовані поля, інакше вміст притиснеться до рамки.