@robotlegsjs/phaser
Version:
RobotlegsJS integration with Phaser Scene Manager
61 lines • 3.79 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.PhaserBundle = void 0;
var core_1 = require("@robotlegsjs/core");
var IContextSceneManager_1 = require("../../extensions/contextSceneManager/api/IContextSceneManager");
var ContextSceneManagerExtension_1 = require("../../extensions/contextSceneManager/ContextSceneManagerExtension");
var ContextSceneManager_1 = require("../../extensions/contextSceneManager/impl/ContextSceneManager");
var ContextSceneManagerListenerConfig_1 = require("../../extensions/contextSceneManager/impl/ContextSceneManagerListenerConfig");
var LocalEventEmitterMapExtension_1 = require("../../extensions/localEventEmitterMap/LocalEventEmitterMapExtension");
var SceneMediatorMapExtension_1 = require("../../extensions/mediatorMap/SceneMediatorMapExtension");
var ViewMediatorMapExtension_1 = require("../../extensions/mediatorMap/ViewMediatorMapExtension");
var SceneManagerExtension_1 = require("../../extensions/viewManager/SceneManagerExtension");
var SceneManagerObserverExtension_1 = require("../../extensions/viewManager/SceneManagerObserverExtension");
/**
* For that Classic Robotlegs flavour
*
* <p>This bundle installs a number of extensions commonly used
* in typical Robotlegs applications and modules.</p>
*/
var PhaserBundle = /** @class */ (function () {
function PhaserBundle() {
}
/*============================================================================*/
/* Public Functions */
/*============================================================================*/
/**
* @inheritDoc
*/
PhaserBundle.prototype.extend = function (context) {
this._context = context;
this._logger = context.getLogger(this);
this._context.install(ContextSceneManagerExtension_1.ContextSceneManagerExtension, LocalEventEmitterMapExtension_1.LocalEventEmitterMapExtension, SceneManagerExtension_1.SceneManagerExtension, SceneManagerObserverExtension_1.SceneManagerObserverExtension, SceneMediatorMapExtension_1.SceneMediatorMapExtension, ViewMediatorMapExtension_1.ViewMediatorMapExtension);
this._context.addConfigHandler(core_1.instanceOfType(ContextSceneManager_1.ContextSceneManager), this._handleContextSceneManager.bind(this));
this._context.whenInitializing(this._whenInitializing.bind(this));
this._context.afterDestroying(this._afterDestroying.bind(this));
};
/*============================================================================*/
/* Private Functions */
/*============================================================================*/
PhaserBundle.prototype._handleContextSceneManager = function (contextSceneManager) {
this._context.configure(ContextSceneManagerListenerConfig_1.ContextSceneManagerListenerConfig);
};
PhaserBundle.prototype._whenInitializing = function () {
if (!this._context.injector.isBound(IContextSceneManager_1.IContextSceneManager)) {
this._logger.error("PhaserBundle requires IContextSceneManager.");
}
};
PhaserBundle.prototype._afterDestroying = function () {
this._context = null;
this._logger = null;
};
return PhaserBundle;
}());
exports.PhaserBundle = PhaserBundle;
//# sourceMappingURL=PhaserBundle.js.map