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)