extends Node const sounds : Dictionary[String, AudioStream] = {"click": preload("res://Audio/Effects_r1_Click.wav"), "die": preload("res://Audio/Effects_r1_Die.wav"), "eat": preload("res://Audio/Effects_r1_Eat.wav"), "move": preload("res://Audio/Effects_r1_Move.wav"), "ouroboros": preload("res://Audio/Effects_r1_Ouroboros.wav")} var players : Dictionary[String, AudioStreamPlayer] = {} func _enter_tree() -> void: get_tree().node_added.connect(_on_node_added) func _ready() -> void: for sound in sounds.keys(): players[sound] = AudioStreamPlayer.new() players[sound].stream = sounds[sound] add_child(players[sound]) func play_sound(sound: String): if sound in sounds.keys(): players[sound].play() func _on_node_added(node:Node) -> void: if node is Button: # If the added node is a button we connect to its mouse_entered and pressed signals # and play a sound node.pressed.connect(play_sound.bind("click"))