2025-02-21 21:47:35 +01:00
|
|
|
[gd_scene load_steps=2 format=3 uid="uid://ccgnnif026wb4"]
|
2025-02-21 15:59:01 +01:00
|
|
|
|
2025-02-21 21:47:35 +01:00
|
|
|
[sub_resource type="GDScript" id="GDScript_oxyvh"]
|
|
|
|
script/source = "extends Node
|
2025-02-21 15:59:01 +01:00
|
|
|
|
2025-02-21 21:47:35 +01:00
|
|
|
func makeAudioStreamPlayers(music_name: String) -> Array[AudioStreamPlayer]:
|
|
|
|
var path: String = \"res://music/\" + music_name
|
|
|
|
var dir: DirAccess = DirAccess.open(path)
|
|
|
|
var file_paths: Array[String] = []
|
|
|
|
|
|
|
|
assert(dir, path + \" is not a valid path!\")
|
|
|
|
if dir:
|
|
|
|
dir.list_dir_begin()
|
|
|
|
var file_name = dir.get_next()
|
|
|
|
while file_name != \"\":
|
|
|
|
if !dir.current_is_dir():
|
|
|
|
if file_name.ends_with(\".ogg\"):
|
|
|
|
file_paths.push_back(path + \"/\" + file_name)
|
|
|
|
file_name = dir.get_next()
|
|
|
|
assert(len(file_paths), path + \" had no .ogg files!\")
|
|
|
|
|
|
|
|
var players: Array[AudioStreamPlayer] = []
|
|
|
|
for file_path in file_paths:
|
|
|
|
var stream: AudioStreamOggVorbis = AudioStreamOggVorbis.load_from_file(file_path)
|
|
|
|
stream.loop = true
|
|
|
|
stream.bpm = 124
|
|
|
|
|
|
|
|
var player: AudioStreamPlayer = AudioStreamPlayer.new()
|
|
|
|
player.stream = stream
|
|
|
|
player.volume_db = -50
|
|
|
|
players.push_back(player)
|
|
|
|
|
|
|
|
return players
|
|
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
|
|
func _ready() -> void:
|
|
|
|
var players = makeAudioStreamPlayers(\"base\")
|
|
|
|
for player in players:
|
|
|
|
add_child(player)
|
|
|
|
#player.volume_db = 0
|
|
|
|
for player in players:
|
|
|
|
player.play()
|
|
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
|
|
func _process(delta: float) -> void:
|
|
|
|
pass
|
|
|
|
"
|
|
|
|
|
|
|
|
[node name="World" type="Node"]
|
|
|
|
script = SubResource("GDScript_oxyvh")
|