@robotlegsjs/phaser
Version:
RobotlegsJS integration with Phaser Scene Manager
58 lines • 3.06 kB
JavaScript
;
// ------------------------------------------------------------------------------
// 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