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