diff --git a/assets/state/state_machines/global_state_machine.tres b/assets/state/state_machines/global_state_machine.tres index 732f0a4c..468c96e2 100644 --- a/assets/state/state_machines/global_state_machine.tres +++ b/assets/state/state_machines/global_state_machine.tres @@ -4,7 +4,7 @@ [ext_resource type="Script" path="res://core/systems/state/state_machine.gd" id="1_dw1uo"] [ext_resource type="Resource" uid="uid://bmgs1ngma1523" path="res://assets/state/states/in_game_menu.tres" id="2_pg6ge"] [ext_resource type="Resource" uid="uid://cv3vduo0ojk1u" path="res://assets/state/states/menu.tres" id="3_4n6bo"] -[ext_resource type="Resource" uid="uid://dgbe422crufa4" path="res://assets/state/states/overlay.tres" id="4_j3a4g"] +[ext_resource type="Resource" uid="uid://dgbe422crufa4" path="res://assets/state/states/popup.tres" id="4_j3a4g"] [resource] script = ExtResource("1_dw1uo") diff --git a/assets/state/state_machines/overlay_state_machine.tres b/assets/state/state_machines/popup_state_machine.tres similarity index 54% rename from assets/state/state_machines/overlay_state_machine.tres rename to assets/state/state_machines/popup_state_machine.tres index 9ea56ef0..77866321 100644 --- a/assets/state/state_machines/overlay_state_machine.tres +++ b/assets/state/state_machines/popup_state_machine.tres @@ -1,14 +1,14 @@ [gd_resource type="Resource" script_class="StateMachine" load_steps=7 format=3 uid="uid://cadriyl38ny5y"] -[ext_resource type="Resource" uid="uid://e7bbebwf7guj" path="res://assets/state/states/main_menu.tres" id="1_biinh"] -[ext_resource type="Script" path="res://core/systems/state/state_machine.gd" id="1_twt6m"] -[ext_resource type="Resource" uid="uid://bp807nlks8eq1" path="res://assets/state/states/quick_bar_menu.tres" id="2_suyfm"] -[ext_resource type="Resource" uid="uid://bw0mtk7sso8m2" path="res://assets/state/states/power_menu.tres" id="3_wqmvq"] -[ext_resource type="Resource" uid="uid://dja3m1mevv6xw" path="res://assets/state/states/osk.tres" id="4_hixi7"] -[ext_resource type="Resource" uid="uid://db5gbdl3xgwlq" path="res://assets/state/states/help_menu.tres" id="5_24mgg"] +[ext_resource type="Resource" uid="uid://e7bbebwf7guj" path="res://assets/state/states/main_menu.tres" id="1_7fvmm"] +[ext_resource type="Resource" uid="uid://bp807nlks8eq1" path="res://assets/state/states/quick_bar_menu.tres" id="2_detpa"] +[ext_resource type="Resource" uid="uid://bw0mtk7sso8m2" path="res://assets/state/states/power_menu.tres" id="3_0mhn6"] +[ext_resource type="Resource" uid="uid://dja3m1mevv6xw" path="res://assets/state/states/osk.tres" id="4_qu5fi"] +[ext_resource type="Resource" uid="uid://db5gbdl3xgwlq" path="res://assets/state/states/help_menu.tres" id="5_5ytlq"] +[ext_resource type="Script" path="res://core/systems/state/state_machine.gd" id="6_82te1"] [resource] -script = ExtResource("1_twt6m") -logger_name = "OverlayStateMachine" +script = ExtResource("6_82te1") +logger_name = "PopupStateMachine" minimum_states = 0 -allowed_states = Array[Resource("res://core/systems/state/state.gd")]([ExtResource("1_biinh"), ExtResource("2_suyfm"), ExtResource("3_wqmvq"), ExtResource("4_hixi7"), ExtResource("5_24mgg")]) +allowed_states = Array[Resource("res://core/systems/state/state.gd")]([ExtResource("1_7fvmm"), ExtResource("2_detpa"), ExtResource("3_0mhn6"), ExtResource("4_qu5fi"), ExtResource("5_5ytlq")]) diff --git a/assets/state/states/overlay.tres b/assets/state/states/popup.tres similarity index 73% rename from assets/state/states/overlay.tres rename to assets/state/states/popup.tres index 35629855..32e2341d 100644 --- a/assets/state/states/overlay.tres +++ b/assets/state/states/popup.tres @@ -1,8 +1,8 @@ [gd_resource type="Resource" script_class="State" load_steps=2 format=3 uid="uid://dgbe422crufa4"] -[ext_resource type="Script" path="res://core/systems/state/state.gd" id="1_btrxw"] +[ext_resource type="Script" path="res://core/systems/state/state.gd" id="1_t0m3s"] [resource] -script = ExtResource("1_btrxw") -name = "overlay" +script = ExtResource("1_t0m3s") +name = "popup" data = {} diff --git a/core/systems/input/input_manager.gd b/core/systems/input/input_manager.gd index 7f9d73c7..3a2b7683 100644 --- a/core/systems/input/input_manager.gd +++ b/core/systems/input/input_manager.gd @@ -21,8 +21,8 @@ var audio_manager := load("res://core/global/audio_manager.tres") as AudioManage var input_plumber := load("res://core/systems/input/input_plumber.tres") as InputPlumber ## State machine to use to switch menu states in response to input events. -var overlay_state_machine := ( - preload("res://assets/state/state_machines/overlay_state_machine.tres") as StateMachine +var popup_state_machine := ( + preload("res://assets/state/state_machines/popup_state_machine.tres") as StateMachine ) var in_game_menu_state := preload("res://assets/state/states/in_game_menu.tres") as State var main_menu_state := preload("res://assets/state/states/main_menu.tres") as State @@ -188,15 +188,15 @@ func _main_menu_input(event: InputEvent) -> void: return # Open the main menu - var state := overlay_state_machine.current_state() + var state := popup_state_machine.current_state() var menu_state := main_menu_state if state == menu_state: - overlay_state_machine.pop_state() + popup_state_machine.pop_state() elif state in [quick_bar_state, osk_state]: - overlay_state_machine.replace_state(menu_state) + popup_state_machine.replace_state(menu_state) else: - overlay_state_machine.push_state(menu_state) + popup_state_machine.push_state(menu_state) ## Handle quick bar menu events to open the quick bar menu @@ -205,13 +205,13 @@ func _on_quick_bar_open(event: InputEvent) -> void: if not event.is_pressed(): return - var state := overlay_state_machine.current_state() + var state := popup_state_machine.current_state() if state == quick_bar_state: - overlay_state_machine.pop_state() + popup_state_machine.pop_state() elif state in [main_menu_state, in_game_menu_state, osk_state]: - overlay_state_machine.replace_state(quick_bar_state) + popup_state_machine.replace_state(quick_bar_state) else: - overlay_state_machine.push_state(quick_bar_state) + popup_state_machine.push_state(quick_bar_state) ## Handle OSK events for bringing up the on-screen keyboard @@ -224,13 +224,13 @@ func _osk_input(event: InputEvent) -> void: context.type = KeyboardContext.TYPE.X11 osk.open(context) - var state := overlay_state_machine.current_state() + var state := popup_state_machine.current_state() if state == osk_state: - overlay_state_machine.pop_state() + popup_state_machine.pop_state() elif state in [main_menu_state, in_game_menu_state, quick_bar_state]: - overlay_state_machine.replace_state(osk_state) + popup_state_machine.replace_state(osk_state) else: - overlay_state_machine.push_state(osk_state) + popup_state_machine.push_state(osk_state) ## Handle audio input events such as mute, volume up, and volume down diff --git a/core/systems/input/input_watcher.gd b/core/systems/input/input_watcher.gd index 08fb969c..f1e8543e 100644 --- a/core/systems/input/input_watcher.gd +++ b/core/systems/input/input_watcher.gd @@ -16,15 +16,22 @@ signal input_released ## If true, consumes the event, marking it as handled so no other nodes ## try to handle this input event. @export var stop_propagation: bool +## Always process inputs or only when parent node is visible +@export_flags("When visible", "When child focused") var process_input_mode: int = 3 ## Name of the input action in the InputMap to watch for var action: String +@onready var logger := Log.get_logger("InputWatcher", Log.LEVEL.INFO) + func _ready() -> void: if action.is_empty(): set_process_input(false) + if process_input_mode == 0: + return + # Only process input if the parent node is visible var parent := get_parent() if parent is Control: @@ -39,6 +46,13 @@ func _input(event: InputEvent) -> void: if not event.is_action(action): return + # Only process input if a child node has focus + if (process_input_mode & 2): + var focus_owner := get_viewport().gui_get_focus_owner() + var parent := get_parent() + if not parent.is_ancestor_of(focus_owner): + return + if event.is_pressed(): input_pressed.emit() elif event.is_released(): @@ -46,6 +60,8 @@ func _input(event: InputEvent) -> void: # Stop the event from propagating if stop_propagation: + var parent := get_parent() + logger.debug("Consuming input event '{action}' for node {n}".format({"action": action, "n": str(parent)})) get_viewport().set_input_as_handled() diff --git a/core/ui/card_ui/card_ui.gd b/core/ui/card_ui/card_ui.gd index 1c5225e4..9bbedc6e 100644 --- a/core/ui/card_ui/card_ui.gd +++ b/core/ui/card_ui/card_ui.gd @@ -10,9 +10,9 @@ var state_machine := ( preload("res://assets/state/state_machines/global_state_machine.tres") as StateMachine ) var menu_state_machine := preload("res://assets/state/state_machines/menu_state_machine.tres") as StateMachine -var overlay_state_machine := preload("res://assets/state/state_machines/overlay_state_machine.tres") as StateMachine +var popup_state_machine := preload("res://assets/state/state_machines/popup_state_machine.tres") as StateMachine var menu_state := preload("res://assets/state/states/menu.tres") as State -var overlay_state := preload("res://assets/state/states/overlay.tres") as State +var popup_state := preload("res://assets/state/states/popup.tres") as State var first_boot_state := preload("res://assets/state/states/first_boot_menu.tres") as State var home_state := preload("res://assets/state/states/home.tres") as State var in_game_state := preload("res://assets/state/states/in_game.tres") as State @@ -88,14 +88,17 @@ func _ready() -> void: var on_menu_state_entered := func(_from: State): menu_state_machine.refresh() menu_state.state_entered.connect(on_menu_state_entered) + var on_menu_state_removed := func(_to: State): + menu_state_machine.clear_states() + menu_state.state_removed.connect(on_menu_state_removed) - # Whenever an overlay state is pushed, update the global state - var on_overlay_state_changed := func(_from: State, to: State): + # Whenever an popup state is pushed, update the global state + var on_popup_state_changed := func(_from: State, to: State): if to: - state_machine.push_state(overlay_state) + state_machine.push_state(popup_state) else: - state_machine.remove_state(overlay_state) - overlay_state_machine.state_changed.connect(on_overlay_state_changed) + state_machine.remove_state(popup_state) + popup_state_machine.state_changed.connect(on_popup_state_changed) # Show/hide the overlay when we enter/exit the in-game state in_game_state.state_entered.connect(_on_game_state_entered) @@ -114,21 +117,13 @@ func _ready() -> void: input_plumber.composite_device_changed.connect(on_device_changed) # Set the theme if one was set - var theme_path := settings_manager.get_value("general", "theme", "") as String - if theme_path == "": - logger.debug("No theme set. Using default theme.") - - var current_theme = get_theme() - if theme_path != "" && current_theme.resource_path != theme_path: - logger.debug("Setting theme to: " + theme_path) - var loaded_theme = load(theme_path) - if loaded_theme != null: - # TODO: This is a workaround, themes aren't properly set the first time. - call_deferred("set_theme", loaded_theme) - call_deferred("set_theme", current_theme) - call_deferred("set_theme", loaded_theme) - else: - logger.debug("Unable to load theme") + var theme_path := settings_manager.get_value("general", "theme", "res://assets/themes/card_ui-dracula.tres") as String + logger.debug("Setting theme to: " + theme_path) + var loaded_theme = load(theme_path) + if loaded_theme != null: + set_theme(loaded_theme) + else: + logger.debug("Unable to load theme") func _on_focus_changed(control: Control) -> void: @@ -239,7 +234,7 @@ func _input(event: InputEvent) -> void: if event.is_action_pressed("ogui_power"): var open_power_menu := func(): logger.info("Power menu requested") - overlay_state_machine.push_state(power_state) + popup_state_machine.push_state(power_state) power_timer.timeout.connect(open_power_menu, CONNECT_ONE_SHOT) power_timer.start() return diff --git a/core/ui/card_ui/card_ui.tscn b/core/ui/card_ui/card_ui.tscn index 60f2ad6b..ad26e2a9 100644 --- a/core/ui/card_ui/card_ui.tscn +++ b/core/ui/card_ui/card_ui.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=39 format=3 uid="uid://fhriwlhm0lcj"] +[gd_scene load_steps=38 format=3 uid="uid://fhriwlhm0lcj"] [ext_resource type="PackedScene" uid="uid://n83wlhmmsu3j" path="res://core/systems/input/input_manager.tscn" id="1_34t85"] -[ext_resource type="Theme" uid="uid://ehplgpp70vxa" path="res://assets/themes/card_ui-dracula.tres" id="1_ajgj2"] [ext_resource type="Script" path="res://core/ui/card_ui/card_ui.gd" id="1_f8851"] [ext_resource type="PackedScene" uid="uid://dlegwm7jqfe2i" path="res://core/systems/boxart/boxart_local.tscn" id="2_600i0"] [ext_resource type="PackedScene" uid="uid://ch6qw6obetalo" path="res://core/systems/library/library_desktop.tscn" id="3_68bes"] @@ -83,7 +82,6 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -theme = ExtResource("1_ajgj2") script = ExtResource("1_f8851") [node name="InputManager" parent="." instance=ExtResource("1_34t85")] @@ -305,7 +303,7 @@ mouse_filter = 2 [node name="FadeTexture" type="TextureRect" parent="."] unique_name_in_owner = true -z_index = 20 +z_index = 21 layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -322,7 +320,7 @@ libraries = { [node name="BootVideoPlayer" type="VideoStreamPlayer" parent="."] unique_name_in_owner = true -z_index = 20 +z_index = 21 layout_mode = 1 anchors_preset = 8 anchor_left = 0.5 diff --git a/core/ui/card_ui/gamepad/gamepad_mapper.tscn b/core/ui/card_ui/gamepad/gamepad_mapper.tscn index 5abedf6e..64715cc8 100644 --- a/core/ui/card_ui/gamepad/gamepad_mapper.tscn +++ b/core/ui/card_ui/gamepad/gamepad_mapper.tscn @@ -1,12 +1,13 @@ -[gd_scene load_steps=22 format=3 uid="uid://b3o3wo40sfih1"] +[gd_scene load_steps=23 format=3 uid="uid://b3o3wo40sfih1"] [ext_resource type="Script" path="res://core/ui/card_ui/gamepad/gamepad_mapper.gd" id="1_alala"] [ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="2_4osef"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_o3mis"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_2kcao"] [ext_resource type="Resource" uid="uid://c4er7pfmn7x50" path="res://assets/state/state_machines/gamepad_settings_state_machine.tres" id="3_wgp64"] [ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="4_scwwv"] [ext_resource type="Resource" uid="uid://46cu324n427u" path="res://assets/state/states/gamepad_change_input.tres" id="4_sv30y"] [ext_resource type="PackedScene" uid="uid://uljtdvmuol3l" path="res://core/systems/input/focus_group_setter.tscn" id="5_i6uqd"] -[ext_resource type="PackedScene" uid="uid://ccd4sw84h1qbc" path="res://core/systems/input/back_input_handler.tscn" id="5_roi3c"] [ext_resource type="Texture2D" uid="uid://dyemqkvdtk43e" path="res://assets/images/gamepad/xbox/xbox_button_color_a.svg" id="8_5jaa6"] [ext_resource type="PackedScene" uid="uid://cgmb4kr2ec4ha" path="res://core/ui/components/tabs_header.tscn" id="8_okgql"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="9_an8os"] @@ -34,6 +35,15 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_alala") +[node name="InputWatcher" parent="." instance=ExtResource("2_o3mis")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_2kcao")] +state_machine = ExtResource("3_wgp64") +action = 2 +on_signal = "input_released" + [node name="StateWatcher" parent="." instance=ExtResource("2_4osef")] state = ExtResource("4_sv30y") @@ -47,11 +57,6 @@ on_signal = "state_entered" target = NodePath("../../VBoxContainer/TabContainer/Gamepad/MarginContainer/HBoxContainer/PanelContainer/MarginContainer/ScrollContainer/GamepadInputContainer/GamepadFocusGroup") on_signal = "state_entered" -[node name="BackInputHandler" parent="." instance=ExtResource("5_roi3c")] -state_machine = ExtResource("3_wgp64") -process_input_during = Array[Resource("res://core/systems/state/state.gd")]([ExtResource("4_sv30y")]) -minimum_states = 0 - [node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 1 anchors_preset = 15 diff --git a/core/ui/card_ui/gamepad/gamepad_settings.gd b/core/ui/card_ui/gamepad/gamepad_settings.gd index 177591ab..582c3f8b 100644 --- a/core/ui/card_ui/gamepad/gamepad_settings.gd +++ b/core/ui/card_ui/gamepad/gamepad_settings.gd @@ -10,7 +10,7 @@ var in_game_state := load("res://assets/state/states/in_game.tres") as State var launch_manager := load("res://core/global/launch_manager.tres") as LaunchManager var notification_manager := load("res://core/global/notification_manager.tres") as NotificationManager var settings_manager := load("res://core/global/settings_manager.tres") as SettingsManager -var global_state_machine := load("res://assets/state/state_machines/global_state_machine.tres") as StateMachine +var global_state_machine := load("res://assets/state/state_machines/menu_state_machine.tres") as StateMachine var state_machine := load("res://assets/state/state_machines/gamepad_settings_state_machine.tres") as StateMachine var input_plumber := load("res://core/systems/input/input_plumber.tres") as InputPlumber var input_icons := load("res://core/systems/input/input_icon_manager.tres") as InputIconManager diff --git a/core/ui/card_ui/gamepad/gamepad_settings.tscn b/core/ui/card_ui/gamepad/gamepad_settings.tscn index 5bfa007c..e7cf5d7c 100644 --- a/core/ui/card_ui/gamepad/gamepad_settings.tscn +++ b/core/ui/card_ui/gamepad/gamepad_settings.tscn @@ -36,7 +36,7 @@ script = ExtResource("1_o4hh5") [node name="InputWatcher" parent="." instance=ExtResource("2_ck60w")] stop_propagation = true -action = "ogui_back" +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_yygaq")] state_machine = ExtResource("4_wxnal") diff --git a/core/ui/card_ui/help/help_menu.tscn b/core/ui/card_ui/help/help_menu.tscn index 3f7e29f9..1234be16 100644 --- a/core/ui/card_ui/help/help_menu.tscn +++ b/core/ui/card_ui/help/help_menu.tscn @@ -4,7 +4,7 @@ [ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_cxu4x"] [ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_10mqr"] [ext_resource type="Resource" uid="uid://db5gbdl3xgwlq" path="res://assets/state/states/help_menu.tres" id="3_hidel"] -[ext_resource type="Resource" uid="uid://bcr6c0281lb5b" path="res://assets/state/state_machines/menu_state_machine.tres" id="4_8croa"] +[ext_resource type="Resource" uid="uid://cadriyl38ny5y" path="res://assets/state/state_machines/popup_state_machine.tres" id="4_x24i3"] [ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_1uaoh"] [ext_resource type="PackedScene" uid="uid://b0cyl6fdqxevn" path="res://core/systems/input/scroller_joystick.tscn" id="5_uocjd"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="5_wfsen"] @@ -14,6 +14,7 @@ [ext_resource type="PackedScene" uid="uid://ekhjpmat02f8" path="res://core/systems/effects/slide_effect.tscn" id="8_ut6gk"] [node name="HelpMenu" type="Control"] +z_index = 20 layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -24,10 +25,11 @@ script = ExtResource("1_7fti5") [node name="InputWatcher" parent="." instance=ExtResource("2_cxu4x")] stop_propagation = true -action = "ogui_back" +process_input_mode = 1 +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_10mqr")] -state_machine = ExtResource("4_8croa") +state_machine = ExtResource("4_x24i3") action = 2 on_signal = "input_released" @@ -42,8 +44,8 @@ on_signal = "state_entered" [node name="SlideEffect" parent="StateWatcher" node_paths=PackedStringArray("target") instance=ExtResource("8_ut6gk")] target = NodePath("../../MarginContainer") -slide_speed = 0.2 -direction = "down" +slide_speed = 0.25 +direction = "up" on_signal = "state_entered" slide_out_signal = "state_exited" on_signal = "state_entered" diff --git a/core/ui/card_ui/home/cardui_home.gd b/core/ui/card_ui/home/cardui_home.gd index 069cb686..4c78ed45 100644 --- a/core/ui/card_ui/home/cardui_home.gd +++ b/core/ui/card_ui/home/cardui_home.gd @@ -7,7 +7,7 @@ var InstallManager := preload("res://core/global/install_manager.tres") var BoxArtManager := load("res://core/global/boxart_manager.tres") as BoxArtManager var LibraryManager := load("res://core/global/library_manager.tres") as LibraryManager var state_machine := preload("res://assets/state/state_machines/menu_state_machine.tres") as StateMachine -var overlay_state_machine := preload("res://assets/state/state_machines/overlay_state_machine.tres") as StateMachine +var popup_state_machine := preload("res://assets/state/state_machines/popup_state_machine.tres") as StateMachine var home_state := preload("res://assets/state/states/home.tres") as State var main_menu_state := preload("res://assets/state/states/main_menu.tres") as State var launcher_state := preload("res://assets/state/states/game_launcher.tres") as State @@ -107,7 +107,7 @@ func _input(event: InputEvent) -> void: get_viewport().set_input_as_handled() # Push the main menu state when the back button is pressed - overlay_state_machine.push_state(main_menu_state) + popup_state_machine.push_state(main_menu_state) # When an install is queued, connect signals to show a progress bar on the library diff --git a/core/ui/card_ui/home/cardui_home.tscn b/core/ui/card_ui/home/cardui_home.tscn index eb6b2ca9..eea547d8 100644 --- a/core/ui/card_ui/home/cardui_home.tscn +++ b/core/ui/card_ui/home/cardui_home.tscn @@ -4,7 +4,7 @@ [ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_d1wwx"] [ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="2_eo81q"] [ext_resource type="Resource" uid="uid://oaavalv0wcoa" path="res://assets/state/states/home.tres" id="3_x1rvr"] -[ext_resource type="Resource" uid="uid://cadriyl38ny5y" path="res://assets/state/state_machines/overlay_state_machine.tres" id="4_mrwia"] +[ext_resource type="Resource" uid="uid://cadriyl38ny5y" path="res://assets/state/state_machines/popup_state_machine.tres" id="4_mrwia"] [ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="4_pbfsf"] [ext_resource type="Resource" uid="uid://e7bbebwf7guj" path="res://assets/state/states/main_menu.tres" id="5_gbh30"] [ext_resource type="Texture2D" uid="uid://d1mksukdkqorr" path="res://assets/images/placeholder-grid-banner.png" id="10_mmfgs"] @@ -48,7 +48,7 @@ script = ExtResource("1_a4a3j") [node name="InputWatcher" parent="." instance=ExtResource("2_d1wwx")] stop_propagation = true -action = "ogui_back" +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("14_wdgux")] state_machine = ExtResource("4_mrwia") diff --git a/core/ui/card_ui/launch/game_launch_menu.tscn b/core/ui/card_ui/launch/game_launch_menu.tscn index 17446d89..430a0b74 100644 --- a/core/ui/card_ui/launch/game_launch_menu.tscn +++ b/core/ui/card_ui/launch/game_launch_menu.tscn @@ -55,7 +55,7 @@ script = ExtResource("1_u3ehs") [node name="InputWatcher" parent="." instance=ExtResource("2_slsfk")] stop_propagation = true -action = "ogui_back" +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("15_lat8h")] state_machine = ExtResource("4_aqvfw") @@ -170,6 +170,7 @@ state = ExtResource("17_7ydn0") on_signal = "player_button_up" [node name="VSeparator" type="VSeparator" parent="CenterContainer/HBoxContainer/ExtraMenu/MarginContainer/HBoxContainer"] +visible = false custom_minimum_size = Vector2(0, 24) layout_mode = 2 size_flags_vertical = 4 @@ -193,6 +194,7 @@ layout_mode = 2 layout_mode = 2 [node name="VSeparator" type="VSeparator" parent="CenterContainer/HBoxContainer/ExtraMenu/MarginContainer/HBoxContainer/DeleteContainer/HBoxContainer"] +visible = false custom_minimum_size = Vector2(0, 24) layout_mode = 2 size_flags_vertical = 4 diff --git a/core/ui/card_ui/launch/game_settings.tscn b/core/ui/card_ui/launch/game_settings.tscn index 9e53d3a3..1e03f2d0 100644 --- a/core/ui/card_ui/launch/game_settings.tscn +++ b/core/ui/card_ui/launch/game_settings.tscn @@ -35,7 +35,7 @@ script = ExtResource("1_vrr6s") [node name="InputWatcher" parent="." instance=ExtResource("2_1eqgx")] stop_propagation = true -action = "ogui_back" +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("15_lmmqq")] state_machine = ExtResource("4_5bv80") diff --git a/core/ui/card_ui/library/library_menu.gd b/core/ui/card_ui/library/library_menu.gd index 201200e1..b032739c 100644 --- a/core/ui/card_ui/library/library_menu.gd +++ b/core/ui/card_ui/library/library_menu.gd @@ -35,6 +35,9 @@ func _ready() -> void: # Connect to state entered signals library_state.state_entered.connect(_on_state_entered) + var on_refresh := func(): + _on_state_entered(null) + library_state.refreshed.connect(on_refresh) # Listen for tab container changes tabs_state.tab_changed.connect(_on_tab_container_tab_changed) diff --git a/core/ui/card_ui/library/library_menu.tscn b/core/ui/card_ui/library/library_menu.tscn index 9b78ca90..71934b98 100644 --- a/core/ui/card_ui/library/library_menu.tscn +++ b/core/ui/card_ui/library/library_menu.tscn @@ -26,7 +26,7 @@ tabs_state = ExtResource("2_4hmwr") [node name="InputWatcher" parent="." instance=ExtResource("3_l8ff2")] stop_propagation = true -action = "ogui_back" +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("4_qje1c")] state_machine = ExtResource("5_nj5st") diff --git a/core/ui/card_ui/main-menu/main_menu.tscn b/core/ui/card_ui/main-menu/main_menu.tscn index 3a44cebe..b7388d2e 100644 --- a/core/ui/card_ui/main-menu/main_menu.tscn +++ b/core/ui/card_ui/main-menu/main_menu.tscn @@ -5,7 +5,7 @@ [ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_bcynd"] [ext_resource type="Resource" uid="uid://e7bbebwf7guj" path="res://assets/state/states/main_menu.tres" id="3_3xh32"] [ext_resource type="PackedScene" uid="uid://ekhjpmat02f8" path="res://core/systems/effects/slide_effect.tscn" id="4_hfk5i"] -[ext_resource type="Resource" uid="uid://cadriyl38ny5y" path="res://assets/state/state_machines/overlay_state_machine.tres" id="4_w4cpu"] +[ext_resource type="Resource" uid="uid://cadriyl38ny5y" path="res://assets/state/state_machines/popup_state_machine.tres" id="4_w4cpu"] [ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="5_88bts"] [ext_resource type="PackedScene" uid="uid://uljtdvmuol3l" path="res://core/systems/input/focus_group_setter.tscn" id="6_r2ip5"] [ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="6_ris1l"] @@ -31,7 +31,7 @@ script = ExtResource("1_3looj") [node name="InputWatcher" parent="." instance=ExtResource("2_bcynd")] stop_propagation = true -action = "ogui_back" +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("6_ris1l")] state_machine = ExtResource("4_w4cpu") diff --git a/core/ui/card_ui/navigation/running_game_card.gd b/core/ui/card_ui/navigation/running_game_card.gd index 4400ada4..d183e73d 100644 --- a/core/ui/card_ui/navigation/running_game_card.gd +++ b/core/ui/card_ui/navigation/running_game_card.gd @@ -39,11 +39,18 @@ var logger := Log.get_logger("RunningGameCard", Log.LEVEL.INFO) # Called when the node enters the scene tree for the first time. func _ready() -> void: + if Engine.is_editor_hint(): + return + focus_entered.connect(_on_focus) focus_exited.connect(_on_unfocus) pressed.connect(_on_pressed) theme_changed.connect(_on_theme_changed) - _on_theme_changed() + + # Find the parent theme and update if required + var effective_theme := ThemeUtils.get_effective_theme(self) + if effective_theme: + _on_theme_changed() # Auto-close when visibility is lost var on_visibility_changed := func(): diff --git a/core/ui/card_ui/navigation/top_button_menu.tscn b/core/ui/card_ui/navigation/top_button_menu.tscn index 52e4020c..2539834e 100644 --- a/core/ui/card_ui/navigation/top_button_menu.tscn +++ b/core/ui/card_ui/navigation/top_button_menu.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=3 uid="uid://by0i08fw1fwty"] +[gd_scene load_steps=13 format=3 uid="uid://by0i08fw1fwty"] [ext_resource type="PackedScene" uid="uid://bfiia7vnbfw3s" path="res://core/systems/state/states_watcher.tscn" id="1_onljq"] [ext_resource type="Texture2D" uid="uid://bjscvn2us6tal" path="res://assets/ui/icons/bell.svg" id="1_te2kv"] @@ -8,6 +8,7 @@ [ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="4_m8oxr"] [ext_resource type="PackedScene" uid="uid://cr83fmlociwko" path="res://core/ui/components/card_icon_button.tscn" id="6_b4g8u"] [ext_resource type="Resource" uid="uid://bcr6c0281lb5b" path="res://assets/state/state_machines/menu_state_machine.tres" id="9_74mn5"] +[ext_resource type="Resource" uid="uid://cadriyl38ny5y" path="res://assets/state/state_machines/popup_state_machine.tres" id="9_atx4m"] [ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="9_nhibw"] [ext_resource type="Resource" uid="uid://d3gp85f35oiw6" path="res://assets/state/states/settings.tres" id="11_eo1bd"] [ext_resource type="Resource" uid="uid://db5gbdl3xgwlq" path="res://assets/state/states/help_menu.tres" id="11_q3ls8"] @@ -48,7 +49,7 @@ layout_mode = 2 texture = ExtResource("2_1q5o3") [node name="StateUpdater" parent="MarginContainer/HBoxContainer/HelpButton" instance=ExtResource("9_nhibw")] -state_machine = ExtResource("9_74mn5") +state_machine = ExtResource("9_atx4m") state = ExtResource("11_q3ls8") on_signal = "button_up" diff --git a/core/ui/card_ui/power/power_menu.gd b/core/ui/card_ui/power/power_menu.gd index d84a9396..8e62e954 100644 --- a/core/ui/card_ui/power/power_menu.gd +++ b/core/ui/card_ui/power/power_menu.gd @@ -1,7 +1,7 @@ extends Control var state_machine := ( - preload("res://assets/state/state_machines/overlay_state_machine.tres") as StateMachine + preload("res://assets/state/state_machines/popup_state_machine.tres") as StateMachine ) var power_state := load("res://assets/state/states/power_menu.tres") as State var logger := Log.get_logger("PowerMenu") diff --git a/core/ui/card_ui/power/power_menu.tscn b/core/ui/card_ui/power/power_menu.tscn index baa0dc9d..b67c488e 100644 --- a/core/ui/card_ui/power/power_menu.tscn +++ b/core/ui/card_ui/power/power_menu.tscn @@ -4,7 +4,7 @@ [ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="3_1whtm"] [ext_resource type="Shader" path="res://assets/shaders/simple_blur.gdshader" id="3_oe8pc"] [ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="4_4rhfl"] -[ext_resource type="Resource" uid="uid://cadriyl38ny5y" path="res://assets/state/state_machines/overlay_state_machine.tres" id="5_kxixy"] +[ext_resource type="Resource" uid="uid://cadriyl38ny5y" path="res://assets/state/state_machines/popup_state_machine.tres" id="5_kxixy"] [ext_resource type="Resource" uid="uid://bw0mtk7sso8m2" path="res://assets/state/states/power_menu.tres" id="5_u1rly"] [ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="6_34b1q"] [ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="8_xohsw"] @@ -51,7 +51,7 @@ texture = SubResource("GradientTexture1D_nu0jx") [node name="InputWatcher" parent="." instance=ExtResource("3_1whtm")] stop_propagation = true -action = "ogui_back" +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("4_4rhfl")] state_machine = ExtResource("5_kxixy") diff --git a/core/ui/card_ui/quick_bar/qb_card.gd b/core/ui/card_ui/quick_bar/qb_card.gd index de5ad674..3fe49484 100644 --- a/core/ui/card_ui/quick_bar/qb_card.gd +++ b/core/ui/card_ui/quick_bar/qb_card.gd @@ -15,7 +15,14 @@ signal nonchild_focused @export_category("Card") @export var title := "Section" -@export var is_toggled := false +@export var is_toggled := false: + set(v): + is_toggled = v + if is_toggled: + toggled_on.emit() + else: + toggled_off.emit() + toggled.emit(is_toggled) @onready var header_container := $%HeaderContainer as VBoxContainer @onready var label := $%SectionLabel as Label @@ -31,17 +38,22 @@ var logger := Log.get_logger("QBCard", Log.LEVEL.INFO) # Called when the node enters the scene tree for the first time. func _ready() -> void: - focus_entered.connect(_on_focus) - focus_exited.connect(_on_unfocus) - pressed.connect(_on_pressed) - theme_changed.connect(_on_theme_changed) - _on_theme_changed() label.text = title - + # Do nothing if running in the editor if Engine.is_editor_hint(): return + focus_entered.connect(_on_focus) + focus_exited.connect(_on_unfocus) + button_up.connect(_on_button_up) + theme_changed.connect(_on_theme_changed) + + # Find the parent theme and update if required + var effective_theme := ThemeUtils.get_effective_theme(self) + if effective_theme: + _on_theme_changed() + # Try to find a scroll container to do smooth scrolling on expansion var scroll_container := find_parent("ScrollContainer") if scroll_container and scroll_container is ScrollContainer: @@ -51,11 +63,9 @@ func _ready() -> void: grower.effect_finished.connect(on_grow_finished) # Auto-close when visibility is lost - var on_visibility_changed := func(): - var grower := get_node("GrowerEffect") as GrowerEffect - grower.shrink() + var on_hidden := func(): is_toggled = false - hidden.connect(on_visibility_changed) + hidden.connect(on_hidden) # Resize any children that are Control nodes for child in content_container.get_children(): @@ -132,7 +142,7 @@ func _on_focus() -> void: # the user has focused outside the card, and we should shrink to hide the # content if is_toggled: - _on_pressed() + _on_button_up() func _on_unfocus() -> void: @@ -148,7 +158,7 @@ func _on_unfocus() -> void: nonchild_focused.emit() -func _on_pressed() -> void: +func _on_button_up() -> void: is_toggled = !is_toggled if is_toggled: toggled_on.emit() @@ -168,3 +178,24 @@ func _gui_input(event: InputEvent) -> void: pressed.emit() else: button_up.emit() + + +func _input(event: InputEvent) -> void: + if not is_toggled: + return + if not event.is_action("ogui_east"): + return + if not event.is_released(): + return + + # Only process input if a child node has focus + #var focus_owner := get_viewport().gui_get_focus_owner() + #if not self.is_ancestor_of(focus_owner): + # return + + # Handle back input + is_toggled = false + + # Stop the event from propagating + #logger.debug("Consuming input event '{action}' for node {n}".format({"action": action, "n": str(self)})) + get_viewport().set_input_as_handled() diff --git a/core/ui/card_ui/quick_bar/qb_card.tscn b/core/ui/card_ui/quick_bar/qb_card.tscn index ca3e085d..2b8d7394 100644 --- a/core/ui/card_ui/quick_bar/qb_card.tscn +++ b/core/ui/card_ui/quick_bar/qb_card.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=3 uid="uid://b5xnora73yd8x"] +[gd_scene load_steps=8 format=3 uid="uid://b5xnora73yd8x"] [ext_resource type="Script" path="res://core/ui/card_ui/quick_bar/qb_card.gd" id="1_g6c8x"] [ext_resource type="PackedScene" uid="uid://c5sfkhrfbao71" path="res://core/systems/effects/play_audio_effect.tscn" id="2_blp6j"] @@ -8,18 +8,6 @@ [ext_resource type="PackedScene" uid="uid://btg3dylh0tqoi" path="res://core/systems/effects/smooth_scroll_effect.tscn" id="6_hklca"] [ext_resource type="PackedScene" uid="uid://d0u3rsa5qpj57" path="res://core/ui/components/subsection_label.tscn" id="6_qh1ai"] -[sub_resource type="Image" id="Image_6pbp1"] -data = { -"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), -"format": "RGBA8", -"height": 16, -"mipmaps": false, -"width": 16 -} - -[sub_resource type="ImageTexture" id="ImageTexture_sa6yd"] -image = SubResource("Image_6pbp1") - [node name="QuickBarCard" type="PanelContainer"] anchors_preset = 10 anchor_right = 1.0 @@ -69,7 +57,6 @@ theme_type_variation = &"ExpandableCard" unique_name_in_owner = true visible = false layout_mode = 2 -texture = SubResource("ImageTexture_sa6yd") expand_mode = 1 stretch_mode = 6 diff --git a/core/ui/card_ui/quick_bar/quick_bar_menu.tscn b/core/ui/card_ui/quick_bar/quick_bar_menu.tscn index 71f49464..392c94b6 100644 --- a/core/ui/card_ui/quick_bar/quick_bar_menu.tscn +++ b/core/ui/card_ui/quick_bar/quick_bar_menu.tscn @@ -1,18 +1,18 @@ -[gd_scene load_steps=26 format=3 uid="uid://hroo3ll4inrb"] +[gd_scene load_steps=27 format=3 uid="uid://hroo3ll4inrb"] [ext_resource type="Script" path="res://core/ui/card_ui/quick_bar/quick_bar_menu.gd" id="1_56jo7"] [ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="2_6rvrx"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_kmwe3"] [ext_resource type="Resource" uid="uid://bp807nlks8eq1" path="res://assets/state/states/quick_bar_menu.tres" id="3_cxjne"] [ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="4_l64vu"] +[ext_resource type="Resource" uid="uid://cadriyl38ny5y" path="res://assets/state/state_machines/popup_state_machine.tres" id="4_n117t"] [ext_resource type="PackedScene" uid="uid://ekhjpmat02f8" path="res://core/systems/effects/slide_effect.tscn" id="5_i1kur"] -[ext_resource type="PackedScene" uid="uid://ccd4sw84h1qbc" path="res://core/systems/input/back_input_handler.tscn" id="5_ro2hl"] [ext_resource type="PackedScene" uid="uid://4t4jt26o2fbr" path="res://core/ui/card_ui/navigation/system_container.tscn" id="7_xtcf0"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="8_5082k"] [ext_resource type="PackedScene" uid="uid://cr83fmlociwko" path="res://core/ui/components/card_icon_button.tscn" id="9_6qs1m"] [ext_resource type="Texture2D" uid="uid://bjscvn2us6tal" path="res://assets/ui/icons/bell.svg" id="10_4yppf"] [ext_resource type="Texture2D" uid="uid://dq32os2qn6atc" path="res://assets/ui/icons/help.svg" id="11_a0ma3"] [ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="12_ldp5y"] -[ext_resource type="Resource" uid="uid://cr544el0cqjlm" path="res://assets/state/state_machines/global_state_machine.tres" id="13_u3r8o"] [ext_resource type="Resource" uid="uid://d3gp85f35oiw6" path="res://assets/state/states/settings.tres" id="14_didkb"] [ext_resource type="Resource" uid="uid://db5gbdl3xgwlq" path="res://assets/state/states/help_menu.tres" id="14_gr3i0"] [ext_resource type="Texture2D" uid="uid://c8pq5h4uim4pj" path="res://assets/ui/icons/game-controller.svg" id="15_0l0p5"] @@ -21,6 +21,7 @@ [ext_resource type="Resource" uid="uid://cx8u1y5j7vyss" path="res://assets/state/states/gamepad_settings.tres" id="16_74m7a"] [ext_resource type="PackedScene" uid="uid://b0cyl6fdqxevn" path="res://core/systems/input/scroller_joystick.tscn" id="17_qgen2"] [ext_resource type="Resource" uid="uid://dpc1o781f43ef" path="res://core/ui/card_ui/quick_bar/quick_bar_menu_focus.tres" id="18_4nxly"] +[ext_resource type="Resource" uid="uid://bcr6c0281lb5b" path="res://assets/state/state_machines/menu_state_machine.tres" id="18_lj3fv"] [ext_resource type="PackedScene" uid="uid://bjy50kdrebgre" path="res://core/ui/card_ui/quick_bar/notifications_card.tscn" id="19_pppbi"] [ext_resource type="PackedScene" uid="uid://dxaeufuk7ump2" path="res://core/ui/card_ui/quick_bar/quick_settings_card.tscn" id="20_17ks0"] [ext_resource type="PackedScene" uid="uid://dycb7m0oj13ly" path="res://core/ui/card_ui/quick_bar/performance_card.tscn" id="21_uw510"] @@ -37,6 +38,15 @@ grow_horizontal = 0 grow_vertical = 2 script = ExtResource("1_56jo7") +[node name="InputWatcher" parent="." instance=ExtResource("2_kmwe3")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("12_ldp5y")] +state_machine = ExtResource("4_n117t") +action = 2 +on_signal = "input_released" + [node name="StateWatcher" parent="." instance=ExtResource("2_6rvrx")] state = ExtResource("3_cxjne") @@ -54,9 +64,6 @@ on_signal = "state_entered" slide_out_signal = "state_exited" on_signal = "state_entered" -[node name="BackInputHandler" parent="." instance=ExtResource("5_ro2hl")] -process_input_during = Array[Resource("res://core/systems/state/state.gd")]([ExtResource("3_cxjne")]) - [node name="MarginContainer" type="MarginContainer" parent="."] layout_mode = 1 anchors_preset = 11 @@ -95,6 +102,7 @@ focus_neighbor_bottom = NodePath("../../ScrollContainer/Viewport/FocusGroup") [node name="NotifyButton" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer/ButtonContainer" instance=ExtResource("9_6qs1m")] unique_name_in_owner = true +visible = false custom_minimum_size = Vector2(26, 26) layout_mode = 2 texture = ExtResource("10_4yppf") @@ -105,7 +113,7 @@ layout_mode = 2 texture = ExtResource("11_a0ma3") [node name="StateUpdater" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer/ButtonContainer/HelpButton" instance=ExtResource("12_ldp5y")] -state_machine = ExtResource("13_u3r8o") +state_machine = ExtResource("4_n117t") state = ExtResource("14_gr3i0") on_signal = "button_up" @@ -115,10 +123,15 @@ layout_mode = 2 texture = ExtResource("15_0l0p5") [node name="StateUpdater" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer/ButtonContainer/GamepadButton" instance=ExtResource("12_ldp5y")] -state_machine = ExtResource("13_u3r8o") +state_machine = ExtResource("18_lj3fv") state = ExtResource("16_74m7a") on_signal = "player_button_up" +[node name="ClearOverlay" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer/ButtonContainer/GamepadButton" instance=ExtResource("12_ldp5y")] +state_machine = ExtResource("4_n117t") +action = 6 +on_signal = "button_up" + [node name="Spacer" type="Control" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer/ButtonContainer"] layout_mode = 2 size_flags_horizontal = 3 @@ -128,10 +141,15 @@ custom_minimum_size = Vector2(26, 26) layout_mode = 2 [node name="StateUpdater" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer/ButtonContainer/SettingsButton" instance=ExtResource("12_ldp5y")] -state_machine = ExtResource("13_u3r8o") +state_machine = ExtResource("18_lj3fv") state = ExtResource("14_didkb") on_signal = "button_up" +[node name="ClearOverlay" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer/ButtonContainer/SettingsButton" instance=ExtResource("12_ldp5y")] +state_machine = ExtResource("4_n117t") +action = 6 +on_signal = "button_up" + [node name="PlayingNowContainer" type="HBoxContainer" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer"] unique_name_in_owner = true visible = false diff --git a/core/ui/card_ui/quick_bar/quick_settings_card.tscn b/core/ui/card_ui/quick_bar/quick_settings_card.tscn index 68481fda..a6360fe3 100644 --- a/core/ui/card_ui/quick_bar/quick_settings_card.tscn +++ b/core/ui/card_ui/quick_bar/quick_settings_card.tscn @@ -1,26 +1,11 @@ -[gd_scene load_steps=5 format=3 uid="uid://dxaeufuk7ump2"] +[gd_scene load_steps=3 format=3 uid="uid://dxaeufuk7ump2"] [ext_resource type="PackedScene" uid="uid://b5xnora73yd8x" path="res://core/ui/card_ui/quick_bar/qb_card.tscn" id="1_xq1be"] [ext_resource type="PackedScene" uid="uid://gjrgimao0edi" path="res://core/ui/common/quick_bar/quick_settings_menu.tscn" id="2_gwynk"] -[sub_resource type="Image" id="Image_n6cge"] -data = { -"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), -"format": "RGBA8", -"height": 16, -"mipmaps": false, -"width": 16 -} - -[sub_resource type="ImageTexture" id="ImageTexture_ca0vc"] -image = SubResource("Image_n6cge") - [node name="QuickSettingsCard" instance=ExtResource("1_xq1be")] title = "Quick Settings" -[node name="HighlightTexture" parent="PanelContainer" index="0"] -texture = SubResource("ImageTexture_ca0vc") - [node name="SectionLabel" parent="MarginContainer/CardVBoxContainer" index="0"] text = "Quick Settings" diff --git a/core/ui/card_ui/settings/bluetooth_settings_menu.tscn b/core/ui/card_ui/settings/bluetooth_settings_menu.tscn index a26e3046..92d5e7c4 100644 --- a/core/ui/card_ui/settings/bluetooth_settings_menu.tscn +++ b/core/ui/card_ui/settings/bluetooth_settings_menu.tscn @@ -1,9 +1,14 @@ -[gd_scene load_steps=5 format=3 uid="uid://6ygxdkvh1hib"] +[gd_scene load_steps=10 format=3 uid="uid://6ygxdkvh1hib"] [ext_resource type="Script" path="res://core/ui/card_ui/settings/bluetooth_settings_menu.gd" id="1_7sjpd"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="2_36ef6"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="3_rx42r"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_p7et2"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_2trn0"] [ext_resource type="PackedScene" uid="uid://d1qb7euwlu7bh" path="res://core/ui/components/toggle.tscn" id="4_isnhb"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_l428g"] +[ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_ivwga"] +[ext_resource type="Resource" uid="uid://5r7ehi4t5mri" path="res://assets/state/states/settings_bluetooth.tres" id="6_2ogat"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_klxjh"] [node name="BluetoothSettingsMenu" type="Control"] layout_mode = 3 @@ -14,6 +19,23 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_7sjpd") +[node name="InputWatcher" parent="." instance=ExtResource("2_p7et2")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_2trn0")] +state_machine = ExtResource("4_l428g") +action = 2 +on_signal = "input_released" + +[node name="StateWatcher" parent="." instance=ExtResource("5_ivwga")] +state = ExtResource("6_2ogat") + +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_klxjh") +target = NodePath("../../MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer/FocusGroup") +on_signal = "state_entered" + [node name="DiscoverTimer" type="Timer" parent="."] unique_name_in_owner = true @@ -65,21 +87,18 @@ layout_mode = 2 [node name="FocusGroup" parent="MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer" node_paths=PackedStringArray("current_focus") instance=ExtResource("2_36ef6")] current_focus = NodePath("../EnableToggle") -focus_stack = ExtResource("3_rx42r") [node name="EnableToggle" parent="MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer" instance=ExtResource("4_isnhb")] unique_name_in_owner = true layout_mode = 2 text = "Enabled" separator_visible = false -button_pressed = false [node name="DiscoverToggle" parent="MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer" instance=ExtResource("4_isnhb")] unique_name_in_owner = true layout_mode = 2 text = "Enable Discovery" separator_visible = false -button_pressed = false [node name="Tree" type="Tree" parent="MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer"] unique_name_in_owner = true diff --git a/core/ui/card_ui/settings/disks_settings_menu.tscn b/core/ui/card_ui/settings/disks_settings_menu.tscn index 9cb27349..9ade4024 100644 --- a/core/ui/card_ui/settings/disks_settings_menu.tscn +++ b/core/ui/card_ui/settings/disks_settings_menu.tscn @@ -1,12 +1,14 @@ -[gd_scene load_steps=9 format=3 uid="uid://clbapexwfoqtu"] +[gd_scene load_steps=11 format=3 uid="uid://clbapexwfoqtu"] [ext_resource type="Script" path="res://core/ui/card_ui/settings/disks_settings_menu.gd" id="1_ct0k3"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_6shyw"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="2_8gros"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="3_8w0tf"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_lwwgd"] [ext_resource type="PackedScene" uid="uid://caeaxm6st4a4u" path="res://core/ui/components/drive_card.tscn" id="4_brwek"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_vkilo"] [ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_hkv7e"] [ext_resource type="Resource" uid="uid://cn236k0ajm0uw" path="res://assets/state/states/settings_disks.tres" id="6_txokm"] -[ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="7_kihn7"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_lonxh"] [ext_resource type="Script" path="res://core/systems/input/scroller_joystick.gd" id="8_x4sfx"] [node name="DisksMenu" type="ScrollContainer"] @@ -17,6 +19,23 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_ct0k3") +[node name="InputWatcher" parent="." instance=ExtResource("2_6shyw")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_lwwgd")] +state_machine = ExtResource("4_vkilo") +action = 2 +on_signal = "input_released" + +[node name="StateWatcher" parent="." instance=ExtResource("5_hkv7e")] +state = ExtResource("6_txokm") + +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_lonxh") +target = NodePath("../../MarginContainer/DriveCardContainer/FocusGroup") +on_signal = "state_entered" + [node name="MarginContainer" type="MarginContainer" parent="."] layout_mode = 2 size_flags_horizontal = 3 @@ -36,7 +55,6 @@ layout_mode = 2 [node name="FocusGroup" parent="MarginContainer/DriveCardContainer" instance=ExtResource("2_8gros")] unique_name_in_owner = true -focus_stack = ExtResource("3_8w0tf") [node name="DriveCard" parent="MarginContainer/DriveCardContainer" instance=ExtResource("4_brwek")] layout_mode = 2 @@ -47,14 +65,5 @@ layout_mode = 2 [node name="DriveCard3" parent="MarginContainer/DriveCardContainer" instance=ExtResource("4_brwek")] layout_mode = 2 -[node name="StateWatcher" parent="." instance=ExtResource("5_hkv7e")] -state = ExtResource("6_txokm") - -[node name="FadeEffect" parent="StateWatcher" node_paths=PackedStringArray("target") instance=ExtResource("7_kihn7")] -target = NodePath("../..") -on_signal = "state_entered" -fade_out_signal = "state_exited" -on_signal = "state_entered" - [node name="ScrollerJoystick" type="Node" parent="."] script = ExtResource("8_x4sfx") diff --git a/core/ui/card_ui/settings/general_controller_settings_menu.tscn b/core/ui/card_ui/settings/general_controller_settings_menu.tscn index 8ff4d89f..8530ea27 100644 --- a/core/ui/card_ui/settings/general_controller_settings_menu.tscn +++ b/core/ui/card_ui/settings/general_controller_settings_menu.tscn @@ -1,14 +1,15 @@ -[gd_scene load_steps=11 format=3 uid="uid://cgxl1qiu50h15"] +[gd_scene load_steps=12 format=3 uid="uid://cgxl1qiu50h15"] [ext_resource type="Script" path="res://core/ui/card_ui/settings/general_controller_settings_menu.gd" id="1_r712q"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="2_fdccl"] [ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="2_siloa"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="3_6p4qa"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_w65oc"] [ext_resource type="Resource" uid="uid://bcekyu20uvkxv" path="res://assets/state/states/settings_general_controller.tres" id="3_yy4fy"] -[ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="4_g1xc4"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_s8rkr"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_28fjg"] [ext_resource type="PackedScene" uid="uid://c71ayw7pcw6u6" path="res://core/ui/components/card_button.tscn" id="7_ynn8u"] [ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="8_1egj0"] -[ext_resource type="Resource" uid="uid://cr544el0cqjlm" path="res://assets/state/state_machines/global_state_machine.tres" id="9_3kuiy"] +[ext_resource type="Resource" uid="uid://bcr6c0281lb5b" path="res://assets/state/state_machines/menu_state_machine.tres" id="10_ij44t"] [ext_resource type="Resource" uid="uid://cx8u1y5j7vyss" path="res://assets/state/states/gamepad_settings.tres" id="10_uoc6p"] [node name="GeneralControllerSettings" type="Control"] @@ -20,13 +21,21 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_r712q") +[node name="InputWatcher" parent="." instance=ExtResource("2_w65oc")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("8_1egj0")] +state_machine = ExtResource("4_s8rkr") +action = 2 +on_signal = "input_released" + [node name="StateWatcher" parent="." instance=ExtResource("2_siloa")] state = ExtResource("3_yy4fy") -[node name="FadeEffect" parent="StateWatcher" node_paths=PackedStringArray("target") instance=ExtResource("4_g1xc4")] -target = NodePath("../..") -on_signal = "state_entered" -fade_out_signal = "state_exited" +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_28fjg") +target = NodePath("../../MarginContainer/VBoxContainer/FocusGroup") on_signal = "state_entered" [node name="MarginContainer" type="MarginContainer" parent="."] @@ -45,13 +54,12 @@ theme_override_constants/margin_bottom = 5 layout_mode = 2 [node name="FocusGroup" parent="MarginContainer/VBoxContainer" instance=ExtResource("2_fdccl")] -focus_stack = ExtResource("3_6p4qa") [node name="CardButton" parent="MarginContainer/VBoxContainer" instance=ExtResource("7_ynn8u")] layout_mode = 2 text = "Gamepad Settings" [node name="StateUpdater" parent="MarginContainer/VBoxContainer/CardButton" instance=ExtResource("8_1egj0")] -state_machine = ExtResource("9_3kuiy") +state_machine = ExtResource("10_ij44t") state = ExtResource("10_uoc6p") -on_signal = "player_button_down" +on_signal = "player_button_up" diff --git a/core/ui/card_ui/settings/general_settings_menu.tscn b/core/ui/card_ui/settings/general_settings_menu.tscn index b61e211c..83869bf0 100644 --- a/core/ui/card_ui/settings/general_settings_menu.tscn +++ b/core/ui/card_ui/settings/general_settings_menu.tscn @@ -1,15 +1,17 @@ -[gd_scene load_steps=21 format=3 uid="uid://dsgrw1grwef4m"] +[gd_scene load_steps=23 format=3 uid="uid://dsgrw1grwef4m"] [ext_resource type="Script" path="res://core/ui/card_ui/settings/general_settings_menu.gd" id="1_if7xt"] [ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_b5gbi"] [ext_resource type="PackedScene" uid="uid://bnhxravpuheh2" path="res://core/systems/updater/software_updater.tscn" id="2_ogwq4"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="3_36sdt"] [ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_bxo72"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="4_fyrmg"] -[ext_resource type="Resource" uid="uid://bcr6c0281lb5b" path="res://assets/state/state_machines/menu_state_machine.tres" id="4_td88v"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_31ujl"] +[ext_resource type="Script" path="res://core/systems/state/state_watcher.gd" id="5_7jxnc"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="5_caxj0"] [ext_resource type="PackedScene" uid="uid://d1qb7euwlu7bh" path="res://core/ui/components/toggle.tscn" id="6_ghdw1"] +[ext_resource type="Resource" uid="uid://4n3376qdy3y3" path="res://assets/state/states/settings_general.tres" id="6_vwiy7"] [ext_resource type="PackedScene" uid="uid://c71ayw7pcw6u6" path="res://core/ui/components/card_button.tscn" id="7_qenel"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_sb10a"] [ext_resource type="PackedScene" uid="uid://d0u3rsa5qpj57" path="res://core/ui/components/subsection_label.tscn" id="8_2m3jw"] [ext_resource type="PackedScene" uid="uid://xei5afwefxud" path="res://core/ui/components/dropdown.tscn" id="8_r15pa"] [ext_resource type="Texture2D" uid="uid://ckbrrln8fngno" path="res://assets/images/platform/ayaneoair-ctr_v1a_1172023.png" id="9_00g0t"] @@ -35,13 +37,22 @@ script = ExtResource("1_if7xt") [node name="InputWatcher" parent="." instance=ExtResource("2_b5gbi")] stop_propagation = true -action = "ogui_back" +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_bxo72")] -state_machine = ExtResource("4_td88v") -action = 5 +state_machine = ExtResource("4_31ujl") +action = 2 on_signal = "input_released" +[node name="StateWatcher" type="Node" parent="."] +script = ExtResource("5_7jxnc") +state = ExtResource("6_vwiy7") + +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_sb10a") +target = NodePath("../../MarginContainer/VBoxContainer/VBoxContainer/FocusGroup") +on_signal = "state_entered" + [node name="SoftwareUpdater" parent="." instance=ExtResource("2_ogwq4")] [node name="UpdateTimer" type="Timer" parent="."] @@ -68,7 +79,7 @@ theme_override_constants/separation = 10 [node name="FocusGroup" parent="MarginContainer/VBoxContainer/VBoxContainer" node_paths=PackedStringArray("current_focus", "focus_neighbor_bottom") instance=ExtResource("3_36sdt")] current_focus = NodePath("../AutoUpdateToggle") -focus_stack = ExtResource("4_fyrmg") +wrap_focus = false focus_neighbor_bottom = NodePath("../../ThemeButtonContainer/FocusGroup") [node name="UpdatesLabel" parent="MarginContainer/VBoxContainer/VBoxContainer" instance=ExtResource("5_caxj0")] @@ -122,7 +133,7 @@ theme_override_constants/v_separation = 10 [node name="FocusGroup" parent="MarginContainer/VBoxContainer/ThemeButtonContainer" node_paths=PackedStringArray("current_focus", "focus_neighbor_bottom", "focus_neighbor_top") instance=ExtResource("3_36sdt")] current_focus = NodePath("../ThemeDraculaButton") -focus_stack = ExtResource("4_fyrmg") +wrap_focus = false focus_neighbor_bottom = NodePath("../../VBoxContainer3/FocusGroup") focus_neighbor_top = NodePath("../../VBoxContainer/FocusGroup") @@ -172,7 +183,7 @@ theme_override_constants/separation = 10 [node name="FocusGroup" parent="MarginContainer/VBoxContainer/VBoxContainer3" node_paths=PackedStringArray("current_focus", "focus_neighbor_top") instance=ExtResource("3_36sdt")] current_focus = NodePath("../ClientVersionText") -focus_stack = ExtResource("4_fyrmg") +wrap_focus = false focus_neighbor_top = NodePath("../../ThemeButtonContainer/FocusGroup") [node name="HSeparator3" type="HSeparator" parent="MarginContainer/VBoxContainer/VBoxContainer3"] diff --git a/core/ui/card_ui/settings/library_settings_menu.tscn b/core/ui/card_ui/settings/library_settings_menu.tscn index 8e703fcb..39d3547d 100644 --- a/core/ui/card_ui/settings/library_settings_menu.tscn +++ b/core/ui/card_ui/settings/library_settings_menu.tscn @@ -1,13 +1,15 @@ -[gd_scene load_steps=9 format=3 uid="uid://drbp6ec8646v3"] +[gd_scene load_steps=11 format=3 uid="uid://drbp6ec8646v3"] [ext_resource type="Script" path="res://core/ui/card_ui/settings/library_settings_menu.gd" id="1_0w1vu"] [ext_resource type="PackedScene" uid="uid://cemxrvvjgm4g" path="res://core/ui/components/slider.tscn" id="1_obgkx"] [ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="2_guba0"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_oc808"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_k7tqg"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="3_x5lfl"] [ext_resource type="Resource" uid="uid://blcfrofi5oawd" path="res://assets/state/states/settings_library.tres" id="3_ykj28"] -[ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="4_148sd"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_cd7pj"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="5_sh522"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="6_ou60g"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_5nxbl"] [node name="LibrarySettingsMenu" type="ScrollContainer"] anchors_preset = 15 @@ -18,13 +20,21 @@ grow_vertical = 2 follow_focus = true script = ExtResource("1_0w1vu") +[node name="InputWatcher" parent="." instance=ExtResource("2_oc808")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_k7tqg")] +state_machine = ExtResource("4_cd7pj") +action = 2 +on_signal = "input_released" + [node name="StateWatcher" parent="." instance=ExtResource("2_guba0")] state = ExtResource("3_ykj28") -[node name="FadeEffect" parent="StateWatcher" node_paths=PackedStringArray("target") instance=ExtResource("4_148sd")] -target = NodePath("../..") -on_signal = "state_entered" -fade_out_signal = "state_exited" +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_5nxbl") +target = NodePath("../../MarginContainer/VBoxContainer/FocusGroup") on_signal = "state_entered" [node name="MarginContainer" type="MarginContainer" parent="."] @@ -42,7 +52,6 @@ layout_mode = 2 [node name="FocusGroup" parent="MarginContainer/VBoxContainer" node_paths=PackedStringArray("current_focus") instance=ExtResource("5_sh522")] current_focus = NodePath("../MaxRecentAppsSlider") -focus_stack = ExtResource("6_ou60g") [node name="HomeLabel" parent="MarginContainer/VBoxContainer" instance=ExtResource("3_x5lfl")] layout_mode = 2 diff --git a/core/ui/card_ui/settings/plugin_settings_menu.tscn b/core/ui/card_ui/settings/plugin_settings_menu.tscn index b821e324..64b068b0 100644 --- a/core/ui/card_ui/settings/plugin_settings_menu.tscn +++ b/core/ui/card_ui/settings/plugin_settings_menu.tscn @@ -1,17 +1,18 @@ -[gd_scene load_steps=12 format=3 uid="uid://cliqk7lo4t8ao"] +[gd_scene load_steps=13 format=3 uid="uid://cliqk7lo4t8ao"] [ext_resource type="Script" path="res://core/ui/card_ui/settings/plugin_settings_menu.gd" id="1_1p4dc"] -[ext_resource type="PackedScene" uid="uid://orey8uxm7v6v" path="res://core/systems/state/visibility_manager.tscn" id="2_d8jy7"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_700w4"] [ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="3_a1fhd"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_q7mwh"] [ext_resource type="Resource" uid="uid://doxatxmp2mlty" path="res://assets/state/states/settings_plugins.tres" id="4_m0d4b"] -[ext_resource type="PackedScene" uid="uid://bo077a5mwi7xl" path="res://core/ui/components/transition_fade_in.tscn" id="5_0c8si"] +[ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_ipise"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="6_fo0yk"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="7_8k476"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_wmvad"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="8_rs83g"] [ext_resource type="PackedScene" uid="uid://o0equu1tyr4s" path="res://core/ui/components/expandable_card.tscn" id="8_veuxu"] [ext_resource type="PackedScene" uid="uid://b0cyl6fdqxevn" path="res://core/systems/input/scroller_joystick.tscn" id="10_nbqrj"] -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_oda2h"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_i5hfw"] resource_local_to_scene = true bg_color = Color(0.105882, 0.109804, 0.141176, 1) border_blend = true @@ -30,11 +31,22 @@ follow_focus = true horizontal_scroll_mode = 0 script = ExtResource("1_1p4dc") -[node name="VisibilityManager" parent="." instance=ExtResource("2_d8jy7")] +[node name="InputWatcher" parent="." instance=ExtResource("2_700w4")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_q7mwh")] state_machine = ExtResource("3_a1fhd") +action = 2 +on_signal = "input_released" + +[node name="StateWatcher" parent="." instance=ExtResource("5_ipise")] state = ExtResource("4_m0d4b") -[node name="TransitionFadeIn" parent="VisibilityManager" instance=ExtResource("5_0c8si")] +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_wmvad") +target = NodePath("../../MarginContainer/ContentContainer/FocusGroup") +on_signal = "state_entered" [node name="MarginContainer" type="MarginContainer" parent="."] layout_mode = 2 @@ -50,7 +62,6 @@ layout_mode = 2 [node name="FocusGroup" parent="MarginContainer/ContentContainer" instance=ExtResource("6_fo0yk")] unique_name_in_owner = true -focus_stack = ExtResource("7_8k476") [node name="NoPluginsLabel" parent="MarginContainer/ContentContainer" instance=ExtResource("8_rs83g")] unique_name_in_owner = true @@ -60,6 +71,6 @@ horizontal_alignment = 1 [node name="ExpandableCard" parent="MarginContainer/ContentContainer" instance=ExtResource("8_veuxu")] layout_mode = 2 -theme_override_styles/panel = SubResource("StyleBoxFlat_oda2h") +theme_override_styles/panel = SubResource("StyleBoxFlat_i5hfw") [node name="ScrollerJoystick" parent="." instance=ExtResource("10_nbqrj")] diff --git a/core/ui/card_ui/settings/plugin_store_menu.gd b/core/ui/card_ui/settings/plugin_store_menu.gd index 44626e11..0d1bfea7 100644 --- a/core/ui/card_ui/settings/plugin_store_menu.gd +++ b/core/ui/card_ui/settings/plugin_store_menu.gd @@ -3,26 +3,20 @@ extends ScrollContainer signal plugin_store_loaded(plugin_items: Dictionary) const plugin_store_card_scene: PackedScene = preload("res://core/ui/components/plugin_store_card.tscn") -var PluginLoader := load("res://core/global/plugin_loader.tres") as PluginLoader -var plugin_store_state := preload("res://assets/state/states/settings_plugin_store.tres") as State -var NotificationManager := load("res://core/global/notification_manager.tres") as NotificationManager +var plugin_loader := load("res://core/global/plugin_loader.tres") as PluginLoader +var notification_manager := load("res://core/global/notification_manager.tres") as NotificationManager var plugin_nodes := {} -@onready var container := $%HFlowContainer -@onready var focus_group := $%FocusGroup -@onready var http_image := $HTTPImageFetcher -@onready var settings_menu := $"../../../.." #verbose? +@onready var container := $%HFlowContainer as HFlowContainer +@onready var focus_group := $%FocusGroup as FocusGroup +@onready var http_image := $HTTPImageFetcher as HTTPImageFetcher # Called when the node enters the scene tree for the first time. func _ready() -> void: plugin_store_loaded.connect(_on_plugin_store_loaded) - plugin_store_state.state_entered.connect(_on_state_entered) - PluginLoader.plugin_upgradable.connect(_on_plugin_upgradable) - load_plugin_store_items() - - -func _on_state_entered(_from: State) -> void: + plugin_loader.plugin_upgradable.connect(_on_plugin_upgradable) + visibility_changed.connect(load_plugin_store_items) load_plugin_store_items() @@ -30,7 +24,7 @@ func _on_state_entered(_from: State) -> void: # signal with the loaded items func load_plugin_store_items(): # Fetch available plugins from the plugin store - var plugin_items = await PluginLoader.get_plugin_store_items() + var plugin_items = await plugin_loader.get_plugin_store_items() plugin_store_loaded.emit(plugin_items) @@ -89,4 +83,4 @@ func _on_plugin_upgradable(plugin_id: String, update_type: int) -> void: if update_type == PluginLoader.update_type.UPDATE: notify.text=("Plugin upgrade available: {0}".format([plugin_id])) - NotificationManager.show(notify) + notification_manager.show(notify) diff --git a/core/ui/card_ui/settings/plugin_store_menu.tscn b/core/ui/card_ui/settings/plugin_store_menu.tscn index 48b4d32c..3d2ce7c8 100644 --- a/core/ui/card_ui/settings/plugin_store_menu.tscn +++ b/core/ui/card_ui/settings/plugin_store_menu.tscn @@ -1,14 +1,14 @@ [gd_scene load_steps=11 format=3 uid="uid://cf5bdr4sh2irb"] [ext_resource type="Script" path="res://core/ui/card_ui/settings/plugin_store_menu.gd" id="1_o3w0b"] -[ext_resource type="PackedScene" uid="uid://orey8uxm7v6v" path="res://core/systems/state/visibility_manager.tscn" id="2_vfjyq"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_stwp6"] [ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="3_7o5pg"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_o8kc3"] [ext_resource type="Resource" uid="uid://u6fyqt1ogrie" path="res://assets/state/states/settings_plugin_store.tres" id="4_moq21"] [ext_resource type="Script" path="res://core/systems/network/http_image_fetcher.gd" id="5_5l7jt"] -[ext_resource type="PackedScene" uid="uid://bo077a5mwi7xl" path="res://core/ui/components/transition_fade_in.tscn" id="5_ghad7"] +[ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_gh7kv"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="6_oyayo"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="7_qbq53"] -[ext_resource type="PackedScene" uid="uid://cc7a35n2pqmmf" path="res://core/ui/components/plugin_store_card.tscn" id="8_g4q4p"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_u7s1j"] [ext_resource type="PackedScene" uid="uid://b0cyl6fdqxevn" path="res://core/systems/input/scroller_joystick.tscn" id="10_c2505"] [node name="PluginStoreMenu" type="ScrollContainer"] @@ -22,11 +22,22 @@ horizontal_scroll_mode = 0 vertical_scroll_mode = 2 script = ExtResource("1_o3w0b") -[node name="VisibilityManager" parent="." instance=ExtResource("2_vfjyq")] +[node name="InputWatcher" parent="." instance=ExtResource("2_stwp6")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_o8kc3")] state_machine = ExtResource("3_7o5pg") +action = 2 +on_signal = "input_released" + +[node name="StateWatcher" parent="." instance=ExtResource("5_gh7kv")] state = ExtResource("4_moq21") -[node name="TransitionFadeIn" parent="VisibilityManager" instance=ExtResource("5_ghad7")] +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_u7s1j") +target = NodePath("../../MarginContainer/HFlowContainer/FocusGroup") +on_signal = "state_entered" [node name="HTTPImageFetcher" type="Node" parent="."] script = ExtResource("5_5l7jt") @@ -47,18 +58,5 @@ theme_override_constants/v_separation = 42 [node name="FocusGroup" parent="MarginContainer/HFlowContainer" instance=ExtResource("6_oyayo")] unique_name_in_owner = true -focus_stack = ExtResource("7_qbq53") - -[node name="PluginStoreCard" parent="MarginContainer/HFlowContainer" instance=ExtResource("8_g4q4p")] -layout_mode = 2 - -[node name="PluginStoreCard2" parent="MarginContainer/HFlowContainer" instance=ExtResource("8_g4q4p")] -layout_mode = 2 - -[node name="PluginStoreCard3" parent="MarginContainer/HFlowContainer" instance=ExtResource("8_g4q4p")] -layout_mode = 2 - -[node name="PluginStoreCard4" parent="MarginContainer/HFlowContainer" instance=ExtResource("8_g4q4p")] -layout_mode = 2 [node name="ScrollerJoystick" parent="." instance=ExtResource("10_c2505")] diff --git a/core/ui/card_ui/settings/settings_menu.gd b/core/ui/card_ui/settings/settings_menu.gd index 092575fa..96105346 100644 --- a/core/ui/card_ui/settings/settings_menu.gd +++ b/core/ui/card_ui/settings/settings_menu.gd @@ -1,22 +1,10 @@ extends Control -var settings_state_machine := preload("res://assets/state/state_machines/settings_state_machine.tres") as StateMachine var version := preload("res://core/global/version.tres") as Version -@onready var version_label := $%VersionLabel -@onready var setting_buttons_container: VBoxContainer = $%SettingButtonsContainer -@onready var focus_group := $%FocusGroup as FocusGroup -@onready var section_label := $%SectionLabel +@onready var version_label := $%VersionLabel as Label # Called when the node enters the scene tree for the first time. func _ready() -> void: version_label.text = "v" + str(version.core) - settings_state_machine.state_changed.connect(_on_settings_state_changed) - - -func _on_settings_state_changed(_from: State, to: State) -> void: - var text := to.name - text = text.capitalize() - text = text.replace("_", " ") - section_label.text = text diff --git a/core/ui/card_ui/settings/settings_menu.tscn b/core/ui/card_ui/settings/settings_menu.tscn index 373dc889..b6a2ff31 100644 --- a/core/ui/card_ui/settings/settings_menu.tscn +++ b/core/ui/card_ui/settings/settings_menu.tscn @@ -1,11 +1,12 @@ -[gd_scene load_steps=46 format=3 uid="uid://d2jiecrd5sw4s"] +[gd_scene load_steps=47 format=3 uid="uid://d2jiecrd5sw4s"] [ext_resource type="Script" path="res://core/ui/card_ui/settings/settings_menu.gd" id="1_x5bjx"] [ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="2_xfs0b"] -[ext_resource type="PackedScene" uid="uid://orey8uxm7v6v" path="res://core/systems/state/visibility_manager.tscn" id="2_xwevg"] [ext_resource type="Resource" uid="uid://d3gp85f35oiw6" path="res://assets/state/states/settings.tres" id="3_an6bd"] [ext_resource type="PackedScene" uid="uid://bw8113ocotx2r" path="res://core/systems/effects/fade_effect.tscn" id="4_0rio2"] +[ext_resource type="Script" path="res://core/systems/state/state_machine_watcher.gd" id="5_wwlng"] [ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="9_rn3rv"] +[ext_resource type="Script" path="res://core/systems/state/state_updater.gd" id="9_xkw8n"] [ext_resource type="Texture2D" uid="uid://djy4rejy21s6g" path="res://icon.svg" id="10_k4kqs"] [ext_resource type="Resource" uid="uid://bcr6c0281lb5b" path="res://assets/state/state_machines/menu_state_machine.tres" id="11_5dh5k"] [ext_resource type="PackedScene" uid="uid://d0u3rsa5qpj57" path="res://core/ui/components/subsection_label.tscn" id="11_s3f5p"] @@ -14,9 +15,11 @@ [ext_resource type="PackedScene" uid="uid://c71ayw7pcw6u6" path="res://core/ui/components/card_button.tscn" id="14_obber"] [ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="14_t8wf4"] [ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="15_cb33u"] +[ext_resource type="Script" path="res://core/systems/user_interface/tab_setter.gd" id="16_l8xyu"] [ext_resource type="Resource" uid="uid://4n3376qdy3y3" path="res://assets/state/states/settings_general.tres" id="16_sfk74"] [ext_resource type="PackedScene" uid="uid://uljtdvmuol3l" path="res://core/systems/input/focus_group_setter.tscn" id="18_axp35"] [ext_resource type="Resource" uid="uid://bfx7p4n4fhjwd" path="res://assets/state/states/settings_display.tres" id="18_ljeud"] +[ext_resource type="Script" path="res://core/systems/user_interface/text_setter.gd" id="18_wbniw"] [ext_resource type="Resource" uid="uid://2efht48q7i6v" path="res://assets/state/states/settings_network.tres" id="19_l8vuu"] [ext_resource type="Resource" uid="uid://blcfrofi5oawd" path="res://assets/state/states/settings_library.tres" id="19_wexln"] [ext_resource type="Resource" uid="uid://bdvbnao6j0o18" path="res://assets/state/states/settings_audio.tres" id="20_5v03o"] @@ -25,16 +28,14 @@ [ext_resource type="Resource" uid="uid://u6fyqt1ogrie" path="res://assets/state/states/settings_plugin_store.tres" id="22_ntyf3"] [ext_resource type="Resource" uid="uid://cffkiat2h10ms" path="res://assets/state/states/settings_processes.tres" id="23_ilbjf"] [ext_resource type="Resource" uid="uid://cn236k0ajm0uw" path="res://assets/state/states/settings_disks.tres" id="24_oep0o"] -[ext_resource type="Resource" uid="uid://0f3pirade1ok" path="res://assets/state/states/settings_windows.tres" id="24_oscnu"] [ext_resource type="Resource" uid="uid://cakuo0qwrrkk8" path="res://assets/state/states/settings_logging.tres" id="25_nijem"] [ext_resource type="PackedScene" uid="uid://b0cyl6fdqxevn" path="res://core/systems/input/scroller_joystick.tscn" id="27_krt45"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="27_x4tym"] [ext_resource type="Resource" uid="uid://bcekyu20uvkxv" path="res://assets/state/states/settings_general_controller.tres" id="28_nmfnj"] [ext_resource type="PackedScene" uid="uid://dsgrw1grwef4m" path="res://core/ui/card_ui/settings/general_settings_menu.tscn" id="29_8hwjo"] -[ext_resource type="PackedScene" uid="uid://bo077a5mwi7xl" path="res://core/ui/components/transition_fade_in.tscn" id="29_grs7x"] [ext_resource type="PackedScene" uid="uid://521da7e2cdxd" path="res://core/ui/common/settings/display_settings_menu.tscn" id="30_22tgj"] [ext_resource type="PackedScene" uid="uid://cpss2bhdwm8t7" path="res://core/ui/common/settings/network_settings_menu.tscn" id="31_35x2h"] -[ext_resource type="PackedScene" path="res://core/ui/common/settings/audio_settings_menu.tscn" id="32_dqi6v"] +[ext_resource type="PackedScene" uid="uid://b4uvvjgnbxj25" path="res://core/ui/common/settings/audio_settings_menu.tscn" id="32_dqi6v"] [ext_resource type="PackedScene" uid="uid://6ygxdkvh1hib" path="res://core/ui/card_ui/settings/bluetooth_settings_menu.tscn" id="33_a7xb2"] [ext_resource type="PackedScene" uid="uid://drbp6ec8646v3" path="res://core/ui/card_ui/settings/library_settings_menu.tscn" id="34_lrrl0"] [ext_resource type="PackedScene" uid="uid://cf5bdr4sh2irb" path="res://core/ui/card_ui/settings/plugin_store_menu.tscn" id="35_0u4bv"] @@ -52,14 +53,7 @@ grow_begin = -10.0 grow_end = -10.0 vertical = true -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2j6m7"] -resource_local_to_scene = true -bg_color = Color(0.105882, 0.109804, 0.141176, 1) -border_blend = true -corner_radius_top_left = 10 -corner_radius_top_right = 10 -corner_radius_bottom_right = 10 -corner_radius_bottom_left = 10 +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_a60ci"] [node name="SettingsMenu" type="Control"] layout_mode = 3 @@ -72,7 +66,7 @@ script = ExtResource("1_x5bjx") [node name="InputWatcher" parent="." instance=ExtResource("9_rn3rv")] stop_propagation = true -action = "ogui_back" +action = "ogui_east" [node name="StateUpdater" parent="InputWatcher" instance=ExtResource("14_cid64")] state_machine = ExtResource("11_5dh5k") @@ -92,10 +86,24 @@ on_signal = "state_entered" target = NodePath("../../MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/FocusGroup") on_signal = "state_entered" -[node name="FocusGroupSetterRefresh" parent="StateWatcher" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] +[node name="RefreshFocusGroupSetter" parent="StateWatcher" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] target = NodePath("../../MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/FocusGroup") on_signal = "state_refreshed" +[node name="StateUpdater" type="Node" parent="StateWatcher"] +script = ExtResource("9_xkw8n") +state_machine = ExtResource("15_cb33u") +action = 6 +on_signal = "state_removed" + +[node name="StateMachineWatcher" type="Node" parent="."] +script = ExtResource("5_wwlng") +state_machine = ExtResource("15_cb33u") + +[node name="FocusGroupSetter" parent="StateMachineWatcher" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] +target = NodePath("../../MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/FocusGroup") +on_signal = "emptied" + [node name="MarginContainer" type="MarginContainer" parent="."] layout_mode = 1 anchors_preset = 15 @@ -203,11 +211,18 @@ text = "General" state_machine = ExtResource("15_cb33u") state = ExtResource("16_sfk74") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/GeneralButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/GeneralButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralSettings/MarginContainer/VBoxContainer/VBoxContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/GeneralButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "General" +on_signal = "focus_entered" [node name="LibraryButton" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer" instance=ExtResource("14_obber")] layout_mode = 2 @@ -217,11 +232,19 @@ text = "Library" state_machine = ExtResource("15_cb33u") state = ExtResource("19_wexln") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/LibraryButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 1 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/LibraryButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/LibrarySettingsMenu/MarginContainer/VBoxContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/LibraryButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Library" +on_signal = "focus_entered" [node name="HSeparator3" type="HSeparator" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer"] layout_mode = 2 @@ -234,11 +257,19 @@ text = "Display" state_machine = ExtResource("15_cb33u") state = ExtResource("18_ljeud") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/DisplayButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 2 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/DisplayButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/DisplaySettings/VBoxContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/DisplayButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Display" +on_signal = "focus_entered" [node name="NetworkButton" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer" instance=ExtResource("14_obber")] layout_mode = 2 @@ -248,11 +279,19 @@ text = "Network" state_machine = ExtResource("15_cb33u") state = ExtResource("19_l8vuu") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/NetworkButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 3 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/NetworkButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/NetworkSettings/MarginContainer/VBoxContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/NetworkButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Network" +on_signal = "focus_entered" [node name="BluetoothButton" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer" instance=ExtResource("14_obber")] layout_mode = 2 @@ -262,11 +301,19 @@ text = "Bluetooth" state_machine = ExtResource("15_cb33u") state = ExtResource("21_cbayw") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/BluetoothButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 4 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/BluetoothButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/BluetoothSettingsMenu/MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/BluetoothButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Bluetooth" +on_signal = "focus_entered" [node name="AudioButton" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer" instance=ExtResource("14_obber")] layout_mode = 2 @@ -276,11 +323,19 @@ text = "Audio" state_machine = ExtResource("15_cb33u") state = ExtResource("20_5v03o") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/AudioButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 5 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/AudioButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/AudioSettingsMenu/VBoxContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/AudioButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Audio" +on_signal = "focus_entered" [node name="DisksButton" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer" instance=ExtResource("14_obber")] layout_mode = 2 @@ -290,11 +345,19 @@ text = "Disks" state_machine = ExtResource("15_cb33u") state = ExtResource("24_oep0o") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/DisksButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 6 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/DisksButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/DisksMenu/MarginContainer/DriveCardContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/DisksButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Disks" +on_signal = "focus_entered" [node name="HSeparator4" type="HSeparator" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer"] layout_mode = 2 @@ -307,11 +370,19 @@ text = "Plugins" state_machine = ExtResource("15_cb33u") state = ExtResource("21_6lg2v") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/PluginsButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 7 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/PluginsButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/PluginSettingsMenu/MarginContainer/ContentContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/PluginsButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Plugins" +on_signal = "focus_entered" [node name="PluginStoreButton" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer" instance=ExtResource("14_obber")] layout_mode = 2 @@ -321,11 +392,19 @@ text = "Plugin Store" state_machine = ExtResource("15_cb33u") state = ExtResource("22_ntyf3") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/PluginStoreButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 8 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/PluginStoreButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/PluginStoreMenu/MarginContainer/HFlowContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/PluginStoreButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Plugin Store" +on_signal = "focus_entered" [node name="HSeparator5" type="HSeparator" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer"] layout_mode = 2 @@ -338,24 +417,19 @@ text = "Processes" state_machine = ExtResource("15_cb33u") state = ExtResource("23_ilbjf") action = 3 -on_signal = "focus_entered" - -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/ProcessesButton" instance=ExtResource("18_axp35")] -on_signal = "pressed" - -[node name="WindowsButton" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer" instance=ExtResource("14_obber")] -visible = false -layout_mode = 2 -text = "Windows" +on_signal = "button_up" -[node name="StateUpdater" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/WindowsButton" instance=ExtResource("14_cid64")] -state_machine = ExtResource("15_cb33u") -state = ExtResource("24_oscnu") -action = 3 +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/ProcessesButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 9 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/WindowsButton" instance=ExtResource("18_axp35")] -on_signal = "pressed" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/ProcessesButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Processes" +on_signal = "focus_entered" [node name="LoggingButton" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer" instance=ExtResource("14_obber")] layout_mode = 2 @@ -365,11 +439,19 @@ text = "Logging" state_machine = ExtResource("15_cb33u") state = ExtResource("25_nijem") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/LoggingButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 10 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/LoggingButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/LoggingSettings/MarginContainer/VBoxContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/LoggingButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Logging" +on_signal = "focus_entered" [node name="ControllerButton" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer" instance=ExtResource("14_obber")] layout_mode = 2 @@ -379,11 +461,19 @@ text = "Controllers" state_machine = ExtResource("15_cb33u") state = ExtResource("28_nmfnj") action = 3 +on_signal = "button_up" + +[node name="TabSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/ControllerButton" node_paths=PackedStringArray("target")] +script = ExtResource("16_l8xyu") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer") +tab_number = 11 on_signal = "focus_entered" -[node name="FocusGroupSetter" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/ControllerButton" node_paths=PackedStringArray("target") instance=ExtResource("18_axp35")] -target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralControllerSettings/MarginContainer/VBoxContainer/FocusGroup") -on_signal = "button_up" +[node name="TextSetter" type="Node" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer/MarginContainer/SettingButtonsContainer/ControllerButton" node_paths=PackedStringArray("target")] +script = ExtResource("18_wbniw") +target = NodePath("../../../../../../../../../ContentContainer/VBoxContainer/TitleContainer/MarginContainer/HBoxContainer/SectionLabel") +text = "Controllers" +on_signal = "focus_entered" [node name="ScrollerJoystick" parent="MarginContainer/HBoxContainer/MenuContainer/VBoxContainer/ButtonContainer/MarginContainer/ScrollContainer" instance=ExtResource("27_krt45")] @@ -428,113 +518,55 @@ theme_override_constants/margin_top = 5 theme_override_constants/margin_right = 20 theme_override_constants/margin_bottom = 5 -[node name="GeneralSettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("29_8hwjo")] +[node name="TabContainer" type="TabContainer" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer"] layout_mode = 2 +size_flags_horizontal = 3 +theme_override_styles/panel = SubResource("StyleBoxEmpty_a60ci") +tabs_visible = false -[node name="VisibilityManager" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralSettings" instance=ExtResource("2_xwevg")] -state_machine = ExtResource("15_cb33u") -state = ExtResource("16_sfk74") - -[node name="TransitionFadeIn" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralSettings/VisibilityManager" instance=ExtResource("29_grs7x")] +[node name="GeneralSettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("29_8hwjo")] +layout_mode = 2 -[node name="LibrarySettingsMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("34_lrrl0")] +[node name="LibrarySettingsMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("34_lrrl0")] visible = false layout_mode = 2 -[node name="DisplaySettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("30_22tgj")] +[node name="DisplaySettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("30_22tgj")] visible = false layout_mode = 2 -[node name="VisibilityManager" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/DisplaySettings" instance=ExtResource("2_xwevg")] -state_machine = ExtResource("15_cb33u") -state = ExtResource("18_ljeud") - -[node name="TransitionFadeIn" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/DisplaySettings/VisibilityManager" instance=ExtResource("29_grs7x")] - -[node name="NetworkSettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("31_35x2h")] +[node name="NetworkSettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("31_35x2h")] visible = false layout_mode = 2 -[node name="VisibilityManager" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/NetworkSettings" instance=ExtResource("2_xwevg")] -state_machine = ExtResource("15_cb33u") -state = ExtResource("19_l8vuu") - -[node name="TransitionFadeIn" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/NetworkSettings/VisibilityManager" instance=ExtResource("29_grs7x")] - -[node name="BluetoothSettingsMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("33_a7xb2")] +[node name="BluetoothSettingsMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("33_a7xb2")] visible = false layout_mode = 2 -[node name="EnableToggle" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/BluetoothSettingsMenu/MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer" index="1"] -button_pressed = true - -[node name="DiscoverToggle" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/BluetoothSettingsMenu/MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer" index="2"] -button_pressed = true - -[node name="VisibilityManager" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/BluetoothSettingsMenu" instance=ExtResource("2_xwevg")] -state_machine = ExtResource("15_cb33u") -state = ExtResource("21_cbayw") - -[node name="TransitionFadeIn" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/BluetoothSettingsMenu/VisibilityManager" instance=ExtResource("29_grs7x")] - -[node name="AudioSettingsMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("32_dqi6v")] +[node name="AudioSettingsMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("32_dqi6v")] visible = false layout_mode = 2 -[node name="VisibilityManager" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/AudioSettingsMenu" instance=ExtResource("2_xwevg")] -state_machine = ExtResource("15_cb33u") -state = ExtResource("20_5v03o") - -[node name="TransitionFadeIn" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/AudioSettingsMenu/VisibilityManager" instance=ExtResource("29_grs7x")] - -[node name="DisksMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("40_lyyu6")] +[node name="DisksMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("40_lyyu6")] visible = false layout_mode = 2 -[node name="PluginSettingsMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("35_dooq8")] +[node name="PluginSettingsMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("35_dooq8")] visible = false layout_mode = 2 -[node name="ExpandableCard" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/PluginSettingsMenu/MarginContainer/ContentContainer" index="2"] -theme_override_styles/panel = SubResource("StyleBoxFlat_2j6m7") - -[node name="PluginStoreMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("35_0u4bv")] +[node name="PluginStoreMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("35_0u4bv")] visible = false layout_mode = 2 -[node name="ProcessesMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("36_hnokx")] +[node name="ProcessesMenu" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("36_hnokx")] visible = false layout_mode = 2 -[node name="VisibilityManager" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/ProcessesMenu" instance=ExtResource("2_xwevg")] -state_machine = ExtResource("15_cb33u") -state = ExtResource("23_ilbjf") - -[node name="TransitionFadeIn" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/ProcessesMenu/VisibilityManager" instance=ExtResource("29_grs7x")] - -[node name="LoggingSettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("37_iwtxk")] +[node name="LoggingSettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("37_iwtxk")] visible = false layout_mode = 2 -[node name="VisibilityManager" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/LoggingSettings" instance=ExtResource("2_xwevg")] -state_machine = ExtResource("15_cb33u") -state = ExtResource("25_nijem") - -[node name="TransitionFadeIn" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/LoggingSettings/VisibilityManager" instance=ExtResource("29_grs7x")] - -[node name="GeneralControllerSettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("40_uqw2r")] +[node name="GeneralControllerSettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/TabContainer" instance=ExtResource("40_uqw2r")] visible = false layout_mode = 2 - -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralSettings"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/LibrarySettingsMenu"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/DisplaySettings"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/NetworkSettings"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/BluetoothSettingsMenu"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/AudioSettingsMenu"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/DisksMenu"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/PluginSettingsMenu"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/PluginStoreMenu"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/ProcessesMenu"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/LoggingSettings"] -[editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralControllerSettings"] diff --git a/core/ui/common/debug/processes_menu.tscn b/core/ui/common/debug/processes_menu.tscn index 5821b3ce..363393f6 100644 --- a/core/ui/common/debug/processes_menu.tscn +++ b/core/ui/common/debug/processes_menu.tscn @@ -1,10 +1,15 @@ -[gd_scene load_steps=6 format=3 uid="uid://bfu4edkk5dqt2"] +[gd_scene load_steps=11 format=3 uid="uid://bfu4edkk5dqt2"] [ext_resource type="Script" path="res://core/ui/common/debug/processes_menu.gd" id="1_i5gve"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="2_t6r8e"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_tbk5a"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="3_2ttlw"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="4_1h6bm"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_10x0l"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_dva4v"] +[ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_cqojd"] [ext_resource type="Script" path="res://core/systems/input/focus_group.gd" id="5_nqvca"] +[ext_resource type="Resource" uid="uid://cffkiat2h10ms" path="res://assets/state/states/settings_processes.tres" id="6_kfvag"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_use1k"] [node name="ProcessesMenu" type="Control"] layout_mode = 3 @@ -15,6 +20,23 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_i5gve") +[node name="InputWatcher" parent="." instance=ExtResource("2_tbk5a")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_10x0l")] +state_machine = ExtResource("4_dva4v") +action = 2 +on_signal = "input_released" + +[node name="StateWatcher" parent="." instance=ExtResource("5_cqojd")] +state = ExtResource("6_kfvag") + +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_use1k") +target = NodePath("../../MarginContainer/VBoxContainer/HBoxContainer/FocusGroup") +on_signal = "state_entered" + [node name="RefreshTimer" type="Timer" parent="."] [node name="MarginContainer" type="MarginContainer" parent="."] @@ -38,7 +60,6 @@ size_flags_vertical = 3 [node name="FocusGroup" parent="MarginContainer/VBoxContainer/HBoxContainer" node_paths=PackedStringArray("current_focus", "focus_neighbor_right") instance=ExtResource("3_2ttlw")] current_focus = NodePath("../PIDInspector") -focus_stack = ExtResource("4_1h6bm") focus_neighbor_right = NodePath("../MarginContainer/VBoxContainer/FocusGroup") [node name="PIDInspector" type="Tree" parent="MarginContainer/VBoxContainer/HBoxContainer"] diff --git a/core/ui/common/osk/on_screen_keyboard.gd b/core/ui/common/osk/on_screen_keyboard.gd index b332bb36..90e4da04 100644 --- a/core/ui/common/osk/on_screen_keyboard.gd +++ b/core/ui/common/osk/on_screen_keyboard.gd @@ -28,6 +28,9 @@ var logger := Log.get_logger("OSK") # Called when the node enters the scene tree for the first time. func _ready() -> void: + # Don't run in the editor + if Engine.is_editor_hint(): + return if not layout: logger.warn("No keyboard layout was defined") return diff --git a/core/ui/common/settings/audio_settings_menu.tscn b/core/ui/common/settings/audio_settings_menu.tscn index 078e257a..5cf0ea86 100644 --- a/core/ui/common/settings/audio_settings_menu.tscn +++ b/core/ui/common/settings/audio_settings_menu.tscn @@ -1,11 +1,16 @@ -[gd_scene load_steps=7 format=3] +[gd_scene load_steps=12 format=3 uid="uid://b4uvvjgnbxj25"] [ext_resource type="Script" path="res://core/ui/common/settings/audio_settings_menu.gd" id="1_hjnkk"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="1_x5cm4"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="2_73ivm"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_n36nh"] [ext_resource type="PackedScene" uid="uid://cemxrvvjgm4g" path="res://core/ui/components/slider.tscn" id="2_qsi2y"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="3_pfahh"] [ext_resource type="PackedScene" uid="uid://xei5afwefxud" path="res://core/ui/components/dropdown.tscn" id="3_pixnq"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_r3dmc"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_sfspm"] +[ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_06jyg"] +[ext_resource type="Resource" uid="uid://bdvbnao6j0o18" path="res://assets/state/states/settings_audio.tres" id="6_v2pqc"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_l6bmd"] [node name="AudioSettingsMenu" type="MarginContainer"] anchors_preset = 15 @@ -19,13 +24,29 @@ theme_override_constants/margin_right = 5 theme_override_constants/margin_bottom = 5 script = ExtResource("1_hjnkk") +[node name="InputWatcher" parent="." instance=ExtResource("2_n36nh")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_r3dmc")] +state_machine = ExtResource("4_sfspm") +action = 2 +on_signal = "input_released" + +[node name="StateWatcher" parent="." instance=ExtResource("5_06jyg")] +state = ExtResource("6_v2pqc") + +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_l6bmd") +target = NodePath("../../VBoxContainer/FocusGroup") +on_signal = "state_entered" + [node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 2 size_flags_horizontal = 3 [node name="FocusGroup" parent="VBoxContainer" node_paths=PackedStringArray("current_focus") instance=ExtResource("2_73ivm")] current_focus = NodePath("../VolumeSlider") -focus_stack = ExtResource("3_pfahh") [node name="AudioLabel" parent="VBoxContainer" instance=ExtResource("1_x5cm4")] layout_mode = 2 diff --git a/core/ui/common/settings/display_settings_menu.tscn b/core/ui/common/settings/display_settings_menu.tscn index ad9ac155..d84671d4 100644 --- a/core/ui/common/settings/display_settings_menu.tscn +++ b/core/ui/common/settings/display_settings_menu.tscn @@ -1,11 +1,16 @@ -[gd_scene load_steps=7 format=3 uid="uid://521da7e2cdxd"] +[gd_scene load_steps=12 format=3 uid="uid://521da7e2cdxd"] [ext_resource type="Script" path="res://core/ui/common/settings/display_settings_menu.gd" id="1_w4xaq"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_jrm6t"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="2_oj3r7"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_aiw87"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="3_nmfgp"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="3_rrkak"] [ext_resource type="PackedScene" uid="uid://cemxrvvjgm4g" path="res://core/ui/components/slider.tscn" id="4_fpepf"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_m2akb"] +[ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_m7ryc"] +[ext_resource type="Resource" uid="uid://bfx7p4n4fhjwd" path="res://assets/state/states/settings_display.tres" id="6_5275c"] [ext_resource type="PackedScene" uid="uid://b0cyl6fdqxevn" path="res://core/systems/input/scroller_joystick.tscn" id="6_hgrqi"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_tlkhc"] [node name="DisplaySettings" type="ScrollContainer"] anchors_preset = 15 @@ -17,6 +22,23 @@ size_flags_horizontal = 3 size_flags_vertical = 3 script = ExtResource("1_w4xaq") +[node name="InputWatcher" parent="." instance=ExtResource("2_jrm6t")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_aiw87")] +state_machine = ExtResource("4_m2akb") +action = 2 +on_signal = "input_released" + +[node name="StateWatcher" parent="." instance=ExtResource("5_m7ryc")] +state = ExtResource("6_5275c") + +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_tlkhc") +target = NodePath("../../VBoxContainer/FocusGroup") +on_signal = "state_entered" + [node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 2 size_flags_horizontal = 3 @@ -24,7 +46,6 @@ size_flags_vertical = 3 [node name="FocusGroup" parent="VBoxContainer" node_paths=PackedStringArray("current_focus") instance=ExtResource("2_oj3r7")] current_focus = NodePath("../ScaleSlider") -focus_stack = ExtResource("3_rrkak") [node name="DisplayLabel" parent="VBoxContainer" instance=ExtResource("3_nmfgp")] layout_mode = 2 diff --git a/core/ui/common/settings/logging_settings_menu.tscn b/core/ui/common/settings/logging_settings_menu.tscn index 4dfabc1b..8093e0ea 100644 --- a/core/ui/common/settings/logging_settings_menu.tscn +++ b/core/ui/common/settings/logging_settings_menu.tscn @@ -1,11 +1,16 @@ -[gd_scene load_steps=8 format=3 uid="uid://csor0e54svgja"] +[gd_scene load_steps=13 format=3 uid="uid://csor0e54svgja"] [ext_resource type="Script" path="res://core/ui/common/settings/logging_settings_menu.gd" id="1_qleso"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="2_5va5m"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="3_qmfyc"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_w6ipu"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_86i0s"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="3_udmnv"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_hqn56"] [ext_resource type="PackedScene" uid="uid://d0u3rsa5qpj57" path="res://core/ui/components/subsection_label.tscn" id="5_6uj1s"] +[ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_ufggl"] +[ext_resource type="Resource" uid="uid://cakuo0qwrrkk8" path="res://assets/state/states/settings_logging.tres" id="6_3ewnc"] [ext_resource type="PackedScene" uid="uid://xei5afwefxud" path="res://core/ui/components/dropdown.tscn" id="6_ljvn8"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_2p4q3"] [ext_resource type="PackedScene" uid="uid://b0cyl6fdqxevn" path="res://core/systems/input/scroller_joystick.tscn" id="7_fbxhf"] [node name="LoggingSettings" type="ScrollContainer"] @@ -19,6 +24,23 @@ size_flags_vertical = 3 follow_focus = true script = ExtResource("1_qleso") +[node name="InputWatcher" parent="." instance=ExtResource("2_w6ipu")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_86i0s")] +state_machine = ExtResource("4_hqn56") +action = 2 +on_signal = "input_released" + +[node name="StateWatcher" parent="." instance=ExtResource("5_ufggl")] +state = ExtResource("6_3ewnc") + +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_2p4q3") +target = NodePath("../../MarginContainer/VBoxContainer/FocusGroup") +on_signal = "state_entered" + [node name="MarginContainer" type="MarginContainer" parent="."] layout_mode = 2 size_flags_horizontal = 3 @@ -37,7 +59,6 @@ size_flags_vertical = 3 [node name="FocusGroup" parent="MarginContainer/VBoxContainer" node_paths=PackedStringArray("current_focus") instance=ExtResource("2_5va5m")] unique_name_in_owner = true current_focus = NodePath("../GlobalDropdown") -focus_stack = ExtResource("3_qmfyc") [node name="LoggingLabel" parent="MarginContainer/VBoxContainer" instance=ExtResource("3_udmnv")] layout_mode = 2 diff --git a/core/ui/common/settings/network_settings_menu.tscn b/core/ui/common/settings/network_settings_menu.tscn index c6df6cd2..8ea0ed6d 100644 --- a/core/ui/common/settings/network_settings_menu.tscn +++ b/core/ui/common/settings/network_settings_menu.tscn @@ -1,12 +1,17 @@ -[gd_scene load_steps=10 format=3 uid="uid://cpss2bhdwm8t7"] +[gd_scene load_steps=15 format=3 uid="uid://cpss2bhdwm8t7"] [ext_resource type="Script" path="res://core/ui/common/settings/network_settings_menu.gd" id="1_2qdps"] [ext_resource type="PackedScene" uid="uid://8m20p2s0v5gb" path="res://core/systems/input/focus_group.tscn" id="2_8jmkq"] +[ext_resource type="PackedScene" uid="uid://c6fg6uvng0ovi" path="res://core/systems/input/input_watcher.tscn" id="2_yj01k"] [ext_resource type="PackedScene" uid="uid://dithv38oqgy58" path="res://core/ui/components/section_label.tscn" id="3_ddyy1"] -[ext_resource type="Resource" uid="uid://dgi16frh3mgj8" path="res://core/ui/card_ui/settings/settings_menu_focus.tres" id="3_emyir"] +[ext_resource type="PackedScene" uid="uid://b76dvfuouhlwd" path="res://core/systems/state/state_updater.tscn" id="3_hbsyi"] [ext_resource type="PackedScene" uid="uid://d0u3rsa5qpj57" path="res://core/ui/components/subsection_label.tscn" id="4_t7br0"] +[ext_resource type="Resource" uid="uid://iqrotrmq62i6" path="res://assets/state/state_machines/settings_state_machine.tres" id="4_tf04q"] +[ext_resource type="PackedScene" uid="uid://shvyhrv5sx3v" path="res://core/systems/state/state_watcher.tscn" id="5_jobhc"] [ext_resource type="PackedScene" uid="uid://df5o1o2dsik84" path="res://core/ui/components/button.tscn" id="5_round"] [ext_resource type="Theme" uid="uid://bko0q7gp1hwjp" path="res://assets/themes/dracula.tres" id="6_i7u1a"] +[ext_resource type="Resource" uid="uid://2efht48q7i6v" path="res://assets/state/states/settings_network.tres" id="6_ke40f"] +[ext_resource type="Script" path="res://core/systems/input/focus_group_setter.gd" id="7_gnxgo"] [ext_resource type="PackedScene" uid="uid://d1rjdfxxrdccf" path="res://core/ui/components/text_input.tscn" id="7_qx5i7"] [ext_resource type="PackedScene" uid="uid://b0cyl6fdqxevn" path="res://core/systems/input/scroller_joystick.tscn" id="9_v6vet"] @@ -20,6 +25,23 @@ size_flags_horizontal = 3 size_flags_vertical = 3 script = ExtResource("1_2qdps") +[node name="InputWatcher" parent="." instance=ExtResource("2_yj01k")] +stop_propagation = true +action = "ogui_east" + +[node name="StateUpdater" parent="InputWatcher" instance=ExtResource("3_hbsyi")] +state_machine = ExtResource("4_tf04q") +action = 2 +on_signal = "input_released" + +[node name="StateWatcher" parent="." instance=ExtResource("5_jobhc")] +state = ExtResource("6_ke40f") + +[node name="FocusGroupSetter" type="Node" parent="StateWatcher" node_paths=PackedStringArray("target")] +script = ExtResource("7_gnxgo") +target = NodePath("../../MarginContainer/VBoxContainer/FocusGroup") +on_signal = "state_entered" + [node name="MarginContainer" type="MarginContainer" parent="."] layout_mode = 2 size_flags_horizontal = 3 @@ -34,7 +56,6 @@ size_flags_vertical = 3 [node name="FocusGroup" parent="MarginContainer/VBoxContainer" node_paths=PackedStringArray("current_focus") instance=ExtResource("2_8jmkq")] current_focus = NodePath("../RefreshButton") -focus_stack = ExtResource("3_emyir") [node name="NoNetworkLabel" parent="MarginContainer/VBoxContainer" instance=ExtResource("4_t7br0")] unique_name_in_owner = true