/** * The GameObject Factory is a global level container of Factory instances. * Factories register themselves with this container (when required) * * @class Phaser.GameObject.Factory * @constructor * @param {Phaser.Game} game - A reference to the currently running game. */ var factories = {}; var FactoryContainer = function () { this.register = function (factory) { if (factories.hasOwnProperty(factory.KEY)) { return this.getType(factory.KEY); } else { factories[factory.KEY] = { add: factory.add, make: factory.make }; return factory; } }; this.getType = function (key) { return factories[key]; }; this.load = function (dest, isFactory) { for (var factory in factories) { if (factories.hasOwnProperty(factory)) { dest[factory] = (isFactory) ? factories[factory].add : factories[factory].make; } } return dest; }; return this; }; module.exports = FactoryContainer();