Refactor audio effect handling: remove cooldown logic and enhance sound playback functionality

This commit is contained in:
Kirill
2026-10-03 13:36:33 +03:00
parent 9e13c8bbe3
commit 6f6a1be3bd
8 changed files with 58 additions and 22 deletions
+23 -1
View File
@@ -94,6 +94,7 @@ var g_active_items: Dictionary = {}
var pending_page: int = -1
var active_actions_dirty: bool = true
var active_actions_elapsed: float = 0.0
var interface_sounds_enabled: bool = false
var owniverse:Owniverse = Owniverse.new()
var owniverse_items: Dictionary[String, OwniverseItem] = {}
@@ -323,6 +324,11 @@ func _ready() -> void:
for pa in page_actions:
page_actions[pa].action_pressed.connect(_page_action_pressed)
page_actions[pa].page_id = pa
_enable_interface_sounds.call_deferred()
func _enable_interface_sounds() -> void:
interface_sounds_enabled = true
## Starts a fresh universe. Can be connected directly to a button's pressed signal.
@@ -398,10 +404,15 @@ func _process(delta: float) -> void:
func _change_speed(delta: int) -> void:
var previous_speed: int = owniverse.speed
owniverse.speed = owniverse.speed + delta
var speed: int = owniverse.speed
if speed > previous_speed:
effects_player.play_effect("time_plus")
elif speed < previous_speed:
effects_player.play_effect("time_minus")
var ind: int = 1
for icon in g_speed_icons:
if ind <= speed:
@@ -421,6 +432,17 @@ func _change_speed(delta: int) -> void:
func _on_topmenu_button_pressed(screen_name: String) -> void:
var current_screen: String = ""
for screen_id in screens:
if screens[screen_id].visible:
current_screen = screen_id
break
if current_screen == screen_name:
return
if interface_sounds_enabled:
effects_player.play_effect("window_close" if screen_name == "World" else "window_open")
for screen_id in screens:
#print(screen_name, " ←→ ", screen_id)