UNPKG

@robotlegsjs/phaser

Version:

RobotlegsJS integration with Phaser Scene Manager

58 lines 3.06 kB
"use strict"; // ------------------------------------------------------------------------------ // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved. // // NOTICE: You are permitted to use, modify, and distribute this file // in accordance with the terms of the license agreement accompanying it. // ------------------------------------------------------------------------------ Object.defineProperty(exports, "__esModule", { value: true }); exports.ContextSceneManagerExtension = void 0; var core_1 = require("@robotlegsjs/core"); var IContextSceneManager_1 = require("./api/IContextSceneManager"); var ContextSceneManager_1 = require("./impl/ContextSceneManager"); /** * <p>This Extension waits for a ContextSceneManager to be added as a configuration * and maps it into the context's injector.</p> * * <p>It should be installed before context initialization.</p> */ var ContextSceneManagerExtension = /** @class */ (function () { function ContextSceneManagerExtension() { } /*============================================================================*/ /* Public Functions */ /*============================================================================*/ /** * @inheritDoc */ ContextSceneManagerExtension.prototype.extend = function (context) { this._injector = context.injector; this._logger = context.getLogger(this); context.beforeInitializing(this._beforeInitializing.bind(this)); context.addConfigHandler(core_1.instanceOfType(ContextSceneManager_1.ContextSceneManager), this._handleContextSceneManager.bind(this)); }; /*============================================================================*/ /* Private Functions */ /*============================================================================*/ ContextSceneManagerExtension.prototype._handleContextSceneManager = function (contextSceneManager) { if (this._injector.isBound(IContextSceneManager_1.IContextSceneManager)) { this._logger.warn("A contextSceneManager has already been installed, ignoring {0}", [ contextSceneManager.sceneManager ]); } else { this._logger.debug("Mapping {0} as contextSceneManager", [ contextSceneManager.sceneManager ]); this._injector.bind(IContextSceneManager_1.IContextSceneManager).toConstantValue(contextSceneManager); } }; ContextSceneManagerExtension.prototype._beforeInitializing = function () { if (!this._injector.isBound(IContextSceneManager_1.IContextSceneManager)) { this._logger.error("A ContextSceneManager must be installed if you install the ContextSceneManagerExtension."); } }; return ContextSceneManagerExtension; }()); exports.ContextSceneManagerExtension = ContextSceneManagerExtension; //# sourceMappingURL=ContextSceneManagerExtension.js.map