1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/script/frameWork/Pool/PoolManager.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, 'cfcf6785mVJ+JmIPHtzQrkV', 'PoolManager');
- // script/frameWork/Pool/PoolManager.ts
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.PoolManager = void 0;
- /**
- * 全局对象池管理
- */
- var PoolManager = /** @class */ (function () {
- function PoolManager() {
- this._poolMap = new Map();
- }
- PoolManager.prototype.GetCount = function () {
- throw new Error("Method not implemented.");
- };
- PoolManager.prototype.CreatePool = function (poolName) {
- if (this._poolMap[poolName]) {
- console.warn('对象池已经存在,无需重复创建!');
- return null;
- }
- var pool = new cc.NodePool();
- this._poolMap[poolName] = pool;
- return pool;
- };
- PoolManager.prototype.CreatePrePool = function (poolName, prefab, maxNum) {
- if (this._poolMap[poolName]) {
- console.warn('对象池已经存在,无需重复创建!');
- return null;
- }
- var pool = new cc.NodePool();
- this._poolMap[poolName] = pool;
- for (var i = 0; i < maxNum; i++) {
- var node = cc.instantiate(prefab);
- pool.put(node);
- }
- };
- PoolManager.prototype.GetPool = function (poolName) {
- if (this._poolMap[poolName]) {
- return this._poolMap[poolName];
- }
- else {
- return this.CreatePool(poolName);
- }
- };
- PoolManager.prototype.ReleasePool = function (poolName) {
- if (this._poolMap[poolName]) {
- this._poolMap[poolName].clear();
- }
- // else {
- // console.error(`对象池${poolName}不存在`);
- // }
- };
- PoolManager.prototype.ReleaseAllPool = function () {
- for (var key in this._poolMap) {
- this._poolMap[key].clear();
- }
- };
- return PoolManager;
- }());
- exports.PoolManager = PoolManager;
- 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvZnJhbWVXb3JrL1Bvb2wvUG9vbE1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7O0dBRUc7QUFDSDtJQUFBO1FBQ1csYUFBUSxHQUE2QixJQUFJLEdBQUcsRUFBdUIsQ0FBQztJQW9EL0UsQ0FBQztJQWxERyw4QkFBUSxHQUFSO1FBQ0ksTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxnQ0FBVSxHQUFWLFVBQVcsUUFBZ0I7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELG1DQUFhLEdBQWIsVUFBYyxRQUFnQixFQUFFLE1BQWlCLEVBQUUsTUFBYztRQUM3RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQjtJQUNMLENBQUM7SUFFRCw2QkFBTyxHQUFQLFVBQVEsUUFBZ0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsQzthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVELGlDQUFXLEdBQVgsVUFBWSxRQUFnQjtRQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNuQztRQUNELFNBQVM7UUFDVCwwQ0FBMEM7UUFDMUMsSUFBSTtJQUNSLENBQUM7SUFFRCxvQ0FBYyxHQUFkO1FBQ0ksS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUwsa0JBQUM7QUFBRCxDQXJEQSxBQXFEQyxJQUFBO0FBckRZLGtDQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBJT2JqZWN0UG9vbE1hbmFnZXIgfSBmcm9tIFwiLi9JT2JqZWN0UG9vbE1hbmFnZXJcIjtcbi8qKlxuICog5YWo5bGA5a+56LGh5rGg566h55CGXG4gKi9cbmV4cG9ydCBjbGFzcyBQb29sTWFuYWdlciBpbXBsZW1lbnRzIElPYmplY3RQb29sTWFuYWdlciB7XG4gICAgcHVibGljIF9wb29sTWFwOiBNYXA8c3RyaW5nLCBjYy5Ob2RlUG9vbD4gPSBuZXcgTWFwPHN0cmluZywgY2MuTm9kZVBvb2w+KCk7XG5cbiAgICBHZXRDb3VudCgpOiBudW1iZXIge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBDcmVhdGVQb29sKHBvb2xOYW1lOiBzdHJpbmcpOiBjYy5Ob2RlUG9vbCB7XG4gICAgICAgIGlmICh0aGlzLl9wb29sTWFwW3Bvb2xOYW1lXSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCflr7nosaHmsaDlt7Lnu4/lrZjlnKjvvIzml6DpnIDph43lpI3liJvlu7ohJyk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcG9vbCA9IG5ldyBjYy5Ob2RlUG9vbCgpO1xuICAgICAgICB0aGlzLl9wb29sTWFwW3Bvb2xOYW1lXSA9IHBvb2w7XG4gICAgICAgIHJldHVybiBwb29sO1xuICAgIH1cblxuICAgIENyZWF0ZVByZVBvb2wocG9vbE5hbWU6IHN0cmluZywgcHJlZmFiOiBjYy5QcmVmYWIsIG1heE51bTogbnVtYmVyKTogY2MuTm9kZVBvb2wge1xuICAgICAgICBpZiAodGhpcy5fcG9vbE1hcFtwb29sTmFtZV0pIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybign5a+56LGh5rGg5bey57uP5a2Y5Zyo77yM5peg6ZyA6YeN5aSN5Yib5bu6IScpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBvb2wgPSBuZXcgY2MuTm9kZVBvb2woKTtcbiAgICAgICAgdGhpcy5fcG9vbE1hcFtwb29sTmFtZV0gPSBwb29sO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1heE51bTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgbm9kZSA9IGNjLmluc3RhbnRpYXRlKHByZWZhYik7XG4gICAgICAgICAgICBwb29sLnB1dChub2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEdldFBvb2wocG9vbE5hbWU6IHN0cmluZyk6IGNjLk5vZGVQb29sIHtcbiAgICAgICAgaWYgKHRoaXMuX3Bvb2xNYXBbcG9vbE5hbWVdKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9vbE1hcFtwb29sTmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5DcmVhdGVQb29sKHBvb2xOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFJlbGVhc2VQb29sKHBvb2xOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX3Bvb2xNYXBbcG9vbE5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLl9wb29sTWFwW3Bvb2xOYW1lXS5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVsc2Uge1xuICAgICAgICAvLyAgICAgY29uc29sZS5lcnJvcihg5a+56LGh5rGgJHtwb29sTmFtZX3kuI3lrZjlnKhgKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIFJlbGVhc2VBbGxQb29sKCkge1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fcG9vbE1hcCkge1xuICAgICAgICAgICAgdGhpcy5fcG9vbE1hcFtrZXldLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iXX0=
|