|
(function() {
|
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
|
var __module = nodeEnv ? module : {exports:{}};
|
var __filename = 'preview-scripts/assets/Scripts/mod/battle/battle_res_pool.js';
|
var __require = nodeEnv ? function (request) {
|
return cc.require(request);
|
} : function (request) {
|
return __quick_compile_project__.require(request, __filename);
|
};
|
function __define (exports, require, module) {
|
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
|
cc._RF.push(module, '2ce03npZLpOF7g2NUPT++6l', 'battle_res_pool');
|
// Scripts/mod/battle/battle_res_pool.js
|
|
"use strict";
|
|
var GC_TIME = 300; // 动画资源的缓存池
|
|
var BattleResPool = function BattleResPool() {
|
this._loaddingRes = {}; // 加载中的资源
|
|
this._finishRes = {}; // 加载完成的资源
|
|
this._rescounter = {};
|
this._delres = {};
|
this.mainloop_timer = gcore.Timer.set(function () {
|
this.update(10);
|
}.bind(this), 10000, -1);
|
this._test_load = {};
|
this._test_del = {};
|
};
|
|
var proto = BattleResPool.prototype;
|
|
proto.preLoadRes = function (path, callback) {
|
this.getRes(path, callback, true);
|
};
|
|
proto.getRes = function (path, callback, is_pre) {
|
if (!path || !callback) return; // if (!is_pre) {
|
// if (!this._test_load[path])
|
// this._test_load[path] = 0;
|
// this._test_load[path]++
|
// }
|
|
if (this._delres[path]) {
|
delete this._delres[path];
|
}
|
|
if (this._finishRes[path]) {
|
callback(this._finishRes[path]);
|
|
if (!is_pre) {
|
if (!this._rescounter[path]) this._rescounter[path] = 0;
|
this._rescounter[path]++;
|
}
|
|
return;
|
} else {
|
var load_info = {};
|
load_info.callback = callback;
|
load_info.is_pre = is_pre;
|
|
if (this._loaddingRes[path] && this._loaddingRes[path].length > 0) {
|
this._loaddingRes[path].push(load_info);
|
|
return;
|
} else {
|
this._loaddingRes[path] = [];
|
|
this._loaddingRes[path].push(load_info);
|
}
|
}
|
|
LoaderManager.getInstance().loadRes(path, function (path, res_object) {
|
this._finishRes[path] = res_object;
|
|
for (var callback_i in this._loaddingRes[path]) {
|
var load_info = this._loaddingRes[path][callback_i];
|
if (load_info.callback) load_info.callback(res_object);
|
|
if (!load_info.is_pre) {
|
// 如果不是预加载的则进行引用计数
|
if (!this._rescounter[path]) this._rescounter[path] = 0;
|
this._rescounter[path]++;
|
if (this._delres[path]) delete this._delres[path];
|
} else {
|
// 如果是预加载的暂时放到删除队列
|
if (!this._rescounter[path] || this._rescounter[path] <= 0) this.delRes(path);
|
}
|
}
|
|
this._loaddingRes[path] = [];
|
}.bind(this, path));
|
};
|
|
proto.delRes = function (path) {
|
if (this._rescounter[path] && this._rescounter[path] > 0) {
|
this._rescounter[path]--;
|
|
if (this._rescounter[path] <= 0) {
|
if (!this._delres[path]) this._delres[path] = GC_TIME;
|
delete this._rescounter[path];
|
} // if (!this._test_del[path])
|
// this._test_del[path] = 0;
|
// this._test_del[path]++
|
|
}
|
};
|
|
proto.update = function (dt) {
|
for (var res_i in this._delres) {
|
this._delres[res_i] -= dt;
|
|
if (this._delres[res_i] < 0) {
|
LoaderManager.getInstance().releaseRes(res_i);
|
delete this._delres[res_i];
|
}
|
}
|
};
|
|
BattleResPool.getInstance = function () {
|
if (!BattleResPool.instance) {
|
BattleResPool.instance = new BattleResPool();
|
}
|
|
return BattleResPool.instance;
|
};
|
|
module.exports = BattleResPool;
|
|
cc._RF.pop();
|
}
|
if (nodeEnv) {
|
__define(__module.exports, __require, __module);
|
}
|
else {
|
__quick_compile_project__.registerModuleFunc(__filename, function () {
|
__define(__module.exports, __require, __module);
|
});
|
}
|
})();
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxiYXR0bGVcXGJhdHRsZV9yZXNfcG9vbC5qcyJdLCJuYW1lcyI6WyJHQ19USU1FIiwiQmF0dGxlUmVzUG9vbCIsIl9sb2FkZGluZ1JlcyIsIl9maW5pc2hSZXMiLCJfcmVzY291bnRlciIsIl9kZWxyZXMiLCJtYWlubG9vcF90aW1lciIsImdjb3JlIiwiVGltZXIiLCJzZXQiLCJ1cGRhdGUiLCJiaW5kIiwiX3Rlc3RfbG9hZCIsIl90ZXN0X2RlbCIsInByb3RvIiwicHJvdG90eXBlIiwicHJlTG9hZFJlcyIsInBhdGgiLCJjYWxsYmFjayIsImdldFJlcyIsImlzX3ByZSIsImxvYWRfaW5mbyIsImxlbmd0aCIsInB1c2giLCJMb2FkZXJNYW5hZ2VyIiwiZ2V0SW5zdGFuY2UiLCJsb2FkUmVzIiwicmVzX29iamVjdCIsImNhbGxiYWNrX2kiLCJkZWxSZXMiLCJkdCIsInJlc19pIiwicmVsZWFzZVJlcyIsImluc3RhbmNlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJQSxPQUFPLEdBQUcsR0FBZCxFQUNBOztBQUNBLElBQUlDLGFBQWEsR0FBSSxTQUFqQkEsYUFBaUIsR0FBVztBQUMvQixPQUFLQyxZQUFMLEdBQW9CLEVBQXBCLENBRCtCLENBQ0o7O0FBQzNCLE9BQUtDLFVBQUwsR0FBa0IsRUFBbEIsQ0FGK0IsQ0FFSjs7QUFDM0IsT0FBS0MsV0FBTCxHQUFtQixFQUFuQjtBQUNBLE9BQUtDLE9BQUwsR0FBZSxFQUFmO0FBRUcsT0FBS0MsY0FBTCxHQUFzQkMsS0FBSyxDQUFDQyxLQUFOLENBQVlDLEdBQVosQ0FBZ0IsWUFBWTtBQUM5QyxTQUFLQyxNQUFMLENBQVksRUFBWjtBQUNILEdBRnFDLENBRXBDQyxJQUZvQyxDQUUvQixJQUYrQixDQUFoQixFQUVSLEtBRlEsRUFFRCxDQUFDLENBRkEsQ0FBdEI7QUFHQSxPQUFLQyxVQUFMLEdBQWtCLEVBQWxCO0FB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ZCxHQUF5QixJQUFJaEMsYUFBSixFQUF6QjtBQUNIOztBQUNELFNBQU9BLGFBQWEsQ0FBQ2dDLFFBQXJCO0FBQ0gsQ0FMRDs7QUFPQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbEMsYUFBakIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbInZhciBHQ19USU1FID0gMzAwO1xyXG4vLyDliqjnlLvotYTmupDnmoTnvJPlrZjmsaBcclxudmFyIEJhdHRsZVJlc1Bvb2wgPSAgZnVuY3Rpb24oKSB7XHJcblx0dGhpcy5fbG9hZGRpbmdSZXMgPSB7fTsgICAgLy8g5Yqg6L295Lit55qE6LWE5rqQXHJcblx0dGhpcy5fZmluaXNoUmVzID0ge307ICAgICAgLy8g5Yqg6L295a6M5oiQ55qE6LWE5rqQXHJcblx0dGhpcy5fcmVzY291bnRlciA9IHt9O1xyXG5cdHRoaXMuX2RlbHJlcyA9IHt9O1xyXG5cclxuICAgIHRoaXMubWFpbmxvb3BfdGltZXIgPSBnY29yZS5UaW1lci5zZXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlKDEwKTtcclxuICAgIH0uYmluZCh0aGlzKSwgMTAwMDAsIC0xKTtcclxuICAgIHRoaXMuX3Rlc3RfbG9hZCA9IHt9O1xyXG4gICAgdGhpcy5fdGVzdF9kZWwgPSB7fTsgICAgXHJcbn1cclxudmFyIHByb3RvID0gQmF0dGxlUmVzUG9vbC5wcm90b3R5cGU7XHJcblxyXG5wcm90by5wcmVMb2FkUmVzID0gZnVuY3Rpb24ocGF0aCwgY2FsbGJhY2spIHtcclxuXHR0aGlzLmdldFJlcyhwYXRoLCBjYWxsYmFjaywgdHJ1ZSk7XHJcbn1cclxuXHJcbnByb3RvLmdldFJlcyA9IGZ1bmN0aW9uKHBhdGgsIGNhbGxiYWNrLCBpc19wcmUpIHtcclxuXHRpZiAoIXBhdGggfHwgIWNhbGxiYWNrKSByZXR1cm47XHJcblxyXG5cdC8vIGlmICghaXNfcHJlKSB7XHJcblx0Ly8gXHRpZiAoIXRoaXMuX3Rlc3RfbG9hZFtwYXRoXSlcclxuXHQvLyBcdFx0dGhpcy5fdGVzdF9sb2FkW3BhdGhdID0gMDtcclxuXHJcblx0Ly8gXHR0aGlzLl90ZXN0X2xvYWRbcGF0aF0rK1x0XHRcclxuXHQvLyB9XHJcblxyXG5cdGlmICh0aGlzLl9kZWxyZXNbcGF0aF0pIHtcclxuXHRcdGRlbGV0ZSB0aGlzLl9kZWxyZXNbcGF0aF1cclxuXHR9XHJcblxyXG5cdGlmICh0aGlzLl9maW5pc2hSZXNbcGF0aF0pIHtcclxuXHRcdGNhbGxiYWNrKHRoaXMuX2ZpbmlzaFJlc1twYXRoXSk7XHJcblx0XHRpZiAoIWlzX3ByZSkge1xyXG5cdFx0XHRpZiAoIXRoaXMuX3Jlc2NvdW50ZXJbcGF0aF0pXHJcblx0XHRcdFx0dGhpcy5fcmVzY291bnRlcltwYXRoXSA9IDA7XHJcblx0XHRcdHRoaXMuX3Jlc2NvdW50ZXJbcGF0aF0gKys7XHJcblx0XHR9XHJcblx0XHRyZXR1cm47XHJcblx0fSBlbHNlIHtcclxuXHRcdHZhciBsb2FkX2luZm8gPSB7fTtcclxuXHRcdGxvYWRfaW5mby5jYWxsYmFjayA9IGNhbGxiYWNrO1xyXG5cdFx0bG9hZF9pbmZvLmlzX3ByZSA9IGlzX3ByZTtcclxuXHRcdGlmICh0aGlzLl9sb2FkZGluZ1Jlc1twYXRoXSAmJiB0aGlzLl9sb2FkZGluZ1Jlc1twYXRoXS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuX2xvYWRkaW5nUmVzW3BhdGhdLnB1c2gobG9hZF9pbmZvKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5fbG9hZGRpbmdSZXNbcGF0aF0gPSBbXTtcclxuXHRcdFx0dGhpcy5fbG9hZGRpbmdSZXNbcGF0aF0ucHVzaChsb2FkX2luZm8pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbiAgICBMb2FkZXJNYW5hZ2VyLmdldEluc3RhbmNlKCkubG9hZFJlcyhwYXRoLCBmdW5jdGlvbiAocGF0aCwgcmVzX29iamVjdCkge1xyXG4gICAgXHR0aGlzLl9maW5pc2hSZXNbcGF0aF0gPSByZXNfb2JqZWN0O1xyXG4gICAgXHRmb3IgKHZhciBjYWxsYmFja19pIGluIHRoaXMuX2xvYWRkaW5nUmVzW3BhdGhdKSB7XHJcbiAgICBcdFx0dmFyIGxvYWRfaW5mbyA9IHRoaXMuX2xvYWRkaW5nUmVzW3BhdGhdW2NhbGxiYWNrX2ldO1xyXG4gICAgXHRcdGlmIChsb2FkX2luZm8uY2FsbGJhY2spXHJcblx0ICAgIFx0XHRsb2FkX2luZm8uY2FsbGJhY2socmVzX29iamVjdCk7XHJcbiAgICBcdFx0aWYgKCFsb2FkX2luZm8uaXNfcHJlKSB7ICAgICAgICAgIC8vIOWmguaenOS4jeaYr+mihOWKoOi9veeahOWImei/m+ihjOW8leeUqOiuoeaVsFxyXG4gICAgXHRcdFx0aWYgKCF0aGlzLl9yZXNjb3VudGVyW3BhdGhdKVxyXG4gICAgXHRcdFx0XHR0aGlzLl9yZXNjb3VudGVyW3BhdGhdID0gMDtcclxuICAgIFx0XHRcdHRoaXMuX3Jlc2NvdW50ZXJbcGF0aF0gKys7XHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLl9kZWxyZXNbcGF0aF0pXHJcblx0XHRcdFx0XHRkZWxldGUgdGhpcy5fZGVscmVzW3BhdGhdXHJcbiAgICBcdFx0fSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOaYr+mihOWKoOi9veeahOaaguaXtuaUvuWIsOWIoOmZpOmYn+WIl1xyXG4gICAgXHRcdFx0aWYgKCF0aGlzLl9yZXNjb3VudGVyW3BhdGhdIHx8IHRoaXMuX3Jlc2NvdW50ZXJbcGF0aF0gPD0gMClcclxuXHQgICAgXHRcdCAgICB0aGlzLmRlbFJlcyhwYXRoKTtcclxuICAgIFx0XHR9XHJcbiAgICBcdH1cclxuICAgIFx0dGhpcy5fbG9hZGRpbmdSZXNbcGF0aF0gPSBbXTtcclxuICAgIH0uYmluZCh0aGlzLCBwYXRoKSlcclxufVxyXG5cclxucHJvdG8uZGVsUmVzID0gZnVuY3Rpb24ocGF0aCkge1xyXG5cdGlmICh0aGlzLl9yZXNjb3VudGVyW3BhdGhdICYmIHRoaXMuX3Jlc2NvdW50ZXJbcGF0aF0gPiAwKSB7XHJcblx0XHR0aGlzLl9yZXNjb3VudGVyW3BhdGhdIC0tO1xyXG5cclxuXHRcdGlmICh0aGlzLl9yZXNjb3VudGVyW3BhdGhdIDw9IDApIHtcdFxyXG5cdFx0XHRpZiAoIXRoaXMuX2RlbHJlc1twYXRoXSlcclxuXHRcdFx0XHR0aGlzLl9kZWxyZXNbcGF0aF0gPSBHQ19USU1FO1xyXG5cdFx0XHRkZWxldGUgdGhpcy5fcmVzY291bnRlcltwYXRoXVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGlmICghdGhpcy5fdGVzdF9kZWxbcGF0aF0pXHJcblx0XHQvLyBcdHRoaXMuX3Rlc3RfZGVsW3BhdGhdID0gMDtcclxuXHRcdC8vIHRoaXMuX3Rlc3RfZGVsW3BhdGhdKytcclxuXHR9XHJcblxyXG59XHJcblxyXG5wcm90by51cGRhdGUgPSBmdW5jdGlvbihkdCkge1xyXG5cdGZvciAodmFyIHJlc19pIGluIHRoaXMuX2RlbHJlcykge1xyXG5cdFx0dGhpcy5fZGVscmVzW3Jlc19pXSAtPSBkdDtcclxuXHJcblx0XHRpZiAodGhpcy5fZGVscmVzW3Jlc19pXSA8IDApIHtcclxuXHRcdFx0TG9hZGVyTWFuYWdlci5nZXRJbnN0YW5jZSgpLnJlbGVhc2VSZXMocmVzX2kpO1xyXG5cdFx0XHRkZWxldGUgdGhpcy5fZGVscmVzW3Jlc19pXVxyXG5cdFx0fVxyXG5cclxuXHJcblx0fVxyXG59XHJcblxyXG5CYXR0bGVSZXNQb29sLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKCFCYXR0bGVSZXNQb29sLmluc3RhbmNlKSB7XHJcbiAgICAgICAgQmF0dGxlUmVzUG9vbC5pbnN0YW5jZSA9IG5ldyBCYXR0bGVSZXNQb29sKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gQmF0dGxlUmVzUG9vbC5pbnN0YW5jZTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCYXR0bGVSZXNQb29sOyJdfQ==
|