@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
36 lines • 2.64 kB
JavaScript
import { tgdLoadGlb } from "./binary.js";
import { tgdLoadImage } from "./image.js";
export async function tgdLoadAssets(urls) {
const glb = {};
const img = {};
const tasks = [
...getPromisedLoaders(tgdLoadGlb, urls.glb, glb),
...getPromisedLoaders(tgdLoadImage, urls.img, img),
];
await Promise.all(tasks);
return { glb, img };
}
function getPromisedLoaders(loader, urls, target) {
return Object.keys(urls ?? {}).map((name) => new Promise((resolve) => {
if (!urls) {
resolve();
return;
}
const url = urls[name];
if (!url) {
resolve();
return;
}
loader(url)
.then((value) => {
if (value)
target[name] = value;
resolve();
})
.catch(() => {
console.error("Unable to load URL", url);
resolve();
});
}));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9hZGVyL2Fzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUV0QyxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FDL0IsSUFHRTtJQUtGLE1BQU0sR0FBRyxHQUFHLEVBQTZCLENBQUE7SUFDekMsTUFBTSxHQUFHLEdBQUcsRUFBbUMsQ0FBQTtJQUMvQyxNQUFNLEtBQUssR0FBb0I7UUFDM0IsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDaEQsR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7S0FDckQsQ0FBQTtJQUNELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN4QixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUN2QixNQUEwQyxFQUMxQyxJQUFtQyxFQUNuQyxNQUFvQjtJQUVwQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDOUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNMLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLENBQUE7WUFDVCxPQUFNO1FBQ1YsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFTLENBQUMsQ0FBQTtRQUMzQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDUCxPQUFPLEVBQUUsQ0FBQTtZQUNULE9BQU07UUFDVixDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQzthQUNOLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1osSUFBSSxLQUFLO2dCQUFFLE1BQU0sQ0FBQyxJQUFTLENBQUMsR0FBRyxLQUFLLENBQUE7WUFDcEMsT0FBTyxFQUFFLENBQUE7UUFDYixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUN4QyxPQUFPLEVBQUUsQ0FBQTtRQUNiLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFDLENBQ1QsQ0FBQTtBQUNMLENBQUMifQ==