async function* loadTextures() {
const textures = [];
const baseTextures = [];
invalidation.then(() => {
console.log("invalidate textures");
for (const [id, texture] of textures.flat()) {
texture.destroy();
}
});
for (const sprites of data.spritesheets) {
const baseTexture = await loadTexture(baseUrl + sprites.image);
baseTextures.push(baseTexture);
const textureGroup = [];
for (const spritedata of sprites.sprites) {
const texture = extractSpriteTexture(baseTexture, spritedata);
textureGroup.push([spritedata.name, texture]);
}
textures.push(textureGroup);
if (delay) await Promises.delay(delay);
yield textureGroup;
}
}