diff options
author | metamuffin <metamuffin@disroot.org> | 2024-07-01 18:37:00 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-07-01 18:37:00 +0200 |
commit | b6dddafa910f096f7e627cce90ed74b04b7be281 (patch) | |
tree | e86bdbcc22d0756588d3c1d45323bca353514516 /client/audio | |
parent | 404e2e43d44a71344b5fc7399a74f517d7d3c9d4 (diff) | |
parent | 7c9ff7817c2cbdcd3fcbb7083ca655694653def5 (diff) | |
download | hurrycurry-b6dddafa910f096f7e627cce90ed74b04b7be281.tar hurrycurry-b6dddafa910f096f7e627cce90ed74b04b7be281.tar.bz2 hurrycurry-b6dddafa910f096f7e627cce90ed74b04b7be281.tar.zst |
Merge branch 'master' of https://codeberg.org/metamuffin/undercooked
Diffstat (limited to 'client/audio')
-rw-r--r-- | client/audio/play_random.gd | 32 | ||||
-rw-r--r-- | client/audio/play_random.tscn | 6 |
2 files changed, 30 insertions, 8 deletions
diff --git a/client/audio/play_random.gd b/client/audio/play_random.gd index afdf046f..d702756d 100644 --- a/client/audio/play_random.gd +++ b/client/audio/play_random.gd @@ -17,19 +17,35 @@ extends Node class_name PlayRandom @export var volume_db := 0.0 -@export var enable_attenuations := true +@export var enable_attenuations := false var autoplay := false - -@onready var sounds = get_children() +var manual_setup_called := false +var sounds = [] func _ready(): + if manual_setup_called: + return + sounds = get_children() for s: AudioStreamPlayer3D in sounds: - s.connect("finished", sound_finished) - s.volume_db = volume_db - - if not enable_attenuations: - s.attenuation_filter_cutoff_hz = 20500 + configure_player(s) + +func setup(new_sounds: Array): + # new_sounds should be an array of AudioStream + manual_setup_called = true + for s in new_sounds: + var player = AudioStreamPlayer3D.new() + player.stream = s + configure_player(player) + add_child(player) + sounds.append(player) + +func configure_player(player): + player.connect("finished", sound_finished) + player.volume_db = volume_db + + if not enable_attenuations: + player.attenuation_filter_cutoff_hz = 20500 func play_random(): var s = sounds[randi_range(0, sounds.size() - 1)] diff --git a/client/audio/play_random.tscn b/client/audio/play_random.tscn new file mode 100644 index 00000000..f9b20842 --- /dev/null +++ b/client/audio/play_random.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://bncx0wul2ikrg"] + +[ext_resource type="Script" path="res://audio/play_random.gd" id="1_c8pxf"] + +[node name="PlayRandom" type="Node3D"] +script = ExtResource("1_c8pxf") |