reldens
Version:
Reldens - MMORPG Platform
80 lines (70 loc) • 2.52 kB
JavaScript
/**
*
* Reldens - Rewards Client Plugin
*
*/
const { PreloaderHandler } = require('./preloader-handler');
const { MessageListener } = require('./message-listener');
const { MessageProcessor } = require('./messages-processor');
const { RewardsConst } = require('../constants');
const Translations = require('./snippets/en_US');
const { TranslationsMapper } = require('../../snippets/client/translations-mapper');
const { PluginInterface } = require('../../features/plugin-interface');
const { Logger, sc } = require('@reldens/utils');
class RewardsPlugin extends PluginInterface
{
setup(props)
{
this.gameManager = sc.get(props, 'gameManager', false);
this.events = sc.get(props, 'events', false);
this.preloaderHandler = new PreloaderHandler();
this.messageListener = new MessageListener();
if(this.validateProperties()){
this.setTranslations();
this.listenEvents();
this.listenMessages();
Logger.debug('Plugin READY: Rewards');
}
}
validateProperties()
{
if(!this.gameManager){
Logger.error('Game Manager undefined in RewardsPlugin.');
return false;
}
if(!this.events){
Logger.error('EventsManager undefined in RewardsPlugin.');
return false;
}
return true;
}
setTranslations()
{
if(!this.gameManager){
return false;
}
TranslationsMapper.forConfig(this.gameManager.config.client, Translations, RewardsConst.MESSAGE.DATA_VALUES);
}
listenEvents()
{
if(!this.events){
Logger.error('EventsManager undefined in RewardsPlugin for "listenEvents".');
return;
}
this.events.on('reldens.preloadUiScene', (preloadScene) => {
this.preloaderHandler.loadContents(preloadScene);
});
this.events.on('reldens.createEngineSceneDone', (event) => {
MessageProcessor.processRewardsMessagesQueue(event, this);
});
}
listenMessages()
{
if(!this.gameManager || !this.events){
Logger.error('Game Manager or EventsManager undefined in RewardsPlugin for "listenMessages".');
return;
}
this.gameManager.config.client.message.listeners[RewardsConst.KEY] = this.messageListener;
}
}
module.exports.RewardsPlugin = RewardsPlugin;