@rpgjs/server 3.0.0-beta.2 → 3.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/Scenes/Map.js CHANGED
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
9
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
10
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -12,7 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
18
  exports.SceneMap = void 0;
13
19
  const common_1 = require("@rpgjs/common");
14
20
  const sync_server_1 = require("@rpgjs/sync-server");
15
- const Event_1 = require("../Event");
21
+ const map_1 = require("../decorators/map");
22
+ const Map_1 = require("../Game/Map");
16
23
  class SceneMap {
17
24
  constructor(maps, server) {
18
25
  this.maps = maps;
@@ -21,16 +28,18 @@ class SceneMap {
21
28
  this.mapsById = {};
22
29
  if (this.maps) {
23
30
  for (let map of this.maps) {
24
- this.mapsById[map.id] = map;
31
+ this.createDynamicMap(map);
25
32
  }
26
33
  }
27
34
  }
28
35
  getMapBydId(id) {
29
- const mapClass = this.mapsById[id];
36
+ let mapClass = this.mapsById[id];
30
37
  if (!mapClass) {
31
38
  console.log(`Map ${id} not exists`);
32
39
  return false;
33
40
  }
41
+ if (!common_1.Utils.isClass(mapClass))
42
+ mapClass = common_1.Utils.createConstructor(mapClass);
34
43
  return mapClass;
35
44
  }
36
45
  loadMap(id) {
@@ -50,16 +59,50 @@ class SceneMap {
50
59
  return mapInstance;
51
60
  });
52
61
  }
62
+ /**
63
+ * Create a dynamic map
64
+ *
65
+ * @method sceneMap.createDynamicMap(mapData)
66
+ * @title Create a dynamic map
67
+ * @param {object | RpgMap} mapData The same property as [@MapData decorator](https://docs.rpgjs.dev/classes/map.html#mapdata-decorator)
68
+ * @returns {void}
69
+ * @since 3.0.0-beta.4
70
+ * @memberof SceneMap
71
+ * @example
72
+ * ```ts
73
+ * sceneMap.createDynamicMap({
74
+ * id: 'myid',
75
+ * file: require('./tmx/mymap.tmx')
76
+ * })
77
+ * ```
78
+ *
79
+ * And later, on the player:
80
+ *
81
+ * ```ts
82
+ * player.changeMap('myid')
83
+ * ```
84
+ */
85
+ createDynamicMap(mapData) {
86
+ if (!common_1.Utils.isClass(mapData)) {
87
+ let DynamicMap = class DynamicMap extends Map_1.RpgMap {
88
+ };
89
+ DynamicMap = __decorate([
90
+ map_1.MapData(mapData)
91
+ ], DynamicMap);
92
+ mapData = DynamicMap;
93
+ }
94
+ mapData.id = mapData.id || common_1.Utils.generateUID();
95
+ this.mapsById[mapData.id] = mapData;
96
+ }
53
97
  changeMap(mapId, player, positions) {
54
98
  return __awaiter(this, void 0, void 0, function* () {
55
99
  player.prevMap = player.map;
56
- player.map = mapId;
57
- player.events = [];
58
100
  if (player.prevMap) {
101
+ player.execMethod('onLeaveMap', [player.getCurrentMap()]);
59
102
  sync_server_1.World.leaveRoom(player.prevMap, player.id);
60
- player.execMethod('onLeave', [player], player.mapInstance);
61
- player.execMethod('onLeaveMap', [player.mapInstance]);
62
103
  }
104
+ player.map = mapId;
105
+ player.events = [];
63
106
  const mapInstance = yield this.loadMap(mapId);
64
107
  if (!player.height)
65
108
  player.height = mapInstance.tileHeight;
@@ -79,12 +122,10 @@ class SceneMap {
79
122
  player.loadScene('map', Object.assign({ id: mapId, sounds: mapInstance.sounds }, serializeMap));
80
123
  sync_server_1.World.joinRoom(mapId, player.id);
81
124
  player = sync_server_1.World.getUser(player.id);
82
- player.execMethod('onEnter', [player, player.prevMap || null], mapInstance);
83
- player.execMethod('onJoinMap', [mapInstance]);
84
- player.teleport(positions || 'start');
85
- player.events = mapInstance.createEvents(mapInstance._events, Event_1.EventMode.Scenario);
86
- for (let key in player.events) {
87
- player.events[key].execMethod('onInit', [player]);
125
+ if (player) {
126
+ player.teleport(positions || 'start');
127
+ player.createDynamicEvent(mapInstance._events, false);
128
+ player.execMethod('onJoinMap', [mapInstance]);
88
129
  }
89
130
  return mapInstance;
90
131
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Scenes/Map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Scenes/Map.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- interface MapOptions {
1
+ export interface MapOptions {
2
2
  /**
3
3
  * Map identifier. Allows to go to the map (for example with player.changeMap())
4
4
  *
5
- * @prop {string} id
5
+ * @prop {string} [id]
6
6
  * @memberof MapData
7
7
  * */
8
- id: string;
8
+ id?: string;
9
9
  /**
10
10
  * the path to the .tmx file (Tiled Map Editor)
11
11
  *
@@ -58,7 +58,7 @@ interface MapOptions {
58
58
  * events: [{ event: NpcEvent, x: 10, y: 30 }]
59
59
  * ```
60
60
  *
61
- * @prop {Array<Class RpgEvent> | { event: Class RpgEvent, x: number, y: number }} [events]
61
+ * @prop {Class of RpgEvent[] | { event: Class RpgEvent, x: number, y: number }} [events]
62
62
  * @memberof MapData
63
63
  * */
64
64
  events?: {
@@ -158,4 +158,3 @@ interface MapOptions {
158
158
  syncSchema?: any;
159
159
  }
160
160
  export declare function MapData(options: MapOptions): (target: any) => void;
161
- export {};
@@ -27,6 +27,10 @@ function MapData(options) {
27
27
  },
28
28
  w: Number,
29
29
  h: Number
30
+ },
31
+ properties: {
32
+ collision: Boolean,
33
+ color: String
30
34
  }
31
35
  }
32
36
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/decorators/map.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAmK5C,SAAgB,OAAO,CAAC,OAAmB;IACvC,OAAO,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAC1B,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QACtB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAA;QACnB,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAExC,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAA;QAE7B,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAA;SAChD;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG;gBAC9B;oBACI,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE;wBACJ,GAAG,EAAE;4BACD,CAAC,EAAE,MAAM;4BACT,CAAC,EAAE,MAAM;yBACZ;wBACD,CAAC,EAAE,MAAM;wBACT,CAAC,EAAE,MAAM;qBACZ;iBACJ;aACJ,CAAA;SACJ;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;YACjC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,kBAAS,CAAC,OAAO,CAAC,CAAA;SACvD;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,kBAAS,CAAC,OAAO,CAAC,CAAA;SACxD;QAED,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7C,CAAC,CAAA;AACL,CAAC;AAxCD,0BAwCC"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/decorators/map.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAmK5C,SAAgB,OAAO,CAAC,OAAmB;IACvC,OAAO,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAC1B,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QACtB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAA;QACnB,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAExC,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAA;QAE7B,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAA;SAChD;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG;gBAC9B;oBACI,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE;wBACJ,GAAG,EAAE;4BACD,CAAC,EAAE,MAAM;4BACT,CAAC,EAAE,MAAM;yBACZ;wBACD,CAAC,EAAE,MAAM;wBACT,CAAC,EAAE,MAAM;qBACZ;oBACD,UAAU,EAAE;wBACR,SAAS,EAAE,OAAO;wBAClB,KAAK,EAAE,MAAM;qBAChB;iBACJ;aACJ,CAAA;SACJ;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;YACjC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,kBAAS,CAAC,OAAO,CAAC,CAAA;SACvD;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,kBAAS,CAAC,OAAO,CAAC,CAAA;SACxD;QAED,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7C,CAAC,CAAA;AACL,CAAC;AA5CD,0BA4CC"}
@@ -27,6 +27,7 @@ interface RpgServerEntryPointOptions {
27
27
  * @memberof RpgServerEntryPoint
28
28
  * */
29
29
  globalConfig?: any;
30
+ workers: any;
30
31
  }
31
32
  export default function (modules: ModuleType[], options: RpgServerEntryPointOptions): RpgServerEngine;
32
33
  export {};
@@ -13,10 +13,14 @@ function default_1(modules, options) {
13
13
  onLeaveMap: common_1.HookServer.PlayerLeaveMap,
14
14
  onLevelUp: common_1.HookServer.PlayerLevelUp,
15
15
  onDead: common_1.HookServer.PlayerDead,
16
- onDisconnected: common_1.HookServer.PlayerDisconnected
16
+ onDisconnected: common_1.HookServer.PlayerDisconnected,
17
+ onInShape: common_1.HookServer.PlayerInShape,
18
+ onOutShape: common_1.HookServer.PlayerOutShape,
19
+ onMove: common_1.HookServer.PlayerMove
17
20
  };
18
21
  const relationsEngine = {
19
- onStart: common_1.HookServer.Start
22
+ onStart: common_1.HookServer.Start,
23
+ onStep: common_1.HookServer.Step
20
24
  };
21
25
  common_1.loadModules(modules, {
22
26
  side: 'server',
@@ -1 +1 @@
1
- {"version":3,"file":"entry-point.js","sourceRoot":"","sources":["../src/entry-point.ts"],"names":[],"mappings":";;AAAA,0CAAkF;AAClF,qCAA0C;AAiC1C,mBAAwB,OAAqB,EAAE,OAAmC;IAC9E,MAAM,UAAU,GAAG,IAAI,sBAAa,CAAC,QAAQ,CAAC,CAAA;IAE9C,IAAI,CAAC,OAAO,CAAC,YAAY;QAAE,OAAO,CAAC,YAAY,GAAG,EAAE,CAAA;IAEpD,MAAM,SAAS,GAAG;QACd,WAAW,EAAE,mBAAU,CAAC,eAAe;QACvC,OAAO,EAAE,mBAAU,CAAC,WAAW;QAC/B,SAAS,EAAE,mBAAU,CAAC,aAAa;QACnC,UAAU,EAAE,mBAAU,CAAC,cAAc;QACrC,SAAS,EAAE,mBAAU,CAAC,aAAa;QACnC,MAAM,EAAE,mBAAU,CAAC,UAAU;QAC7B,cAAc,EAAE,mBAAU,CAAC,kBAAkB;KAChD,CAAA;IAED,MAAM,eAAe,GAAG;QACpB,OAAO,EAAE,mBAAU,CAAC,KAAK;KAC5B,CAAA;IAED,oBAAW,CAAC,OAAO,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACP,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,eAAe;SAC1B;KACJ,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,IAAI,wBAAe,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,kBAC3D,KAAK,EAAE,EAAE,EACT,UAAU,EAAE,EAAE,EACd,QAAQ,EAAE,EAAE,EACZ,eAAe,EAAE,CAAC,EAClB,gBAAgB,EAAE,KAAK,IACpB,OAAO,EACZ,CAAA;IACF,OAAO,YAAY,CAAA;AACvB,CAAC;AApCD,4BAoCC"}
1
+ {"version":3,"file":"entry-point.js","sourceRoot":"","sources":["../src/entry-point.ts"],"names":[],"mappings":";;AAAA,0CAAkF;AAClF,qCAA0C;AAmC1C,mBAAwB,OAAqB,EAAE,OAAmC;IAC9E,MAAM,UAAU,GAAG,IAAI,sBAAa,CAAC,QAAQ,CAAC,CAAA;IAE9C,IAAI,CAAC,OAAO,CAAC,YAAY;QAAE,OAAO,CAAC,YAAY,GAAG,EAAE,CAAA;IAEpD,MAAM,SAAS,GAAG;QACd,WAAW,EAAE,mBAAU,CAAC,eAAe;QACvC,OAAO,EAAE,mBAAU,CAAC,WAAW;QAC/B,SAAS,EAAE,mBAAU,CAAC,aAAa;QACnC,UAAU,EAAE,mBAAU,CAAC,cAAc;QACrC,SAAS,EAAE,mBAAU,CAAC,aAAa;QACnC,MAAM,EAAE,mBAAU,CAAC,UAAU;QAC7B,cAAc,EAAE,mBAAU,CAAC,kBAAkB;QAC7C,SAAS,EAAE,mBAAU,CAAC,aAAa;QACnC,UAAU,EAAE,mBAAU,CAAC,cAAc;QACrC,MAAM,EAAE,mBAAU,CAAC,UAAU;KAChC,CAAA;IAED,MAAM,eAAe,GAAG;QACpB,OAAO,EAAE,mBAAU,CAAC,KAAK;QACzB,MAAM,EAAE,mBAAU,CAAC,IAAI;KAC1B,CAAA;IAED,oBAAW,CAAC,OAAO,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACP,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,eAAe;SAC1B;KACJ,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,IAAI,wBAAe,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,kBAC3D,KAAK,EAAE,EAAE,EACT,UAAU,EAAE,EAAE,EACd,QAAQ,EAAE,EAAE,EACZ,eAAe,EAAE,CAAC,EAClB,gBAAgB,EAAE,KAAK,IACpB,OAAO,EACZ,CAAA;IACF,OAAO,YAAY,CAAA;AACvB,CAAC;AAxCD,4BAwCC"}
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import entryPoint from './entry-point';
2
- import { Direction, Input, Control, RpgPlugin, HookServer, HookClient, RpgModule } from '@rpgjs/common';
2
+ import { Direction, Input, Control, RpgPlugin, HookServer, HookClient, RpgModule, RpgShape, ShapePositioning } from '@rpgjs/common';
3
3
  import { RpgServer, RpgPlayerHooks, RpgServerEngineHooks } from './RpgServer';
4
4
  import { EventData } from './decorators/event';
5
5
  import { MapData } from './decorators/map';
@@ -12,4 +12,4 @@ import Monitor from './Monitor';
12
12
  import * as Presets from './presets';
13
13
  import { Move } from './Player/MoveManager';
14
14
  import { RpgServerEngine } from './server';
15
- export { RpgServer, RpgEvent, RpgPlayer, RpgPlugin, RpgMap, RpgEnemy, MapData, EventData, Query as RpgWorld, Query, entryPoint, Presets, Monitor, Move, EventMode, Direction, Input, Control, HookServer, HookClient, RpgModule, RpgPlayerHooks, RpgServerEngineHooks, RpgServerEngine };
15
+ export { RpgServer, RpgEvent, RpgPlayer, RpgPlugin, RpgMap, RpgEnemy, MapData, EventData, Query as RpgWorld, Query, entryPoint, Presets, Monitor, Move, EventMode, Direction, Input, Control, HookServer, HookClient, RpgModule, RpgPlayerHooks, RpgServerEngineHooks, RpgServerEngine, RpgShape, ShapePositioning };
package/lib/index.js CHANGED
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.RpgServerEngine = exports.RpgModule = exports.HookClient = exports.HookServer = exports.Control = exports.Input = exports.Direction = exports.EventMode = exports.Move = exports.Monitor = exports.Presets = exports.entryPoint = exports.Query = exports.RpgWorld = exports.EventData = exports.MapData = exports.RpgEnemy = exports.RpgMap = exports.RpgPlugin = exports.RpgPlayer = exports.RpgEvent = void 0;
25
+ exports.ShapePositioning = exports.RpgShape = exports.RpgServerEngine = exports.RpgModule = exports.HookClient = exports.HookServer = exports.Control = exports.Input = exports.Direction = exports.EventMode = exports.Move = exports.Monitor = exports.Presets = exports.entryPoint = exports.Query = exports.RpgWorld = exports.EventData = exports.MapData = exports.RpgEnemy = exports.RpgMap = exports.RpgPlugin = exports.RpgPlayer = exports.RpgEvent = void 0;
26
26
  const entry_point_1 = __importDefault(require("./entry-point"));
27
27
  exports.entryPoint = entry_point_1.default;
28
28
  const common_1 = require("@rpgjs/common");
@@ -33,6 +33,8 @@ Object.defineProperty(exports, "RpgPlugin", { enumerable: true, get: function ()
33
33
  Object.defineProperty(exports, "HookServer", { enumerable: true, get: function () { return common_1.HookServer; } });
34
34
  Object.defineProperty(exports, "HookClient", { enumerable: true, get: function () { return common_1.HookClient; } });
35
35
  Object.defineProperty(exports, "RpgModule", { enumerable: true, get: function () { return common_1.RpgModule; } });
36
+ Object.defineProperty(exports, "RpgShape", { enumerable: true, get: function () { return common_1.RpgShape; } });
37
+ Object.defineProperty(exports, "ShapePositioning", { enumerable: true, get: function () { return common_1.ShapePositioning; } });
36
38
  const event_1 = require("./decorators/event");
37
39
  Object.defineProperty(exports, "EventData", { enumerable: true, get: function () { return event_1.EventData; } });
38
40
  const map_1 = require("./decorators/map");
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAsC;AA0BlC,qBA1BG,qBAAU,CA0BH;AAzBd,0CAAuG;AA8BnG,0FA9BK,kBAAS,OA8BL;AACT,sFA/BgB,cAAK,OA+BhB;AACL,wFAhCuB,gBAAO,OAgCvB;AAdP,0FAlBgC,kBAAS,OAkBhC;AAeT,2FAjC2C,mBAAU,OAiC3C;AACV,2FAlCuD,mBAAU,OAkCvD;AACV,0FAnCmE,kBAAS,OAmCnE;AAjCb,8CAA8C;AAoB1C,0FApBK,iBAAS,OAoBL;AAnBb,0CAA0C;AAkBtC,wFAlBK,aAAO,OAkBL;AAjBX,oCAAmC;AAe/B,uFAfK,YAAM,OAeL;AAdV,mCAA6C;AAWzC,yFAXK,gBAAQ,OAWL;AAaR,0FAxBe,iBAAS,OAwBf;AAvBb,4CAA2C;AAWvC,0FAXK,kBAAS,OAWL;AAVb,oDAA8B;AAa1B,mBAbG,eAAQ,CAaH;AAZZ,mCAA+B;AAelB,yFAfJ,aAAK,OAeO;AACjB,sFAhBK,aAAK,OAgBL;AAfT,wDAA+B;AAkB3B,kBAlBG,iBAAO,CAkBH;AAjBX,mDAAoC;AAgBhC,0BAAO;AAfX,sDAA2C;AAiBvC,qFAjBK,kBAAI,OAiBL;AAhBR,qCAA0C;AA0BtC,gGA1BK,wBAAe,OA0BL"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAsC;AAoClC,qBApCG,qBAAU,CAoCH;AAnCd,0CAUsB;AA8BlB,0FAvCA,kBAAS,OAuCA;AACT,sFAvCA,cAAK,OAuCA;AACL,wFAvCA,gBAAO,OAuCA;AAdP,0FAxBA,kBAAS,OAwBA;AAeT,2FAtCA,mBAAU,OAsCA;AACV,2FAtCA,mBAAU,OAsCA;AACV,0FAtCA,kBAAS,OAsCA;AAIT,yFAzCA,iBAAQ,OAyCA;AACR,iGAzCA,yBAAgB,OAyCA;AAtCpB,8CAA8C;AAoB1C,0FApBK,iBAAS,OAoBL;AAnBb,0CAA0C;AAkBtC,wFAlBK,aAAO,OAkBL;AAjBX,oCAAmC;AAe/B,uFAfK,YAAM,OAeL;AAdV,mCAA6C;AAWzC,yFAXK,gBAAQ,OAWL;AAaR,0FAxBe,iBAAS,OAwBf;AAvBb,4CAA2C;AAWvC,0FAXK,kBAAS,OAWL;AAVb,oDAA8B;AAa1B,mBAbG,eAAQ,CAaH;AAZZ,mCAA+B;AAelB,yFAfJ,aAAK,OAeO;AACjB,sFAhBK,aAAK,OAgBL;AAfT,wDAA+B;AAkB3B,kBAlBG,iBAAO,CAkBH;AAjBX,mDAAoC;AAgBhC,0BAAO;AAfX,sDAA2C;AAiBvC,qFAjBK,kBAAI,OAiBL;AAhBR,qCAA0C;AA0BtC,gGA1BK,wBAAe,OA0BL"}
package/lib/server.d.ts CHANGED
@@ -1,7 +1,8 @@
1
+ import { WorldClass } from '@rpgjs/sync-server';
1
2
  export declare class RpgServerEngine {
2
3
  io: any;
3
4
  gameEngine: any;
4
- private inputOptions;
5
+ inputOptions: any;
5
6
  /**
6
7
  * Express App Instance. If you have assigned this variable before starting the game, you can get the instance of Express
7
8
  *
@@ -35,6 +36,9 @@ export declare class RpgServerEngine {
35
36
  private scenes;
36
37
  protected totalConnected: number;
37
38
  private scheduler;
39
+ private tick;
40
+ world: WorldClass;
41
+ workers: any;
38
42
  /**
39
43
  * Combat formulas
40
44
  *
@@ -43,17 +47,57 @@ export declare class RpgServerEngine {
43
47
  */
44
48
  constructor(io: any, gameEngine: any, inputOptions: any);
45
49
  private _init;
50
+ /**
51
+ * Adds data to the server's database (in RAM) for later use
52
+ *
53
+ * @method server.addInDatabase(id,data)
54
+ * @title Add in database
55
+ * @param {number} id resource id
56
+ * @param {class} dataClass A class representing the data
57
+ * @since 3.0.0-beta.4
58
+ * @example
59
+ * ```ts
60
+ * @Item({
61
+ * name: 'Potion',
62
+ * description: 'Gives 100 HP',
63
+ * })
64
+ * class MyItem() {}
65
+ *
66
+ * server.addInDatabase('dynamic_item', MyItem)
67
+ * ```
68
+ * @returns {void}
69
+ * @memberof RpgServerEngine
70
+ */
71
+ addInDatabase(id: string, dataClass: any): void;
46
72
  /**
47
73
  * Start the RPG server
48
74
  *
49
75
  * @method server.start()
76
+ * @title Start Server
50
77
  * @returns {void}
51
78
  * @memberof RpgServerEngine
52
79
  */
53
- start(inputOptions?: any): Promise<void>;
54
- step(): void;
80
+ start(inputOptions?: any, scheduler?: boolean): Promise<void>;
81
+ /**
82
+ * Sends all packages to clients. The sending is done automatically but you can decide to send yourself by calling this method (for example, for unit tests)
83
+ *
84
+ * @method server.send()
85
+ * @title Send All Packets
86
+ * @returns {void}
87
+ * @memberof RpgServerEngine
88
+ */
89
+ send(): void;
90
+ private updatePlayersMove;
91
+ step(t: number, dt: number): void;
55
92
  private loadScenes;
56
93
  getScene(name: string): any;
94
+ /**
95
+ * Return the scene that manages the maps of the game
96
+ * @prop {SceneMap} [sceneMap]
97
+ * @since 3.0.0-beta.4
98
+ * @memberof RpgServerEngine
99
+ */
100
+ get sceneMap(): any;
57
101
  sendToPlayer(currentPlayer: any, eventName: any, data: any): void;
58
102
  private onPlayerConnected;
59
103
  /**
package/lib/server.js CHANGED
@@ -16,7 +16,6 @@ const Query_1 = require("./Query");
16
16
  const presets_1 = require("./presets");
17
17
  const sync_server_1 = require("@rpgjs/sync-server");
18
18
  const common_1 = require("@rpgjs/common");
19
- let tick = 0;
20
19
  class RpgServerEngine {
21
20
  /**
22
21
  * Combat formulas
@@ -52,6 +51,12 @@ class RpgServerEngine {
52
51
  this.damageFormulas = {};
53
52
  this.scenes = new Map();
54
53
  this.totalConnected = 0;
54
+ this.tick = 0;
55
+ this.world = sync_server_1.World;
56
+ if (this.inputOptions.workers) {
57
+ console.log('workers enabled');
58
+ this.workers = this.gameEngine.createWorkers(this.inputOptions.workers).load();
59
+ }
55
60
  }
56
61
  _init() {
57
62
  return __awaiter(this, void 0, void 0, function* () {
@@ -73,46 +78,116 @@ class RpgServerEngine {
73
78
  }
74
79
  for (let key in this.inputOptions.database) {
75
80
  const data = this.inputOptions.database[key];
76
- this.database[data.id] = data;
81
+ this.addInDatabase(data.id, data);
77
82
  }
78
83
  this.loadScenes();
79
84
  });
80
85
  }
86
+ /**
87
+ * Adds data to the server's database (in RAM) for later use
88
+ *
89
+ * @method server.addInDatabase(id,data)
90
+ * @title Add in database
91
+ * @param {number} id resource id
92
+ * @param {class} dataClass A class representing the data
93
+ * @since 3.0.0-beta.4
94
+ * @example
95
+ * ```ts
96
+ * @Item({
97
+ * name: 'Potion',
98
+ * description: 'Gives 100 HP',
99
+ * })
100
+ * class MyItem() {}
101
+ *
102
+ * server.addInDatabase('dynamic_item', MyItem)
103
+ * ```
104
+ * @returns {void}
105
+ * @memberof RpgServerEngine
106
+ */
107
+ addInDatabase(id, dataClass) {
108
+ this.database[id] = dataClass;
109
+ }
81
110
  /**
82
111
  * Start the RPG server
83
112
  *
84
113
  * @method server.start()
114
+ * @title Start Server
85
115
  * @returns {void}
86
116
  * @memberof RpgServerEngine
87
117
  */
88
- start(inputOptions) {
118
+ start(inputOptions, scheduler = true) {
89
119
  return __awaiter(this, void 0, void 0, function* () {
90
120
  if (inputOptions)
91
121
  this.inputOptions = inputOptions;
92
122
  yield this._init();
93
- let schedulerConfig = {
123
+ this.scheduler = new common_1.Scheduler({
94
124
  tick: this.step.bind(this),
95
125
  period: 1000 / this.inputOptions.stepRate,
96
126
  delay: 4
97
- };
98
- this.scheduler = new common_1.Scheduler(schedulerConfig).start();
127
+ });
128
+ if (scheduler)
129
+ this.scheduler.start();
99
130
  this.gameEngine.start({
100
131
  getObject(id) {
101
132
  return Query_1.Query.getPlayer(id);
102
133
  },
103
134
  getObjectsOfGroup(groupId, player) {
104
- return Query_1.Query.getObjectsOfMap(groupId, player);
135
+ return Query_1.Query._getObjectsOfMap(groupId, player);
105
136
  }
106
137
  });
107
138
  this.io.on('connection', this.onPlayerConnected.bind(this));
108
139
  common_1.RpgPlugin.emit(common_1.HookServer.Start, this);
109
140
  });
110
141
  }
111
- step() {
112
- tick++;
113
- if (tick % 4 === 0) {
114
- sync_server_1.World.send();
142
+ /**
143
+ * Sends all packages to clients. The sending is done automatically but you can decide to send yourself by calling this method (for example, for unit tests)
144
+ *
145
+ * @method server.send()
146
+ * @title Send All Packets
147
+ * @returns {void}
148
+ * @memberof RpgServerEngine
149
+ */
150
+ send() {
151
+ this.world.send();
152
+ }
153
+ updatePlayersMove(deltaTimeInt) {
154
+ const players = this.world.getUsers();
155
+ const obj = [];
156
+ for (let playerId in players) {
157
+ const player = players[playerId];
158
+ if (player.pendingMove.length > 0) {
159
+ if (this.inputOptions.workers)
160
+ obj.push(player.toObject());
161
+ else {
162
+ this.gameEngine.processInput(playerId);
163
+ }
164
+ player.pendingMove = [];
165
+ }
166
+ }
167
+ if (this.inputOptions.workers) {
168
+ this.workers.call('movePlayers', obj).then((players) => {
169
+ for (let playerId in players) {
170
+ const player = this.world.getUser(playerId);
171
+ const data = players[playerId];
172
+ if (player) {
173
+ player.position = data.position;
174
+ player.direction = data.direction;
175
+ }
176
+ common_1.RpgPlugin.emit('Server.onInput', [player, {
177
+ input: data.direction,
178
+ moving: true
179
+ }], true);
180
+ }
181
+ });
182
+ }
183
+ }
184
+ step(t, dt) {
185
+ this.tick++;
186
+ this.updatePlayersMove(1);
187
+ if (this.tick % 4 === 0) {
188
+ this.send();
115
189
  }
190
+ common_1.RpgPlugin.emit(common_1.HookServer.Step, this);
116
191
  }
117
192
  loadScenes() {
118
193
  this.scenes.set(Map_1.SceneMap.id, new Map_1.SceneMap(this.inputOptions.maps, this));
@@ -120,6 +195,15 @@ class RpgServerEngine {
120
195
  getScene(name) {
121
196
  return this.scenes.get(name);
122
197
  }
198
+ /**
199
+ * Return the scene that manages the maps of the game
200
+ * @prop {SceneMap} [sceneMap]
201
+ * @since 3.0.0-beta.4
202
+ * @memberof RpgServerEngine
203
+ */
204
+ get sceneMap() {
205
+ return this.getScene(Map_1.SceneMap.id);
206
+ }
123
207
  sendToPlayer(currentPlayer, eventName, data) {
124
208
  currentPlayer._socket.emit(eventName, data);
125
209
  }
@@ -127,12 +211,13 @@ class RpgServerEngine {
127
211
  const playerId = common_1.Utils.generateUID();
128
212
  let player = new this.playerClass(this.gameEngine, playerId);
129
213
  socket.on('move', (data) => {
130
- this.gameEngine.processInput(data, playerId);
214
+ player._lastFrame = data.frame;
215
+ player.pendingMove.push(data);
131
216
  });
132
217
  socket.on('disconnect', () => {
133
218
  this.onPlayerDisconnected(socket.id, playerId);
134
219
  });
135
- sync_server_1.World.setUser(player, socket);
220
+ this.world.setUser(player, socket);
136
221
  socket.emit('playerJoined', { playerId });
137
222
  player.server = this;
138
223
  player._init();
@@ -146,7 +231,7 @@ class RpgServerEngine {
146
231
  onPlayerDisconnected(socketId, playerId) {
147
232
  const player = sync_server_1.World.getUser(playerId);
148
233
  player.execMethod('onDisconnected');
149
- sync_server_1.World.disconnectUser(playerId);
234
+ this.world.disconnectUser(playerId);
150
235
  }
151
236
  }
152
237
  exports.RpgServerEngine = RpgServerEngine;
package/lib/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAwC;AACxC,4CAA2C;AAC3C,mCAA+B;AAC/B,uCAA8F;AAC9F,oDAAsD;AACtD,0CAAuE;AAEvE,MAAa,eAAe;IA2CxB;;;;;OAKG;IACH,YAAmB,EAAE,EAAS,UAAU,EAAS,YAAY;QAA1C,OAAE,GAAF,EAAE,CAAA;QAAS,eAAU,GAAV,UAAU,CAAA;QAAS,iBAAY,GAAZ,YAAY,CAAA;QAvC7D;;;;;WAKG;QACI,aAAQ,GAAQ,EAAE,CAAA;QAEzB;;;;;;aAMK;QACE,iBAAY,GAAQ,EAAE,CAAA;QAE7B;;;;;WAKG;QACI,mBAAc,GAAQ,EAAE,CAAA;QAGvB,WAAM,GAAqB,IAAI,GAAG,EAAE,CAAA;QAClC,mBAAc,GAAW,CAAC,CAAA;QAE5B,SAAI,GAAW,CAAC,CAAA;QACxB,UAAK,GAAe,mBAAK,CAAA;QAUrB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;SACjF;IACL,CAAC;IAEa,KAAK;;YACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,kBAAS,CAAA;YAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,CAAA;YAC5D,IAAI,CAAC,cAAc,mBACf,WAAW,EAAE,sBAAY,EACzB,YAAY,EAAE,uBAAa,EAC3B,cAAc,EAAE,yBAAe,EAC/B,mBAAmB,EAAE,8BAAoB,IACtC,IAAI,CAAC,cAAc,CACzB,CAAA;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAA;YAElD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAA;YAExD,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG;gBACrB,GAAG,cAAK,CAAC,SAAS,CAAC,MAAM,kBAAS,CAAC,IAAI,CAAC,mBAAU,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;gBACzF,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI;aAC5B,CAAA;YAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ;gBAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAA;YAEhE,MAAM,KAAK,GAAG,CAAA,MAAM,kBAAS,CAAC,IAAI,CAAC,mBAAU,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAI,EAAE,CAAA;YAE5F,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;gBACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,mCACnB,IAAI,GACJ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAChC,CAAA;aACJ;YAED,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;aACpC;YAED,IAAI,CAAC,UAAU,EAAE,CAAA;QACrB,CAAC;KAAA;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,aAAa,CAAC,EAAU,EAAE,SAAc;QACpC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;IACjC,CAAC;IAEA;;;;;;;MAOE;IACG,KAAK,CAAC,YAAa,EAAE,SAAS,GAAG,IAAI;;YACvC,IAAI,YAAY;gBAAE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;YAClD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAS,CAAC;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ;gBACzC,KAAK,EAAE,CAAC;aACX,CAAC,CAAA;YACF,IAAI,SAAS;gBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;YACrC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAClB,SAAS,CAAC,EAAE;oBACR,OAAO,aAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;gBAC9B,CAAC;gBACD,iBAAiB,CAAC,OAAe,EAAE,MAAiB;oBAChD,OAAO,aAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAClD,CAAC;aACJ,CAAC,CAAA;YACF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3D,kBAAS,CAAC,IAAI,CAAC,mBAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC1C,CAAC;KAAA;IAED;;;;;;;OAOG;IACH,IAAI;QACA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACrB,CAAC;IAEO,iBAAiB,CAAC,YAAoB;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QACrC,MAAM,GAAG,GAAQ,EAAE,CAAA;QAClB,KAAK,IAAI,QAAQ,IAAI,OAAO,EAAE;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAc,CAAA;YAC7C,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO;oBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;qBACrD;oBACD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;iBACzC;gBACD,MAAM,CAAC,WAAW,GAAG,EAAE,CAAA;aAC1B;SACJ;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnD,KAAK,IAAI,QAAQ,IAAI,OAAO,EAAE;oBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAc,CAAA;oBACxD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;oBAC9B,IAAI,MAAM,EAAE;wBACR,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;wBAC/B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;qBACpC;oBACD,kBAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE;4BACtC,KAAK,EAAE,IAAI,CAAC,SAAS;4BACrB,MAAM,EAAE,IAAI;yBACf,CAAC,EAAE,IAAI,CAAC,CAAA;iBACZ;YACL,CAAC,CAAC,CAAA;SACL;IACL,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,EAAU;QACtB,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,IAAI,EAAE,CAAA;SACd;QACD,kBAAS,CAAC,IAAI,CAAC,mBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAEO,UAAU;QACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAQ,CAAC,EAAE,EAAE,IAAI,cAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,QAAQ,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAQ,CAAC,EAAE,CAAC,CAAA;IACrC,CAAC;IAED,YAAY,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI;QACvC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;IAEO,iBAAiB,CAAC,MAAM;QAC5B,MAAM,QAAQ,GAAG,cAAK,CAAC,WAAW,EAAE,CAAA;QACpC,IAAI,MAAM,GAAc,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACvE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;YAC9B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YACzB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAElC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEzC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAA;QACpB,MAAM,CAAC,KAAK,EAAE,CAAA;QACd,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAAC,QAAQ,EAAE,QAAgB;QACnD,MAAM,MAAM,GAAc,mBAAK,CAAC,OAAO,CAAC,QAAQ,CAAc,CAAA;QAC9D,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;CACJ;AA9PD,0CA8PC"}
@@ -0,0 +1,2 @@
1
+ declare const parentPort: any, threadId: any;
2
+ declare const clients: never[];
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ const { parentPort, threadId } = require('worker_threads');
3
+ const clients = [];
4
+ console.log(threadId);
5
+ parentPort.on('message', (msg) => {
6
+ console.log(msg);
7
+ });
8
+ //# sourceMappingURL=move.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move.js","sourceRoot":"","sources":["../../src/workers/move.ts"],"names":[],"mappings":";AAAA,MAAM,EACJ,UAAU,EACV,QAAQ,EACT,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAC7B,MAAM,OAAO,GAAG,EAAE,CAAA;AAElB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAErB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpgjs/server",
3
- "version": "3.0.0-beta.2",
3
+ "version": "3.0.0-beta.5",
4
4
  "description": "",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -18,16 +18,17 @@
18
18
  "author": "Samuel Ronce",
19
19
  "license": "MIT",
20
20
  "dependencies": {
21
- "@rpgjs/common": "^3.0.0-beta.2",
22
- "@rpgjs/database": "^3.0.0-beta.2",
23
- "@rpgjs/sync-server": "^3.0.0-beta.2",
21
+ "@rpgjs/common": "^3.0.0-beta.5",
22
+ "@rpgjs/database": "^3.0.0-beta.5",
23
+ "@rpgjs/sync-server": "^3.0.0-beta.5",
24
24
  "kompute": "^1.13.0",
25
25
  "lodash.merge": "^4.6.2",
26
26
  "pathfinding": "^0.4.18",
27
27
  "sat": "^0.8.0",
28
+ "threads": "^1.7.0",
28
29
  "yuka": "^0.7.5"
29
30
  },
30
- "gitHead": "611537d0ad47192ebb6ba61918ecadcc0052d86b",
31
+ "gitHead": "6c053091680a5a2112790ecffec8649376feacd5",
31
32
  "devDependencies": {
32
33
  "typescript": "^4.3.5"
33
34
  }