UNPKG

phaser4-rex-plugins

Version:
48 lines (39 loc) 1.04 kB
import Pool from '../../../../pool.js'; const GetValue = Phaser.Utils.Objects.GetValue; var Pools = {}; class PoolManager { constructor(config) { this.pools = GetValue(config, 'pools', Pools); } destroy() { this.pools = undefined; } free(bob) { if (!this.pools) { return this; } var bobType = bob.type; if (!this.pools.hasOwnProperty(bobType)) { this.pools[bobType] = new Pool(); } this.pools[bobType].push(bob); bob.onFree(); return this; } freeMultiple(bobs) { if (!this.pools) { return this; } for (var i = 0, cnt = bobs.length; i < cnt; i++) { this.free(bobs[i]); } return this; } allocate(bobType) { if (!this.pools || !this.pools.hasOwnProperty(bobType)) { return null; } return this.pools[bobType].pop(); } } export default PoolManager;