diff --git a/App/eden.js b/App/eden.js index ebc4c279..8089d001 100644 --- a/App/eden.js +++ b/App/eden.js @@ -96,7 +96,7 @@ worldData.push({ }, sounds: { music: { - intro: '.mp3', + intro: ['.m4a', '.mp3'], birds: '.mp3', credits: '.mp3', map: '.mp3', diff --git a/Types/Assets.js b/Types/Assets.js index e957c911..6baebe8d 100644 --- a/Types/Assets.js +++ b/Types/Assets.js @@ -16,6 +16,15 @@ function Assets(spec) { if (callbacks.progress) callbacks.progress(0, loadTotal) + function isSupported(filename) { + let ext = getExtension(filename) + return Howler.codecs(ext) + } + + function getExtension(file) { + return file.split('.').pop() + } + function loadAsset(object, folders, file, key, assetSpec = {}) { // console.log(`Loading asset '${file}' from folders `, folders) @@ -78,10 +87,18 @@ function Assets(spec) { function load(object, folders = []) { _.each(object, (v, i) => { + if (_.isString(v)) { + loadAsset(object, folders, v, i) + } else + if (_.isArray(v)) { + // find the first filetype we support and load that + let ext = v.find((v) => isSupported(v)) + loadAsset(object, folders, ext, i) + } else if (_.isObject(v)) { if (_.has(v, 'src')) loadAsset(object, folders, v.src, i, v) else load(v, [...folders, i]) - } else if (_.isString(v)) loadAsset(object, folders, v, i) + } }) }