feat: implement global SFXManager singleton and integrate into main scene initialization

This commit is contained in:
Yogi Wiguna
2026-03-31 12:40:57 +08:00
parent 82f2811c26
commit cc207bca3d
3 changed files with 36 additions and 8 deletions
+10 -4
View File
@@ -15,10 +15,16 @@ func _load_sounds():
dir.list_dir_begin()
var file_name = dir.get_next()
while file_name != "":
if not dir.current_is_dir() and (file_name.ends_with(".mp3") or file_name.ends_with(".wav") or file_name.ends_with(".ogg")):
var base_name = file_name.get_basename()
sounds[base_name] = load(sfx_path + file_name)
# print("[SfxManager] Loaded: ", base_name)
if not dir.current_is_dir():
# Remove .import extension if it exists (Godot adds this to imported resources in exported builds)
var clean_name = file_name.replace(".import", "")
if clean_name.ends_with(".mp3") or clean_name.ends_with(".wav") or clean_name.ends_with(".ogg"):
var base_name = clean_name.get_basename() # Ex: "jump.wav" -> "jump"
# Only load the original extension, Godot's resource loader handles the .import remapping automatically.
if not sounds.has(base_name):
sounds[base_name] = load(sfx_path + clean_name)
file_name = dir.get_next()
dir.list_dir_end()
else: