|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- //Globals
- global.extend = require('../misc/clone');
- global.io = require('../db/io');
- global._ = require('../misc/helpers');
- global.consts = require('../config/consts');
- global.instancer = require('./instancer');
- global.eventManager = require('../events/events');
- global.clientConfig = require('../config/clientConfig');
- global.rezoneManager = require('./rezoneManager');
-
- //Imports
- const components = require('../components/components');
- const mods = require('../misc/mods');
- const animations = require('../config/animations');
- const skins = require('../config/skins');
- const factions = require('../config/factions');
- const classes = require('../config/spirits');
- const spellsConfig = require('../config/spellsConfig');
- const spells = require('../config/spells');
- const recipes = require('../config/recipes/recipes');
- const itemTypes = require('../items/config/types');
- const mapManager = require('../world/mapManager');
- const itemEffects = require('../items/itemEffects');
- const profanities = require('../misc/profanities');
- const eventEmitter = require('../misc/events');
-
- //Worker
- instancer.mapName = process.argv[2];
-
- const onCpnsReady = async function () {
- factions.init();
- skins.init();
- animations.init();
- classes.init();
- spellsConfig.init();
- spells.init();
- itemTypes.init();
- mapManager.init();
- recipes.init();
- itemEffects.init();
- profanities.init();
- rezoneManager.init();
-
- await clientConfig.init();
-
- process.send({
- method: 'onReady'
- });
- };
-
- const onModsReady = function () {
- components.init(onCpnsReady);
- };
-
- const onCrash = async e => {
- if (e.toString().indexOf('ERR_IPC_CHANNEL_CLOSED') > -1)
- return;
-
- _.log('Error Logged: ' + e.toString());
- _.log(e.stack);
-
- await io.setAsync({
- key: new Date(),
- table: 'error',
- value: e.toString() + ' | ' + e.stack.toString()
- });
-
- process.send({
- event: 'onCrashed'
- });
- };
-
- const onDbReady = async function () {
- require('../misc/random');
-
- process.on('uncaughtException', onCrash);
- process.on('unhandledRejection', onCrash);
-
- await mods.init();
-
- onModsReady();
- };
-
- io.init(onDbReady);
-
- process.on('message', m => {
- if (m.module) {
- const instances = instancer.instances;
- const iLen = instances.length;
- for (let i = 0; i < iLen; i++) {
- const objects = instances[i].objects.objects;
- const oLen = objects.length;
- let found = false;
- for (let j = 0; j < oLen; j++) {
- const object = objects[j];
-
- if (object.name === m.args[0]) {
- const mod = object.instance[m.module];
- mod[m.method].apply(mod, m.args);
-
- found = true;
- break;
- }
- }
- if (found)
- break;
- }
- } else if (m.threadModule)
- global[m.threadModule][m.method](m.data);
- else if (m.method)
- instancer[m.method](m.args);
- else if (m.event)
- eventEmitter.emit(m.event, m.data);
- });
|