fix: set font size via property path theme_override_font_sizes/font_size

This commit is contained in:
Eric Smith 2026-05-20 22:16:56 -04:00
parent 9e52224dc9
commit f5c7defd87

View file

@ -6,8 +6,12 @@ extends Control
@onready var transition_overlay: ColorRect = %TransitionOverlay
@onready var vbox: VBoxContainer = %VBox
var _v_end_size: int
var _p_end_size: int
var _elapsed: float = 0.0
var _animating: bool = false
var _v_start: int
var _v_end: int
var _p_start: int
var _p_end: int
func _ready() -> void:
@ -16,13 +20,15 @@ func _ready() -> void:
var screen_size: Vector2 = get_viewport_rect().size
# Enormous end font sizes — a large fraction of screen height.
_v_end_size = maxi(1, int(screen_size.y * 0.55))
_p_end_size = maxi(1, int(screen_size.y * 0.30))
# Compute end font sizes as a large fraction of screen height.
# Use set() to go through the property system directly.
_v_end = maxi(1, int(screen_size.y * 0.55))
_p_end = maxi(1, int(screen_size.y * 0.30))
_v_start = 4
_p_start = 4
# Start tiny and invisible
v_label.add_theme_font_size_override("normal_font_size", 4)
panel_label.add_theme_font_size_override("normal_font_size", 4)
_set_v_size(_v_start)
_set_p_size(_p_start)
vbox.modulate = Color(1, 1, 1, 0)
transition_overlay.color = Color(0, 0, 0, 1)
@ -33,13 +39,15 @@ func _ready() -> void:
reveal.tween_property(transition_overlay, "color", Color(0, 0, 0, 0), 0.4)
await reveal.finished
# Phase 1: Grow font sizes + fade in (parallel)
# Pure font-size animation — no transforms, no containers to fight.
# Phase 1: Animate font sizes up + fade in
_elapsed = 0.0
_animating = true
var grow := create_tween()
grow.set_parallel(true)
grow.tween_method(_set_sizes, 0.0, 1.0, 2.0).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_BACK)
grow.tween_property(vbox, "modulate", Color(1, 1, 1, 1), 1.8).set_ease(Tween.EASE_OUT)
await grow.finished
_animating = false
# Phase 2: Hold
await get_tree().create_timer(1.0).timeout
@ -66,8 +74,16 @@ func _ready() -> void:
queue_free()
func _set_v_size(px: int) -> void:
v_label.set("theme_override_font_sizes/font_size", px)
func _set_p_size(px: int) -> void:
panel_label.set("theme_override_font_sizes/font_size", px)
func _set_sizes(progress: float) -> void:
var v_size: int = maxi(1, int(round(4 + progress * (_v_end_size - 4))))
var p_size: int = maxi(1, int(round(4 + progress * (_p_end_size - 4))))
v_label.add_theme_font_size_override("normal_font_size", v_size)
panel_label.add_theme_font_size_override("normal_font_size", p_size)
var v_size: int = maxi(1, int(round(_v_start + progress * (_v_end - _v_start))))
var p_size: int = maxi(1, int(round(_p_start + progress * (_p_end - _p_start))))
_set_v_size(v_size)
_set_p_size(p_size)