1 line
97 KiB
JavaScript
1 line
97 KiB
JavaScript
|
!function r(o,i,a){function c(t,e){if(!i[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(u)return u(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=i[t]={exports:{}},o[t][0].call(n.exports,function(e){return c(o[t][1][e]||e)},n,n.exports,r,o,i,a)}return i[t].exports}for(var u="function"==typeof require&&require,e=0;e<a.length;e++)c(a[e]);return c}({1:[function(e,t,n){},{}],2:[function(e,t,n){"use strict";var r=window.fsUtils,o=r.getUserDataPath,i=r.readJsonSync,c=r.makeDirSync,a=r.writeFileSync,s=r.copyFile,l=r.downloadFile,u=r.writeFile,f=r.deleteFile,d=r.rmdirSync,p=r.unzip,h=r.isOutOfStorage,m=!1,y=null,g=!1,b=[],v=[],w=!1,_=0,E=/^https?:\/\/.*/;cc.assetManager.cacheManager=t.exports={cacheDir:"gamecaches",cachedFileName:"cacheList.json",cacheEnabled:!0,autoClear:!0,cacheInterval:500,deleteInterval:500,writeFileInterval:2e3,outOfStorage:!1,tempFiles:null,cachedFiles:null,cacheQueue:{},version:"1.0",getCache:function(e){return this.cachedFiles.has(e)?this.cachedFiles.get(e).url:""},getTemp:function(e){return this.tempFiles.has(e)?this.tempFiles.get(e):""},init:function(){this.cacheDir=o()+"/"+this.cacheDir;var e=this.cacheDir+"/"+this.cachedFileName,t=i(e);t instanceof Error||!t.version?(t instanceof Error||d(this.cacheDir,!0),this.cachedFiles=new cc.AssetManager.Cache,c(this.cacheDir,!0),a(e,JSON.stringify({files:this.cachedFiles._map,version:this.version}),"utf8")):this.cachedFiles=new cc.AssetManager.Cache(t.files),this.tempFiles=new cc.AssetManager.Cache},updateLastTime:function(e){this.cachedFiles.has(e)&&(this.cachedFiles.get(e).lastTime=Date.now())},_write:function(){g=!(y=null),u(this.cacheDir+"/"+this.cachedFileName,JSON.stringify({files:this.cachedFiles._map,version:this.version}),"utf8",function(){g=!1;for(var e=0,t=v.length;e<t;e++)v[e]();v.length=0,v.push.apply(v,b),b.length=0})},writeCacheFile:function(e){!y&&(y=setTimeout(this._write.bind(this),this.writeFileInterval),!0===g)?e&&b.push(e):e&&v.push(e)},_cache:function(){var t,n=this;for(t in this.cacheQueue){var e=function(e){if(m=!1,e){if(h(e.message))return n.outOfStorage=!0,void(n.autoClear&&n.clearLRU())}else n.cachedFiles.add(t,{bundle:a,url:u,lastTime:c}),delete n.cacheQueue[t],n.writeCacheFile();cc.js.isEmptyObject(n.cacheQueue)||(m=!0,setTimeout(n._cache.bind(n),n.cacheInterval))},r=this.cacheQueue[t],o=r.srcUrl,i=r.isCopy,a=r.cacheBundleRoot,c=Date.now().toString(),u="",u=(a?"".concat(this.cacheDir,"/").concat(a,"/"):"".concat(this.cacheDir,"/")).concat(c).concat(_++).concat(cc.path.extname(t));return void(i?s(o,u,e):l(o,u,null,e))}m=!1},cacheFile:function(e,t,n,r,o){!(n=void 0!==n?n:this.cacheEnabled)||this.cacheQueue[e]||this.cachedFiles.has(e)||(this.cacheQueue[e]={srcUrl:t,cacheBundleRoot:r,isCopy:o},m||(m=!0,this.outOfStorage?m=!1:setTimeout(this._cache.bind(this),this.cacheInterval)))},clearCache:function(){var t=this,e=(d(this.cacheDir,!0),this.cachedFiles=new cc.AssetManager.Cache,c(this.cacheDir,!0),this.cacheDir+"/"+this.cachedFileName);this.outOfStorage=!1,a(e,JSON.stringify({files:this.cachedFiles._map,version:this.version}),"utf8"),cc.assetManager.bundles.forEach(function(e){E.test(e.base)&&t.makeBundleFolder(e.name)})},clearLRU:function(){if(!w){w=!0;var n=[],r=this;if(this.cachedFiles.forEach(function(t,e){"internal"===t.bundle||r._isZipFile(e)&&cc.assetManager.bundles.find(function(e){return-1!==e.base.indexOf(t.url)})||n.push({originUrl:e,url:t.url,lastTime:t.lastTime})}),n.sort(function(e,t){return e.lastTime-t.lastTime}),n.length=Math.floor(n.length/3),0!==n.length){for(var e=0,t=n.length;e<t;e++)this.cachedFiles.remove(n[e].originUrl);this.writeCacheFile(function(){setTimeout(function e(){var t=n.pop();r._isZipFile(t.originUrl)?(d(t.url,!0),r._deleteFileCB()):f(t.url,r._deleteFileCB.bind(r)),0<n.length?setTimeout(e,r.deleteInterval):w=!1},r.deleteInterval)})}}},removeCache:function(e){var t,n;this.cachedFiles.has(e)&&(n=(t=this).cachedFiles.remove(e).url,this.writeCacheFile(function(){t._isZipFile(e)?(d(n,!0),t._deleteFileCB()):f(n,t._deleteFileCB.bind(t))
|