soiz1's picture
Upload 225 files
7aec436 verified
import ScratchStorage from 'scratch-storage';
class StorageWithProgress extends ScratchStorage {
constructor () {
super();
this._totalAssets = 0;
this._loadedAssets = 0;
}
_updateProgress () {
if (this.onprogress) {
this.onprogress(this._totalAssets, this._loadedAssets);
}
}
load (assetType, asset, assetFormat) {
const isAsset = (
assetType === this.AssetType.ImageBitmap ||
assetType === this.AssetType.ImageVector ||
assetType === this.AssetType.Sound ||
assetType === this.AssetType.Font
);
if (isAsset) {
this._totalAssets++;
this._updateProgress();
return super.load(assetType, asset, assetFormat)
.then((loadedAsset) => {
this._loadedAssets++;
this._updateProgress();
return loadedAsset;
});
}
return super.load(assetType, asset, assetFormat);
}
}
export default StorageWithProgress;