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 /client | |
| parent | c0f9942cd4562b169a4dddfdc083e505dc465830 (diff) | |
| download | hurrycurry-b53f3d198e5899a597e5a321a277cf0ef74fec7b.tar hurrycurry-b53f3d198e5899a597e5a321a277cf0ef74fec7b.tar.bz2 hurrycurry-b53f3d198e5899a597e5a321a277cf0ef74fec7b.tar.zst | |
Add hover sound effect
Diffstat (limited to 'client')
| -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() | 
