From 6303415068d6502316995376139c57b3d37c35ff Mon Sep 17 00:00:00 2001 From: tpart Date: Mon, 1 Jul 2024 18:26:43 +0200 Subject: Add item support for playing sounds --- client/audio/play_random.gd | 22 +++++++++++++++++----- client/audio/play_random.tscn | 6 ++++++ client/map/items/item.gd | 2 ++ 3 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 client/audio/play_random.tscn (limited to 'client') diff --git a/client/audio/play_random.gd b/client/audio/play_random.gd index afdf046f..0fd10889 100644 --- a/client/audio/play_random.gd +++ b/client/audio/play_random.gd @@ -25,11 +25,23 @@ var autoplay := false func _ready(): 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 + 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") diff --git a/client/map/items/item.gd b/client/map/items/item.gd index 688308fe..d5d2e1dc 100644 --- a/client/map/items/item.gd +++ b/client/map/items/item.gd @@ -20,11 +20,13 @@ var owned_by: Node3D var base: Node3D = Node3D.new() var progress_instance: ProgressBar3D = preload("res://map/progress.tscn").instantiate() +var sound_instance: PlayRandom = preload("res://audio/play_random.tscn").instantiate() func _init(owned_by_: Node3D): progress_instance.position.y = 1 progress_instance.visible = false add_child(progress_instance) + add_child(sound_instance) base.position = base_position() add_child(base) owned_by = owned_by_ -- cgit v1.2.3-70-g09d2 From f698256b17ba0ee96182ca2b49fc41568c27e807 Mon Sep 17 00:00:00 2001 From: tpart Date: Mon, 1 Jul 2024 18:34:27 +0200 Subject: Fix item sound playback system giving errors --- client/audio/play_random.gd | 10 +++++++--- client/map/items/item.gd | 1 + client/player/character/character.tscn | 2 -- client/player/effect.tscn | 1 - 4 files changed, 8 insertions(+), 6 deletions(-) (limited to 'client') diff --git a/client/audio/play_random.gd b/client/audio/play_random.gd index 0fd10889..d702756d 100644 --- a/client/audio/play_random.gd +++ b/client/audio/play_random.gd @@ -17,18 +17,22 @@ 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: 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 diff --git a/client/map/items/item.gd b/client/map/items/item.gd index d5d2e1dc..d3acf200 100644 --- a/client/map/items/item.gd +++ b/client/map/items/item.gd @@ -27,6 +27,7 @@ func _init(owned_by_: Node3D): progress_instance.visible = false add_child(progress_instance) add_child(sound_instance) + sound_instance.volume_db = -16 base.position = base_position() add_child(base) owned_by = owned_by_ diff --git a/client/player/character/character.tscn b/client/player/character/character.tscn index 33846758..19eb3ce2 100644 --- a/client/player/character/character.tscn +++ b/client/player/character/character.tscn @@ -664,7 +664,6 @@ scale_amount_curve = SubResource("Curve_7ml8g") [node name="Steps" type="Node3D" parent="."] script = ExtResource("14_3rb6x") volume_db = -30.0 -enable_attenuations = false [node name="Step1" type="AudioStreamPlayer3D" parent="Steps"] stream = ExtResource("10_qpd6x") @@ -678,7 +677,6 @@ stream = ExtResource("12_bj5ue") [node name="Boosts" type="Node3D" parent="."] script = ExtResource("14_3rb6x") volume_db = -12.0 -enable_attenuations = false [node name="Woosh1" type="AudioStreamPlayer3D" parent="Boosts"] stream = ExtResource("14_ikcec") diff --git a/client/player/effect.tscn b/client/player/effect.tscn index 748aa20e..a360d1a8 100644 --- a/client/player/effect.tscn +++ b/client/player/effect.tscn @@ -28,7 +28,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) [node name="AngryGrunt" type="Node3D" parent="."] script = ExtResource("5_t2upj") volume_db = -8.0 -enable_attenuations = false [node name="Angry1" type="AudioStreamPlayer3D" parent="AngryGrunt"] stream = ExtResource("6_ou7uy") -- cgit v1.2.3-70-g09d2 From 7c9ff7817c2cbdcd3fcbb7083ca655694653def5 Mon Sep 17 00:00:00 2001 From: tpart Date: Mon, 1 Jul 2024 18:34:42 +0200 Subject: Add plate up sound effect --- client/map/items/plate.gd | 5 +++++ client/map/sounds/plate_up.ogg | Bin 0 -> 11020 bytes client/map/sounds/plate_up.ogg.import | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 client/map/sounds/plate_up.ogg create mode 100644 client/map/sounds/plate_up.ogg.import (limited to 'client') diff --git a/client/map/items/plate.gd b/client/map/items/plate.gd index ac6a6c00..88403b55 100644 --- a/client/map/items/plate.gd +++ b/client/map/items/plate.gd @@ -19,6 +19,11 @@ extends Item func _init(owned_by_: Node3D): super(owned_by_) add_child(load("res://map/items/plate.tscn").instantiate()) + sound_instance.setup([preload("res://map/sounds/plate_up.ogg")]) + +func take(): + sound_instance.play_random() + super() static func base_position() -> Vector3: return Vector3(0., 0.05, 0.) diff --git a/client/map/sounds/plate_up.ogg b/client/map/sounds/plate_up.ogg new file mode 100644 index 00000000..08ce5bb6 Binary files /dev/null and b/client/map/sounds/plate_up.ogg differ diff --git a/client/map/sounds/plate_up.ogg.import b/client/map/sounds/plate_up.ogg.import new file mode 100644 index 00000000..5f2128e4 --- /dev/null +++ b/client/map/sounds/plate_up.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dyt45wi23lmmh" +path="res://.godot/imported/plate_up.ogg-321cdd38fc6e820b2112fd77d567bcc9.oggvorbisstr" + +[deps] + +source_file="res://map/sounds/plate_up.ogg" +dest_files=["res://.godot/imported/plate_up.ogg-321cdd38fc6e820b2112fd77d567bcc9.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 -- cgit v1.2.3-70-g09d2