58 lines
1.5 KiB
GDScript3
58 lines
1.5 KiB
GDScript3
|
class_name SoundTest extends Control
|
||
|
|
||
|
const MUSIC := {
|
||
|
"calm_before_the_storm.ogg": true,
|
||
|
"chill.ogg": true,
|
||
|
"dramatic_level_music.ogg": true,
|
||
|
"dream1.ogg": true,
|
||
|
"dream2.ogg": true,
|
||
|
"dream3.ogg": true,
|
||
|
"little_lost_doll.ogg": true,
|
||
|
"menu.ogg": true,
|
||
|
"pair_of_three.ogg": true,
|
||
|
"title.ogg": true
|
||
|
}
|
||
|
|
||
|
@onready var _drop_down := (
|
||
|
$OuterMargin/Content/VBoxContainer/HBoxContainer/OptionButton
|
||
|
) as OptionButton
|
||
|
@onready var _play_button := (
|
||
|
$OuterMargin/Content/VBoxContainer/HBoxContainer/Play
|
||
|
) as Button
|
||
|
@onready var _stop_button := (
|
||
|
$OuterMargin/Content/VBoxContainer/HBoxContainer/Stop
|
||
|
) as Button
|
||
|
@onready var _back_button := (
|
||
|
$OuterMargin/Content/VBoxContainer/Back
|
||
|
) as Button
|
||
|
@onready var _sound_effect_player := (
|
||
|
$AudioStreamPlayer
|
||
|
) as AudioStreamPlayer
|
||
|
@onready var _tracks := {}
|
||
|
|
||
|
func _ready() -> void:
|
||
|
_play_button.pressed.connect(_on_play)
|
||
|
_stop_button.pressed.connect(_on_stop)
|
||
|
_back_button.pressed.connect(_on_back)
|
||
|
for fname in DirAccess.get_files_at("res://audio/"):
|
||
|
if fname.ends_with(".ogg"):
|
||
|
var file := load("res://audio/" + fname) as AudioStream
|
||
|
if file:
|
||
|
_tracks[fname] = file
|
||
|
_drop_down.add_item(fname)
|
||
|
|
||
|
func _on_play() -> void:
|
||
|
var fname := _drop_down.get_item_text(_drop_down.selected)
|
||
|
if MUSIC.get(fname, false):
|
||
|
FX.play_bgm(_tracks[fname])
|
||
|
else:
|
||
|
_sound_effect_player.stream = _tracks[fname]
|
||
|
_sound_effect_player.play()
|
||
|
|
||
|
func _on_stop() -> void:
|
||
|
FX.stop_bgm()
|
||
|
_sound_effect_player.stop()
|
||
|
|
||
|
func _on_back() -> void:
|
||
|
UI.Return(self, true)
|