From 5544cc83cf5faaa93d16f2013cc53dfdccb179b4 Mon Sep 17 00:00:00 2001 From: kts of kettek Date: Sun, 30 Jan 2022 01:01:18 -0800 Subject: [PATCH] Adjust audio to traverse hierarchy --- Engine/src/shared/audio.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Engine/src/shared/audio.ts b/Engine/src/shared/audio.ts index 2d28ce7..e55e0b6 100644 --- a/Engine/src/shared/audio.ts +++ b/Engine/src/shared/audio.ts @@ -1,6 +1,21 @@ import assets from 'url:../../../Assets/Audio/**/*.ogg' +console.log('audio assets:', assets) -export const audio: Record = assets +type Entry = { [key: string]: string | Entry } + +export const audio: Record = {} + +function traverse(path: string, entry: Entry|string) { + if (typeof entry === 'string') { + audio[path] = entry + } else if (typeof entry === 'object') { + for (let [key, value] of Object.entries(entry)) { + traverse((path?path+'/':'')+key, value) + } + } +} + +traverse('', assets) export let enabled = true export function enableSound() { @@ -17,7 +32,7 @@ export function disableSound() { } // Preload 'em -for (let [key, value] of (Object.entries(assets) as [string,string][])) { +for (let [key, value] of (Object.entries(audio))) { let audio = new Audio() audio.addEventListener('canplaythrough', () => { console.log('preloaded audio', key)