Files
packager/src/storage.js
T
2021-06-24 14:08:45 -05:00

38 lines
894 B
JavaScript

import ScratchStorage from 'scratch-storage';
class Storage 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 === ScratchStorage.AssetType.ImageBitmap ||
assetType === ScratchStorage.AssetType.ImageVector ||
assetType === ScratchStorage.AssetType.Sound
);
if (isAsset) {
this._totalAssets++;
this._updateProgress();
return super.load(assetType, asset, assetFormat)
.then((asset) => {
this._loadedAssets++;
this._updateProgress();
return asset;
});
}
return super.load(assetType, asset, assetFormat);
}
}
export default Storage;