blob: c58ce1a4689d3d3a899b177eeb27b89508c66035 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
extends Node
# REQUIREMENTS:
# * SS-68
const _audio_directory_path : StringName = &"res://audio/sfx/"
var _loaded_sound : Dictionary = {}
var _bus_to_stream_player : Dictionary = {}
# REQUIREMENTS:
# * SND-10
func _ready():
var dir = DirAccess.open(_audio_directory_path)
for fname in dir.get_files():
match fname.get_extension():
"ogg", "wav", "mp3":
_loaded_sound[fname.get_basename()] = load(_audio_directory_path.path_join(fname)) # SND-10
func play_stream(sound : AudioStream, bus_type : String) -> void:
var player : AudioStreamPlayer = _bus_to_stream_player.get(bus_type)
if player == null:
player = AudioStreamPlayer.new()
player.bus = bus_type
player.stream = AudioStreamPolyphonic.new()
_bus_to_stream_player[bus_type] = player
add_child(player)
player.play()
var poly_playback : AudioStreamPlaybackPolyphonic = player.get_stream_playback()
poly_playback.play_stream(sound)
func play(sound : String, bus_type : String) -> void:
play_stream(_loaded_sound[sound], bus_type)
# REQUIREMENTS:
# * SND-7
func play_effect_stream(sound : AudioStream) -> void:
play_stream(sound, "SFX")
func play_effect(sound : String) -> void:
play(sound, "SFX")
|