Add fishing and shoreline sound effects

This commit is contained in:
Alexander Sellite 2026-08-03 15:44:56 -04:00
parent de1df5ea21
commit 930acdb1a6
21 changed files with 497 additions and 1 deletions

View file

@ -0,0 +1,54 @@
extends SceneTree
const FishingSpotScene := preload("res://fishing/fishing_spot.tscn")
func _initialize() -> void:
call_deferred("_run")
func _run() -> void:
var fishing_spot := FishingSpotScene.instantiate() as FishingSpot
root.add_child(fishing_spot)
await process_frame
var fight_audio := fishing_spot.get_node("%FightAudio") as AudioStreamPlayer
var bobber_audio := fishing_spot.get_node(
"%BobberAudio"
) as AudioStreamPlayer
assert(bobber_audio != null)
assert(bobber_audio.stream != null)
assert(bobber_audio.bus == &"SFX")
assert(is_equal_approx(bobber_audio.volume_db, -14.0))
var bobber_stream := bobber_audio.stream as AudioStreamWAV
assert(bobber_stream != null)
assert(bobber_stream.loop_mode == AudioStreamWAV.LOOP_DISABLED)
assert(fight_audio != null)
assert(fight_audio.stream != null)
assert(fight_audio.bus == &"SFX")
assert(is_equal_approx(fight_audio.volume_db, -10.0))
var fight_stream := fight_audio.stream as AudioStreamWAV
assert(fight_stream != null)
assert(fight_stream.loop_mode == AudioStreamWAV.LOOP_FORWARD)
assert(fight_stream.loop_end > fight_stream.loop_begin)
var reeling_audio := fishing_spot.get_node(
"%ReelingAudio"
) as AudioStreamPlayer
assert(reeling_audio != null)
assert(reeling_audio.stream != null)
assert(reeling_audio.bus == &"SFX")
assert(is_equal_approx(reeling_audio.volume_db, -10.0))
var reeling_stream := reeling_audio.stream as AudioStreamWAV
assert(reeling_stream != null)
assert(reeling_stream.loop_mode == AudioStreamWAV.LOOP_FORWARD)
assert(reeling_stream.loop_end > reeling_stream.loop_begin)
assert(fishing_spot.has_method("_start_fight_audio"))
assert(fishing_spot.has_method("_play_bobber_audio"))
assert(fishing_spot.has_method("_stop_fight_audio"))
assert(fishing_spot.has_method("_start_reeling_audio"))
assert(fishing_spot.has_method("_stop_reeling_audio"))
fishing_spot.free()
await process_frame
print("Fishing audio validation: PASS")
quit()

View file

@ -0,0 +1 @@
uid://bby8mv7bsjd3w

View file

@ -0,0 +1,48 @@
extends SceneTree
const ShorelineAmbienceType := preload("res://world/shoreline_ambience.gd")
const WavesStream := preload("res://audio/ambience/waves.wav")
func _initialize() -> void:
call_deferred("_run")
func _run() -> void:
var waves := WavesStream as AudioStreamWAV
assert(waves != null)
var segments: Array[PackedVector2Array] = [
PackedVector2Array([Vector2.ZERO, Vector2(10.0, 0.0)]),
]
assert(is_equal_approx(
ShorelineAmbienceType.distance_to_segments(Vector2(5.0, 3.0), segments),
3.0,
))
assert(is_equal_approx(
ShorelineAmbienceType.distance_to_segments(Vector2(-4.0, 0.0), segments),
4.0,
))
var controller := ShorelineAmbienceType.new() as ShorelineAmbience
var runtime_audio := AudioStreamPlayer.new()
runtime_audio.name = "WavesAudio"
runtime_audio.unique_name_in_owner = true
runtime_audio.stream = WavesStream
runtime_audio.bus = &"SFX"
controller.add_child(runtime_audio)
runtime_audio.owner = controller
root.add_child(controller)
await process_frame
assert(runtime_audio.bus == &"SFX")
assert(controller.near_distance < controller.far_distance)
assert(controller.near_volume_db > controller.far_volume_db)
var runtime_waves := runtime_audio.stream as AudioStreamWAV
assert(runtime_waves.loop_mode == AudioStreamWAV.LOOP_FORWARD)
assert(runtime_waves.loop_begin == 0)
assert(runtime_waves.loop_end == 1044956)
controller.free()
await process_frame
print("Shoreline ambience validation: PASS")
quit()

View file

@ -0,0 +1 @@
uid://bwvhgpbkb00l1