extends SceneTree const Style := preload("res://scripts/ui/ui_style.gd") var failures := 0 func _initialize() -> void: Style.set_dark_mode(true) var root := Control.new() var background := ColorRect.new() background.color = Style.BACKGROUND root.add_child(background) var panel := PanelContainer.new() panel.add_theme_stylebox_override("panel", Style.panel_box(Color("172337"), Color("405475"))) root.add_child(panel) Style.set_dark_mode(false) Style.refresh_tree(root, true) _assert(background.color.is_equal_approx(Style.BACKGROUND), "background should switch to light mode") _assert(root.theme.get_color("default_color", "RichTextLabel").is_equal_approx(Style.TEXT), "rich text should use the light text color") var light_box := panel.get_theme_stylebox("panel") as StyleBoxFlat _assert(light_box.bg_color.is_equal_approx(Color("fffffe")), "custom panel surface should switch to light mode") Style.set_dark_mode(true) Style.refresh_tree(root, false) _assert(background.color.is_equal_approx(Style.BACKGROUND), "background should switch back to dark mode") _assert(root.theme.get_color("default_color", "RichTextLabel").is_equal_approx(Style.TEXT), "rich text should use the dark text color") var dark_box := panel.get_theme_stylebox("panel") as StyleBoxFlat _assert(dark_box.bg_color.is_equal_approx(Color("172337")), "custom panel surface should switch back to dark mode") root.free() quit(1 if failures > 0 else 0) func _assert(condition: bool, message: String) -> void: if condition: return failures += 1 push_error(message)