Source: wk_pixi/loader/loadResources.js

/**
 * @author    Wolfgang Kowarschick <kowa@hs-augsburg.de>
 * @copyright 2017 - 2018
 * @license   CC-BY-NC-SA-4.0
 */

/**
 * @module wk_pixi/loader/LoadResources
 */

import {loader, Spritesheet} from 'pixi.js';

/**
 * @function loadResources
 * @static
 *
 * Asynchronously loads all resources that have been added to the Pixi
 * loader by means of <code>loader.add(...)</code>.
 * @returns {Promise<any>}
 */
function loadResources(p_spritesheets_json = [])
{ return new Promise
             ( p_resolve =>
               loader
                 .load((p_loader, p_resources) =>
                       { let l_to_do = p_spritesheets_json.length;
                         if (l_to_do === 0)
                         { p_resolve(p_resources); }
                         for (let l_json of p_spritesheets_json)
                         { const
                             c_name = l_json.meta.imageName;
                           
                           new Spritesheet(p_resources[c_name].texture.baseTexture, l_json)
                                 .parse((p_textures) =>
                                        { p_resources[c_name] =
                                            { textures:   p_textures,
                                              animations: l_json.animations
                                            };
                                          for (let [l_key, l_value] of  Object.entries(p_textures))
                                          { p_resources[l_key] = { texture: l_value}; }
                                          
                                          l_to_do--;
                                          if (l_to_do === 0)
                                          { p_resolve(p_resources); }
                                        }
                                       )
                         }
                         
                       }
                      )
             );
}

export {loadResources};
export default loadResources;