diff options
author | tpart <tpart120@proton.me> | 2024-06-29 21:53:11 +0200 |
---|---|---|
committer | tpart <tpart120@proton.me> | 2024-06-29 21:53:15 +0200 |
commit | b53f3d198e5899a597e5a321a277cf0ef74fec7b (patch) | |
tree | 907768d65f4a24948718dfe986c34fd2f71a3e7e | |
parent | c0f9942cd4562b169a4dddfdc083e505dc465830 (diff) | |
download | hurrycurry-b53f3d198e5899a597e5a321a277cf0ef74fec7b.tar hurrycurry-b53f3d198e5899a597e5a321a277cf0ef74fec7b.tar.bz2 hurrycurry-b53f3d198e5899a597e5a321a277cf0ef74fec7b.tar.zst |
Add hover sound effect
-rw-r--r-- | client/global.gd | 4 | ||||
-rw-r--r-- | client/menu/menu_manager.gd | 15 |
2 files changed, 19 insertions, 0 deletions
diff --git a/client/global.gd b/client/global.gd index b9f35b6b..7c547d64 100644 --- a/client/global.gd +++ b/client/global.gd @@ -108,6 +108,8 @@ var settings: Dictionary var server_url = "" var error_message = "" +var focus_auto_changed := false + var fade_next := false # Set true when transitioning from another scene (fade in requried) func _init(): @@ -143,6 +145,8 @@ func on_vulkan() -> bool: return ProjectSettings.get_setting("rendering/rendering_device/driver") == "vulkan" func focus_first_button(node: Node) -> bool: + focus_auto_changed = true + if node is Button: node.grab_focus() print("Node %s (%s) was selected for focus" % [node.name, node]) diff --git a/client/menu/menu_manager.gd b/client/menu/menu_manager.gd index c15f181f..58f35885 100644 --- a/client/menu/menu_manager.gd +++ b/client/menu/menu_manager.gd @@ -15,6 +15,7 @@ var menu_stack = ["main"] func _ready(): + get_viewport().gui_focus_changed.connect(play_hover_maybe) Global.focus_first_button(menus[menu_stack.back()]) for m in menus.values(): @@ -56,8 +57,22 @@ func show_menu(menu_name: String): func connect_button_sounds(node: Node): if node is Button: node.pressed.connect(play_click) + if node is Button or node is LineEdit or node is Slider: + node.mouse_entered.connect(play_hover) for c in node.get_children(): connect_button_sounds(c) func play_click(): click_sound.play() + +func play_hover(): + hover_sound.play() + +func play_hover_maybe(element): + if Global.focus_auto_changed: + Global.focus_auto_changed = false + return + if element is Button: + if element.is_hovered(): + return + play_hover() |