difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
 
                (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==