@rpgjs/common 3.0.0-beta.3 → 3.0.0-beta.6

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/Shape.js CHANGED
@@ -37,8 +37,13 @@ class RpgShape {
37
37
  else {
38
38
  this.hitbox.pos[type] = val;
39
39
  }
40
- if (this.clientContainer)
40
+ if (this.clientContainer) {
41
+ if (type == 'w')
42
+ type = 'width';
43
+ else if (type == 'h')
44
+ type = 'height';
41
45
  this.clientContainer[type] = val;
46
+ }
42
47
  }
43
48
  get hitbox() {
44
49
  if (this.fixEvent) {
@@ -57,6 +62,32 @@ class RpgShape {
57
62
  this._hitbox = val;
58
63
  }
59
64
  /**
65
+ * Get/Set width
66
+ * @title width
67
+ * @prop { number } width
68
+ * @since 3.0.0-beta.5
69
+ * @memberof Shape
70
+ */
71
+ get width() {
72
+ return this.hitbox.w || 0;
73
+ }
74
+ set width(val) {
75
+ this.setPos('w', val);
76
+ }
77
+ /**
78
+ * Get/Set height
79
+ * @title height
80
+ * @prop { number } height
81
+ * @since 3.0.0-beta.5
82
+ * @memberof Shape
83
+ */
84
+ get height() {
85
+ return this.hitbox.h || 0;
86
+ }
87
+ set height(val) {
88
+ this.setPos('h', val);
89
+ }
90
+ /**
60
91
  * Get/Set x
61
92
  * @title x
62
93
  * @prop { number } x
@@ -131,7 +162,7 @@ class RpgShape {
131
162
  * Whether the player is in this shape
132
163
  *
133
164
  * @title Player is in this shape ?
134
- * @method shape.playerIsIn(player: RpgPlayer)
165
+ * @method shape.playerIsIn(player)
135
166
  * @returns {boolean}
136
167
  * @memberof Shape
137
168
  */
@@ -146,7 +177,7 @@ class RpgShape {
146
177
  *
147
178
  * @title Get Player Owner
148
179
  * @method shape.getPlayerOwner()
149
- * @returns {RpgPlayer [ undefined]}
180
+ * @returns {RpgPlayer | undefined}
150
181
  * @memberof Shape
151
182
  */
152
183
  getPlayerOwner() {
package/lib/Shape.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Shape.js","sourceRoot":"","sources":["../src/Shape.ts"],"names":[],"mappings":";;;AACA,+BAAsC;AAEtC,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;AACrB,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B;AASD,MAAa,QAAQ;IA2BjB,YAAY,GAAgB;QAzBpB,gBAAW,GAAQ,EAAE,CAAA;QAC7B,SAAI,GAAW,KAAK,CAAA;QACpB;;;;;UAKE;QACF,SAAI,GAAW,EAAE,CAAA;QAET,cAAS,GAEb,EAAE,CAAA;QAGN,oBAAe,GAAQ,IAAI,CAAA;QAC3B;;;;;;UAME;QACF,gBAAW,GAAsB,gBAAgB,CAAC,OAAO,CAAA;QAGrD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjB,CAAC;IAEO,MAAM,CAAC,IAAY,EAAE,GAAW;QACpC,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;SAC1B;aACI;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;SAC9B;QACD,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;IAC9D,CAAC;IAED,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC7C,QAAQ,IAAI,CAAC,WAAW,EAAE;gBACtB,KAAK,gBAAgB,CAAC,MAAM;oBACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;oBACrE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;oBACrE,MAAK;aACZ;SACJ;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;IACtB,CAAC;IAED;;;;;MAKE;IACF,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,CAAC,CAAC,GAAW;QACb,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACzB,CAAC;IAED;;;;;MAKE;IACF,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,CAAC,CAAC,GAAW;QACb,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACzB,CAAC;IAED;;;;;;MAME;IACF,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,uBACI,CAAC,EAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IACzB,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAC9B;SACJ;QACD,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;IAED,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;IAC1B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,IAAI,OAAO,CAAA;IAC/B,CAAC;IAED,GAAG,CAAC,GAAgB;QAChB,MAAM,GAAG,GAAG,SAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QACnB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QACnB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;IAChC,CAAC;IAED,EAAE,CAAC,MAAuB;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;YAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YACjC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YACtC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAA;YACzC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,GAAG,CAAC,MAAuB;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAChC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YACvC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAA;YAC1C,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,MAAuB;QAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,eAAe;QACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACzB,CAAC;IAEF;;;;;;;QAOI;IACH,cAAc;QACV,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;CACJ;AA1KD,4BA0KC"}
1
+ {"version":3,"file":"Shape.js","sourceRoot":"","sources":["../src/Shape.ts"],"names":[],"mappings":"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"}
package/lib/Utils.d.ts CHANGED
@@ -7,24 +7,18 @@ export declare function isArray(val: any): boolean;
7
7
  export declare function isObject(val: any): boolean;
8
8
  export declare function isString(val: any): boolean;
9
9
  export declare function isInstanceOf(val: any, _class: any): boolean;
10
- export declare function arrayUniq(array: any): unknown[];
11
- export declare function arrayFlat(array: any): any;
12
- export declare function intersection([start1, end1]: [any, any], [start2, end2]: [any, any]): boolean;
10
+ export declare function arrayUniq(array: any[]): any[];
11
+ export declare function arrayFlat(array: any[]): any[];
12
+ export declare function intersection([start1, end1]: [number, number], [start2, end2]: [number, number]): boolean;
13
13
  export declare function capitalize(s: any): string;
14
14
  export declare function arrayEquals(a: any, b: any): any;
15
15
  export declare function applyMixins(derivedCtor: any, baseCtors: any[]): void;
16
- export declare function generateUID(): any;
17
- export declare function perlin(): {
18
- rand_vect: () => {
19
- x: number;
20
- y: number;
21
- };
22
- dot_prod_grid: (x: any, y: any, vx: any, vy: any) => number;
23
- smootherstep: (x: any) => number;
24
- interp: (x: any, a: any, b: any) => any;
25
- seed: () => void;
26
- get: (x: any, y: any) => any;
16
+ export declare function generateUID(): string;
17
+ export declare function createConstructor(...propNames: any[]): {
18
+ new (...propValues: any[]): {};
27
19
  };
20
+ export declare function sharedArrayBuffer(): any;
21
+ export declare function toRadians(angle: number): number;
28
22
  declare const _default: {
29
23
  random: typeof random;
30
24
  isBrowser: typeof isBrowser;
@@ -41,7 +35,9 @@ declare const _default: {
41
35
  intersection: typeof intersection;
42
36
  applyMixins: typeof applyMixins;
43
37
  capitalize: typeof capitalize;
44
- perlin: typeof perlin;
38
+ sharedArrayBuffer: typeof sharedArrayBuffer;
45
39
  generateUID: typeof generateUID;
40
+ createConstructor: typeof createConstructor;
41
+ toRadians: typeof toRadians;
46
42
  };
47
43
  export default _default;
package/lib/Utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.perlin = exports.generateUID = exports.applyMixins = exports.arrayEquals = exports.capitalize = exports.intersection = exports.arrayFlat = exports.arrayUniq = exports.isInstanceOf = exports.isString = exports.isObject = exports.isArray = exports.isPromise = exports.isClass = exports.isFunction = exports.isBrowser = exports.random = void 0;
3
+ exports.toRadians = exports.sharedArrayBuffer = exports.createConstructor = exports.generateUID = exports.applyMixins = exports.arrayEquals = exports.capitalize = exports.intersection = exports.arrayFlat = exports.arrayUniq = exports.isInstanceOf = exports.isString = exports.isObject = exports.isArray = exports.isPromise = exports.isClass = exports.isFunction = exports.isBrowser = exports.random = void 0;
4
4
  function random(min, max) {
5
5
  return Math.floor(Math.random() * (max - min + 1) + min);
6
6
  }
@@ -80,55 +80,31 @@ function generateUID() {
80
80
  return firstPart + secondPart;
81
81
  }
82
82
  exports.generateUID = generateUID;
83
- function perlin() {
84
- let perlin = {
85
- rand_vect: function () {
86
- let theta = Math.random() * 2 * Math.PI;
87
- return { x: Math.cos(theta), y: Math.sin(theta) };
88
- },
89
- dot_prod_grid: function (x, y, vx, vy) {
90
- let g_vect;
91
- let d_vect = { x: x - vx, y: y - vy };
92
- if (this.gradients[`${vx},${vy}`]) {
93
- g_vect = this.gradients[`${vx},${vy}`];
94
- }
95
- else {
96
- g_vect = this.rand_vect();
97
- this.gradients[`${vx},${vy}`] = g_vect;
98
- }
99
- return d_vect.x * g_vect.x + d_vect.y * g_vect.y;
100
- },
101
- smootherstep: function (x) {
102
- return 6 * Math.pow(x, 5) - 15 * Math.pow(x, 4) + 10 * Math.pow(x, 3);
103
- },
104
- interp: function (x, a, b) {
105
- return a + this.smootherstep(x) * (b - a);
106
- },
107
- seed: function () {
108
- this.gradients = {};
109
- this.memory = {};
110
- },
111
- get: function (x, y) {
112
- if (this.memory.hasOwnProperty(`${x},${y}`))
113
- return this.memory[`${x},${y}`];
114
- let xf = Math.floor(x);
115
- let yf = Math.floor(y);
116
- //interpolate
117
- let tl = this.dot_prod_grid(x, y, xf, yf);
118
- let tr = this.dot_prod_grid(x, y, xf + 1, yf);
119
- let bl = this.dot_prod_grid(x, y, xf, yf + 1);
120
- let br = this.dot_prod_grid(x, y, xf + 1, yf + 1);
121
- let xt = this.interp(x - xf, tl, tr);
122
- let xb = this.interp(x - xf, bl, br);
123
- let v = this.interp(y - yf, xt, xb);
124
- this.memory[`${x},${y}`] = v;
125
- return v;
83
+ function createConstructor(...propNames) {
84
+ return class {
85
+ constructor(...propValues) {
86
+ propNames.forEach((name, idx) => {
87
+ this[name] = propValues[idx];
88
+ });
126
89
  }
127
90
  };
128
- perlin.seed();
129
- return perlin;
130
91
  }
131
- exports.perlin = perlin;
92
+ exports.createConstructor = createConstructor;
93
+ function sharedArrayBuffer() {
94
+ let buffer;
95
+ if (typeof SharedArrayBuffer != 'undefined') {
96
+ buffer = SharedArrayBuffer;
97
+ }
98
+ else {
99
+ buffer = ArrayBuffer;
100
+ }
101
+ return buffer;
102
+ }
103
+ exports.sharedArrayBuffer = sharedArrayBuffer;
104
+ function toRadians(angle) {
105
+ return angle * (Math.PI / 180);
106
+ }
107
+ exports.toRadians = toRadians;
132
108
  exports.default = {
133
109
  random,
134
110
  isBrowser,
@@ -145,7 +121,9 @@ exports.default = {
145
121
  intersection,
146
122
  applyMixins,
147
123
  capitalize,
148
- perlin,
149
- generateUID
124
+ sharedArrayBuffer,
125
+ generateUID,
126
+ createConstructor,
127
+ toRadians
150
128
  };
151
129
  //# sourceMappingURL=Utils.js.map
package/lib/Utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ declare type Box = {
2
+ minX: number;
3
+ minY: number;
4
+ maxX: number;
5
+ maxY: number;
6
+ };
7
+ export declare class VirtualGrid {
8
+ private nbCellWidth;
9
+ private cellWidth;
10
+ private cellHeight;
11
+ private cells;
12
+ private inverseCells;
13
+ constructor(nbCellWidth: number, cellWidth: number, cellHeight: number);
14
+ zoom(nbCell: number): VirtualGrid;
15
+ getCellIndex(x: number, y: number): number;
16
+ private getCells;
17
+ getObjectsByBox(box: Box): Set<string>;
18
+ getObjectsById(id: string): Set<string>;
19
+ clearObjectInCells(id: string): void;
20
+ insertInCells(id: string, box: {
21
+ minX: number;
22
+ minY: number;
23
+ maxX: number;
24
+ maxY: number;
25
+ }): void;
26
+ }
27
+ export {};
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VirtualGrid = void 0;
4
+ class VirtualGrid {
5
+ constructor(nbCellWidth, cellWidth, cellHeight) {
6
+ this.nbCellWidth = nbCellWidth;
7
+ this.cellWidth = cellWidth;
8
+ this.cellHeight = cellHeight;
9
+ this.cells = new Map();
10
+ this.inverseCells = new Map();
11
+ }
12
+ zoom(nbCell) {
13
+ this.nbCellWidth = Math.ceil(this.nbCellWidth / nbCell);
14
+ this.cellWidth *= nbCell;
15
+ this.cellHeight *= nbCell;
16
+ return this;
17
+ }
18
+ getCellIndex(x, y) {
19
+ return this.nbCellWidth * Math.floor(y / this.cellHeight) + Math.floor(x / this.cellWidth);
20
+ }
21
+ getCells(box, cb) {
22
+ const { minX, minY, maxX, maxY } = box;
23
+ const topLeft = this.getCellIndex(minX, minY);
24
+ const topRight = this.getCellIndex(maxX, minY);
25
+ const bottomLeft = this.getCellIndex(minX, maxY);
26
+ const nbLines = (bottomLeft - topLeft) / this.nbCellWidth + 1;
27
+ for (let j = 0; j < nbLines; j++) {
28
+ for (let i = topLeft; i <= topRight; i++) {
29
+ const index = i + (j * this.nbCellWidth);
30
+ cb(index);
31
+ }
32
+ }
33
+ }
34
+ getObjectsByBox(box) {
35
+ let objects = [];
36
+ this.getCells(box, (index) => {
37
+ objects = [...objects, ...this.cells.get(index) || []];
38
+ });
39
+ return new Set(objects);
40
+ }
41
+ getObjectsById(id) {
42
+ let objects = [];
43
+ const cells = this.inverseCells.get(id);
44
+ cells === null || cells === void 0 ? void 0 : cells.forEach((index) => {
45
+ objects = [...objects, ...this.cells.get(index) || []];
46
+ });
47
+ return new Set(objects);
48
+ }
49
+ clearObjectInCells(id) {
50
+ var _a;
51
+ if (this.inverseCells.has(id)) {
52
+ (_a = this.inverseCells.get(id)) === null || _a === void 0 ? void 0 : _a.forEach((cellIndex) => {
53
+ var _a;
54
+ (_a = this.cells.get(cellIndex)) === null || _a === void 0 ? void 0 : _a.delete(id);
55
+ });
56
+ this.inverseCells.delete(id);
57
+ }
58
+ }
59
+ insertInCells(id, box) {
60
+ this.clearObjectInCells(id);
61
+ const cells = new Set();
62
+ this.getCells(box, (index) => {
63
+ var _a;
64
+ cells.add(index);
65
+ const memoryCells = this.cells.get(index);
66
+ if (!memoryCells) {
67
+ this.cells.set(index, new Set());
68
+ }
69
+ (_a = this.cells.get(index)) === null || _a === void 0 ? void 0 : _a.add(id);
70
+ });
71
+ this.inverseCells.set(id, cells);
72
+ }
73
+ }
74
+ exports.VirtualGrid = VirtualGrid;
75
+ //# sourceMappingURL=VirtualGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualGrid.js","sourceRoot":"","sources":["../src/VirtualGrid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class GameWorker {
2
+ private options;
3
+ pool: any;
4
+ constructor(options?: {});
5
+ load(): this;
6
+ call(methodName: string, data: any): any;
7
+ }
package/lib/Worker.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GameWorker = void 0;
7
+ const workerpool_1 = __importDefault(require("workerpool"));
8
+ class GameWorker {
9
+ constructor(options = {}) {
10
+ this.options = options;
11
+ this.pool = workerpool_1.default.pool(__dirname + '/workers/move.js', options);
12
+ }
13
+ load() {
14
+ return this;
15
+ }
16
+ call(methodName, data) {
17
+ return this.pool.exec(methodName, [data]);
18
+ }
19
+ }
20
+ exports.GameWorker = GameWorker;
21
+ //# sourceMappingURL=Worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Worker.js","sourceRoot":"","sources":["../src/Worker.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAmC;AAEnC,MAAa,UAAU;IAGnB,YAAoB,UAAU,EAAE;QAAZ,YAAO,GAAP,OAAO,CAAK;QAC5B,IAAI,CAAC,IAAI,GAAG,oBAAU,CAAC,IAAI,CAAC,SAAS,GAAG,kBAAkB,EAAE,OAAO,CAAC,CAAA;IACxE,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAA;IACf,CAAC;IAED,IAAI,CAAC,UAAkB,EAAE,IAAS;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5C,CAAC;CACJ;AAdD,gCAcC"}
package/lib/index.d.ts CHANGED
@@ -14,4 +14,5 @@ import { RpgModule, loadModules, ModuleType } from './Module';
14
14
  import * as MockIo from './transports/io';
15
15
  import * as Logger from './Logger';
16
16
  import { RpgShape, ShapePositioning } from './Shape';
17
- export { RpgCommonPlayer, RpgCommonEvent, RpgCommonMap, RpgCommonGame, EventEmitter, Utils, TransportIo, Direction, PrebuiltGui, PlayerType, Input, Control, MockIo, RpgPlugin, Plugin, HookServer, HookClient, Scheduler, Hit, RpgModule, loadModules, Logger, ModuleType, RpgShape, ShapePositioning };
17
+ import { VirtualGrid } from './VirtualGrid';
18
+ export { RpgCommonPlayer, RpgCommonEvent, RpgCommonMap, RpgCommonGame, EventEmitter, Utils, TransportIo, Direction, PrebuiltGui, PlayerType, Input, Control, MockIo, RpgPlugin, Plugin, HookServer, HookClient, Scheduler, Hit, RpgModule, loadModules, Logger, ModuleType, RpgShape, ShapePositioning, VirtualGrid };
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.ShapePositioning = exports.RpgShape = exports.Logger = exports.loadModules = exports.RpgModule = exports.Hit = exports.Scheduler = exports.HookClient = exports.HookServer = exports.RpgPlugin = exports.MockIo = exports.Control = exports.Input = exports.PlayerType = exports.PrebuiltGui = exports.Direction = exports.TransportIo = exports.Utils = exports.EventEmitter = exports.RpgCommonGame = exports.RpgCommonMap = exports.RpgCommonEvent = exports.RpgCommonPlayer = void 0;
25
+ exports.VirtualGrid = exports.ShapePositioning = exports.RpgShape = exports.Logger = exports.loadModules = exports.RpgModule = exports.Hit = exports.Scheduler = exports.HookClient = exports.HookServer = exports.RpgPlugin = exports.MockIo = exports.Control = exports.Input = exports.PlayerType = exports.PrebuiltGui = exports.Direction = exports.TransportIo = exports.Utils = exports.EventEmitter = exports.RpgCommonGame = exports.RpgCommonMap = exports.RpgCommonEvent = exports.RpgCommonPlayer = void 0;
26
26
  const Player_1 = require("./Player");
27
27
  Object.defineProperty(exports, "Direction", { enumerable: true, get: function () { return Player_1.Direction; } });
28
28
  Object.defineProperty(exports, "RpgCommonPlayer", { enumerable: true, get: function () { return Player_1.RpgCommonPlayer; } });
@@ -62,4 +62,6 @@ exports.Logger = Logger;
62
62
  const Shape_1 = require("./Shape");
63
63
  Object.defineProperty(exports, "RpgShape", { enumerable: true, get: function () { return Shape_1.RpgShape; } });
64
64
  Object.defineProperty(exports, "ShapePositioning", { enumerable: true, get: function () { return Shape_1.ShapePositioning; } });
65
+ const VirtualGrid_1 = require("./VirtualGrid");
66
+ Object.defineProperty(exports, "VirtualGrid", { enumerable: true, get: function () { return VirtualGrid_1.VirtualGrid; } });
65
67
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiE;AAyB7D,0FAzBK,kBAAS,OAyBL;AAPT,gGAlBgB,wBAAe,OAkBhB;AASf,2FA3BiC,mBAAU,OA2BjC;AA1Bd,oDAAoC;AAkBhC,yBAlBG,eAAc,CAkBH;AAjBlB,gDAAgC;AAkB5B,uBAlBG,aAAY,CAkBH;AAjBhB,kDAAkC;AAkB9B,wBAlBG,cAAa,CAkBH;AAjBjB,iDAA6C;AAkBzC,6FAlBK,2BAAY,OAkBL;AAjBhB,mDAA+C;AAqB3C,4FArBK,yBAAW,OAqBL;AApBf,oDAA2B;AAiBvB,gBAjBG,eAAK,CAiBH;AAhBT,qCAAoE;AAwBhE,0FAxBK,kBAAS,OAwBL;AAET,2FA1BwB,mBAAU,OA0BxB;AACV,2FA3BoC,mBAAU,OA2BpC;AA1Bd,6DAA8C;AAgB1C,kCAAW;AAff,mCAAwC;AAmBpC,sFAnBK,aAAK,OAmBL;AACL,wFApBY,eAAO,OAoBZ;AAnBX,+BAA2B;AA0BvB,oFA1BK,SAAG,OA0BL;AAzBP,2CAAuC;AAwBnC,0FAxBK,qBAAS,OAwBL;AAvBb,qCAA6D;AAyBzD,0FAzBK,kBAAS,OAyBL;AACT,4FA1BgB,oBAAW,OA0BhB;AAzBf,wDAAyC;AAiBrC,wBAAM;AAhBV,iDAAmC;AAyB/B,wBAAM;AAxBV,mCAAoD;AA0BhD,yFA1BK,gBAAQ,OA0BL;AACR,iGA3Be,wBAAgB,OA2Bf"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiE;AA0B7D,0FA1BK,kBAAS,OA0BL;AAPT,gGAnBgB,wBAAe,OAmBhB;AASf,2FA5BiC,mBAAU,OA4BjC;AA3Bd,oDAAoC;AAmBhC,yBAnBG,eAAc,CAmBH;AAlBlB,gDAAgC;AAmB5B,uBAnBG,aAAY,CAmBH;AAlBhB,kDAAkC;AAmB9B,wBAnBG,cAAa,CAmBH;AAlBjB,iDAA6C;AAmBzC,6FAnBK,2BAAY,OAmBL;AAlBhB,mDAA+C;AAsB3C,4FAtBK,yBAAW,OAsBL;AArBf,oDAA2B;AAkBvB,gBAlBG,eAAK,CAkBH;AAjBT,qCAAoE;AAyBhE,0FAzBK,kBAAS,OAyBL;AAET,2FA3BwB,mBAAU,OA2BxB;AACV,2FA5BoC,mBAAU,OA4BpC;AA3Bd,6DAA8C;AAiB1C,kCAAW;AAhBf,mCAAwC;AAoBpC,sFApBK,aAAK,OAoBL;AACL,wFArBY,eAAO,OAqBZ;AApBX,+BAA2B;AA2BvB,oFA3BK,SAAG,OA2BL;AA1BP,2CAAuC;AAyBnC,0FAzBK,qBAAS,OAyBL;AAxBb,qCAA6D;AA0BzD,0FA1BK,kBAAS,OA0BL;AACT,4FA3BgB,oBAAW,OA2BhB;AA1Bf,wDAAyC;AAkBrC,wBAAM;AAjBV,iDAAmC;AA0B/B,wBAAM;AAzBV,mCAAoD;AA2BhD,yFA3BK,gBAAQ,OA2BL;AACR,iGA5Be,wBAAgB,OA4Bf;AA3BpB,+CAA2C;AA4BvC,4FA5BK,yBAAW,OA4BL"}
@@ -1,18 +1,19 @@
1
1
  declare class MockIo {
2
2
  events: Map<string, any>;
3
- on(name: any, value: any): void;
4
- once(name: any, value: any): void;
5
- _trigger(name: any, data: any, client?: any): void;
3
+ on(name: string, value: any): void;
4
+ off(name: string): void;
5
+ once(name: string, value: any): void;
6
+ _trigger(name: string, data: any, client?: any): void;
6
7
  }
7
8
  declare class MockClientIo extends MockIo {
8
9
  id: string;
9
10
  connection(): this;
10
- emit(name: any, data: any): this;
11
+ emit(name: string, data: any): this;
11
12
  }
12
13
  declare class MockServerIo extends MockIo {
13
14
  private clients;
14
15
  connection(client: any): void;
15
- emit(name: any, data: any, id: any): void;
16
+ emit(name: string, data: any, id: any): void;
16
17
  }
17
18
  export declare const serverIo: MockServerIo;
18
19
  export declare const ClientIo: typeof MockClientIo;
@@ -8,6 +8,9 @@ class MockIo {
8
8
  on(name, value) {
9
9
  this.events.set(name, value);
10
10
  }
11
+ off(name) {
12
+ this.events.delete(name);
13
+ }
11
14
  once(name, value) {
12
15
  this.on(name, value);
13
16
  }
@@ -26,9 +29,19 @@ class MockSocket {
26
29
  this.io.on(name, value, this.id);
27
30
  return this;
28
31
  }
32
+ once(name, value) {
33
+ this.io.once(name, value, this.id);
34
+ return this;
35
+ }
29
36
  emit(name, data) {
30
37
  this.io.emit(name, data, this.id);
31
38
  }
39
+ removeAllListeners(name) {
40
+ return this.off(name);
41
+ }
42
+ off(name) {
43
+ this.io.off(name, this.id);
44
+ }
32
45
  }
33
46
  class MockClientIo extends MockIo {
34
47
  constructor() {
@@ -37,6 +50,7 @@ class MockClientIo extends MockIo {
37
50
  }
38
51
  connection() {
39
52
  exports.serverIo.connection(this);
53
+ this._trigger('connect', undefined);
40
54
  return this;
41
55
  }
42
56
  emit(name, data) {
@@ -1 +1 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/transports/io.ts"],"names":[],"mappings":";;;AAAA,MAAM,MAAM;IAAZ;QAEI,WAAM,GAAqB,IAAI,GAAG,EAAE,CAAA;IAcxC,CAAC;IAZG,EAAE,CAAC,IAAI,EAAE,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,KAAK;QACZ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxB,CAAC;IAED,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAO;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,EAAE;YAAE,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5B,CAAC;CACJ;AAED,MAAM,UAAU;IAIZ,YAAoB,EAAO;QAAP,OAAE,GAAF,EAAE,CAAK;QACvB,IAAI,CAAC,EAAE,GAAG,EAAE,GAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IAC9B,CAAC;IAED,EAAE,CAAC,IAAI,EAAE,KAAK;QACV,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;IACf,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,IAAI;QACX,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IACrC,CAAC;CACJ;AAED,MAAM,YAAa,SAAQ,MAAM;IAAjC;;QACI,OAAE,GAAW,EAAE,CAAA;IASnB,CAAC;IARG,UAAU;QACN,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACzB,OAAO,IAAI,CAAA;IACf,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,IAAI;QACX,gBAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAED,MAAM,YAAa,SAAQ,MAAM;IAAjC;;QACY,YAAO,GAA8B,IAAI,GAAG,EAAE,CAAA;IAU1D,CAAC;IATG,UAAU,CAAC,MAAM;QACb,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACnC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;QACrB,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;;QACf,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,0CAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;CACJ;AAEY,QAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;AAC7B,QAAA,QAAQ,GAAG,YAAY,CAAA"}
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/transports/io.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const workerpool_1 = __importDefault(require("workerpool"));
7
+ const Map_1 = __importDefault(require("../Map"));
8
+ const Game_1 = __importDefault(require("../Game"));
9
+ const Player_1 = require("../Player");
10
+ const objects = {};
11
+ let objectsByMap = {};
12
+ const gameEngine = new Game_1.default('worker');
13
+ gameEngine.start({
14
+ getObject(playerId) {
15
+ return objects[playerId];
16
+ },
17
+ addObject(playerId, data) {
18
+ const player = gameEngine.addPlayer(Player_1.RpgCommonPlayer, playerId);
19
+ for (let key in data) {
20
+ player[key] = data[key];
21
+ }
22
+ if (player.hitbox) {
23
+ player.setHitbox(player.hitbox.width, player.hitbox.height);
24
+ }
25
+ objects[playerId] = player;
26
+ objectsByMap[player.map] = player;
27
+ return player;
28
+ },
29
+ getObjectsOfGroup(mapId, player) {
30
+ return {};
31
+ }
32
+ });
33
+ let i = 0;
34
+ function loadMap(data) {
35
+ const map = new Map_1.default();
36
+ map.load(data.data);
37
+ Map_1.default.buffer.set(data.id, map);
38
+ }
39
+ function movePlayers(data) {
40
+ objectsByMap = {};
41
+ const ret = {};
42
+ for (let object of data) {
43
+ gameEngine.world.addObject(object.id, object);
44
+ const player = gameEngine.processInput(object.id);
45
+ if (player) {
46
+ ret[player.id] = {
47
+ position: {
48
+ x: player.position.x,
49
+ y: player.position.y,
50
+ z: player.position.z
51
+ },
52
+ direction: player.direction
53
+ };
54
+ }
55
+ }
56
+ return ret;
57
+ }
58
+ workerpool_1.default.worker({
59
+ loadMap,
60
+ movePlayers
61
+ });
62
+ //# sourceMappingURL=move.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move.js","sourceRoot":"","sources":["../../src/workers/move.ts"],"names":[],"mappings":";;;;;AAAA,4DAAmC;AACnC,iDAA2B;AAC3B,mDAA0B;AAC1B,sCAA2C;AAE3C,MAAM,OAAO,GAAQ,EAAE,CAAA;AACvB,IAAI,YAAY,GAAQ,EAAE,CAAA;AAC1B,MAAM,UAAU,GAAG,IAAI,cAAI,CAAC,QAAQ,CAAC,CAAA;AACrC,UAAU,CAAC,KAAK,CAAC;IACf,SAAS,CAAC,QAAQ;QAChB,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,SAAS,CAAC,QAAQ,EAAE,IAAI;QACtB,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,wBAAe,EAAE,QAAQ,CAAC,CAAA;QAC9D,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;SACxB;QACD,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;SAC5D;QACD,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;QAC1B,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;QACjC,OAAO,MAAM,CAAA;IACf,CAAC;IACD,iBAAiB,CAAC,KAAK,EAAE,MAAM;QAC7B,OAAO,EAAE,CAAA;IACX,CAAC;CACF,CAAC,CAAA;AAEF,IAAI,CAAC,GAAC,CAAC,CAAA;AAEP,SAAS,OAAO,CAAC,IAAI;IACnB,MAAM,GAAG,GAAG,IAAI,aAAM,EAAE,CAAA;IACxB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnB,aAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,IAAI;IACvB,YAAY,GAAG,EAAE,CAAA;IACjB,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,KAAK,IAAI,MAAM,IAAI,IAAI,EAAE;QACvB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACjD,IAAI,MAAM,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;gBACf,QAAQ,EAAE;oBACR,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACpB,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACpB,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACrB;gBACD,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAA;SACF;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,oBAAU,CAAC,MAAM,CAAC;IAChB,OAAO;IACP,WAAW;CACZ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpgjs/common",
3
- "version": "3.0.0-beta.3",
3
+ "version": "3.0.0-beta.6",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -18,9 +18,10 @@
18
18
  "author": "Samuel Ronce",
19
19
  "license": "MIT",
20
20
  "dependencies": {
21
- "sat": "^0.8.0"
21
+ "sat": "^0.8.0",
22
+ "workerpool": "^6.2.0"
22
23
  },
23
- "gitHead": "7bb0326cc3216764a4bfc86f53e7b24464a2040f",
24
+ "gitHead": "23673ae3b2706d55fc924fb3648e5ec46af7cac8",
24
25
  "devDependencies": {
25
26
  "typescript": "^4.3.5"
26
27
  }