@rpgjs/common 3.0.0-beta.4 → 3.0.0-beta.7

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.
@@ -4,10 +4,15 @@ import { EventEmitter } from './EventEmitter';
4
4
  *
5
5
  */
6
6
  export declare class Scheduler extends EventEmitter {
7
- options: any;
7
+ private options;
8
8
  nextExecTime: any;
9
- requestedDelay: any;
10
- delayCounter: any;
9
+ requestedDelay: number;
10
+ delayCounter: number;
11
+ timestamp: number;
12
+ lastTimestamp: number;
13
+ deltaTime: number;
14
+ deltaTimeInt: number;
15
+ frame: number;
11
16
  /**
12
17
  * schedule a function to be called
13
18
  *
@@ -16,7 +21,12 @@ export declare class Scheduler extends EventEmitter {
16
21
  * @param {Number} options.period number of milliseconds between each invocation, not including the function's execution time
17
22
  * @param {Number} options.delay number of milliseconds to add when delaying or hurrying the execution
18
23
  */
19
- constructor(options: any);
24
+ constructor(options: {
25
+ tick: Function;
26
+ period: number;
27
+ delay: number;
28
+ stepPeriod?: number;
29
+ });
20
30
  nextTickChecker(): void;
21
31
  nextTick(): void;
22
32
  callTick(): void;
package/lib/Scheduler.js CHANGED
@@ -20,6 +20,12 @@ class Scheduler extends EventEmitter_1.EventEmitter {
20
20
  */
21
21
  constructor(options) {
22
22
  super();
23
+ this.options = options;
24
+ this.timestamp = 0;
25
+ this.lastTimestamp = 0;
26
+ this.deltaTime = 0;
27
+ this.deltaTimeInt = 0;
28
+ this.frame = 0;
23
29
  this.options = Object.assign({
24
30
  tick: null,
25
31
  period: SIXTY_PER_SEC,
@@ -37,28 +43,32 @@ class Scheduler extends EventEmitter_1.EventEmitter {
37
43
  if (currentTime > this.nextExecTime) {
38
44
  this.delayCounter++;
39
45
  this.callTick();
40
- this.nextExecTime = currentTime + this.options.stepPeriod;
46
+ this.nextExecTime = currentTime + (this.options.stepPeriod || 0);
41
47
  }
42
48
  window.requestAnimationFrame(this.nextTickChecker.bind(this));
43
49
  }
44
50
  nextTick() {
45
- let stepStartTime = (new Date()).getTime();
46
- if (stepStartTime > this.nextExecTime + this.options.period * LOOP_SLOW_THRESH) {
51
+ const now = (new Date()).getTime();
52
+ this.deltaTime = now - this.timestamp;
53
+ this.frame++;
54
+ this.deltaTimeInt = Math.round(this.deltaTime / this.options.period);
55
+ this.timestamp = now;
56
+ if (this.timestamp > this.nextExecTime + this.options.period * LOOP_SLOW_THRESH) {
47
57
  this.delayCounter++;
48
58
  }
49
59
  else
50
60
  this.delayCounter = 0;
51
61
  this.callTick();
52
- this.nextExecTime = stepStartTime + this.options.period + this.requestedDelay;
62
+ this.nextExecTime = this.timestamp + this.options.period + this.requestedDelay;
53
63
  this.requestedDelay = 0;
54
64
  setTimeout(this.nextTick.bind(this), this.nextExecTime - (new Date()).getTime());
55
65
  }
56
66
  callTick() {
57
67
  if (this.delayCounter >= LOOP_SLOW_COUNT) {
58
- this.emit('loopRunningSlow');
68
+ console.warn('[RPGJS] Warning, Event Loop is slow !');
59
69
  this.delayCounter = 0;
60
70
  }
61
- this.options.tick();
71
+ this.options.tick(this.timestamp, this.deltaTime);
62
72
  }
63
73
  /**
64
74
  * start the schedule
@@ -1 +1 @@
1
- {"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"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"}
package/lib/Shape.d.ts CHANGED
@@ -39,6 +39,24 @@ export declare class RpgShape {
39
39
  get hitbox(): any;
40
40
  set hitbox(val: any);
41
41
  /**
42
+ * Get/Set width
43
+ * @title width
44
+ * @prop { number } width
45
+ * @since 3.0.0-beta.5
46
+ * @memberof Shape
47
+ */
48
+ get width(): number;
49
+ set width(val: number);
50
+ /**
51
+ * Get/Set height
52
+ * @title height
53
+ * @prop { number } height
54
+ * @since 3.0.0-beta.5
55
+ * @memberof Shape
56
+ */
57
+ get height(): number;
58
+ set height(val: number);
59
+ /**
42
60
  * Get/Set x
43
61
  * @title x
44
62
  * @prop { number } x
@@ -65,8 +83,8 @@ export declare class RpgShape {
65
83
  set properties(val: any);
66
84
  isEvent(): boolean;
67
85
  set(obj: ShapeObject): void;
68
- in(player: RpgCommonPlayer): boolean;
69
- out(player: RpgCommonPlayer): boolean;
86
+ in(player: RpgCommonPlayer): Promise<boolean>;
87
+ out(player: RpgCommonPlayer): Promise<boolean>;
70
88
  /**
71
89
  * Whether the player is in this shape
72
90
  *
package/lib/Shape.js CHANGED
@@ -1,7 +1,21 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
2
14
  Object.defineProperty(exports, "__esModule", { value: true });
3
15
  exports.RpgShape = exports.ShapePositioning = void 0;
4
16
  const Hit_1 = require("./Hit");
17
+ const Utils_1 = require("./Utils");
18
+ const sat_1 = __importDefault(require("sat"));
5
19
  var ShapePositioning;
6
20
  (function (ShapePositioning) {
7
21
  ShapePositioning["Default"] = "default";
@@ -37,8 +51,13 @@ class RpgShape {
37
51
  else {
38
52
  this.hitbox.pos[type] = val;
39
53
  }
40
- if (this.clientContainer)
54
+ if (this.clientContainer) {
55
+ if (type == 'w')
56
+ type = 'width';
57
+ else if (type == 'h')
58
+ type = 'height';
41
59
  this.clientContainer[type] = val;
60
+ }
42
61
  }
43
62
  get hitbox() {
44
63
  if (this.fixEvent) {
@@ -57,6 +76,32 @@ class RpgShape {
57
76
  this._hitbox = val;
58
77
  }
59
78
  /**
79
+ * Get/Set width
80
+ * @title width
81
+ * @prop { number } width
82
+ * @since 3.0.0-beta.5
83
+ * @memberof Shape
84
+ */
85
+ get width() {
86
+ return this.hitbox.w || 0;
87
+ }
88
+ set width(val) {
89
+ this.setPos('w', val);
90
+ }
91
+ /**
92
+ * Get/Set height
93
+ * @title height
94
+ * @prop { number } height
95
+ * @since 3.0.0-beta.5
96
+ * @memberof Shape
97
+ */
98
+ get height() {
99
+ return this.hitbox.h || 0;
100
+ }
101
+ set height(val) {
102
+ this.setPos('h', val);
103
+ }
104
+ /**
60
105
  * Get/Set x
61
106
  * @title x
62
107
  * @prop { number } x
@@ -102,30 +147,32 @@ class RpgShape {
102
147
  set(obj) {
103
148
  const hit = Hit_1.Hit.getHitbox(obj);
104
149
  Object.assign(this, hit);
105
- this.x = obj.x || 0;
106
- this.y = obj.y || 0;
107
150
  this.positioning = obj.positioning;
108
151
  this.fixEvent = obj.fixEvent;
109
152
  }
110
153
  in(player) {
111
- if (!this.playerIsIn(player)) {
112
- this.playersIn[player.id] = true;
113
- player.inShapes[this.name] = this;
114
- player.execMethod('onInShape', [this]);
115
- player.execMethod('onIn', [player], this);
116
- return true;
117
- }
118
- return false;
154
+ return __awaiter(this, void 0, void 0, function* () {
155
+ if (!this.playerIsIn(player)) {
156
+ this.playersIn[player.id] = true;
157
+ player.inShapes[this.name] = this;
158
+ yield player.execMethod('onInShape', [this]);
159
+ yield player.execMethod('onIn', [player], this);
160
+ return true;
161
+ }
162
+ return false;
163
+ });
119
164
  }
120
165
  out(player) {
121
- if (this.playerIsIn(player)) {
122
- delete this.playersIn[player.id];
123
- delete player.inShapes[this.name];
124
- player.execMethod('onOutShape', [this]);
125
- player.execMethod('onOut', [player], this);
126
- return true;
127
- }
128
- return false;
166
+ return __awaiter(this, void 0, void 0, function* () {
167
+ if (this.playerIsIn(player)) {
168
+ delete this.playersIn[player.id];
169
+ delete player.inShapes[this.name];
170
+ yield player.execMethod('onOutShape', [this]);
171
+ yield player.execMethod('onOut', [player], this);
172
+ return true;
173
+ }
174
+ return false;
175
+ });
129
176
  }
130
177
  /**
131
178
  * Whether the player is in this shape
@@ -139,7 +186,9 @@ class RpgShape {
139
186
  return !!this.playersIn[player.id];
140
187
  }
141
188
  isShapePosition() {
142
- return !this.hitbox.w;
189
+ return !Utils_1.isInstanceOf(this.hitbox, sat_1.default.Polygon)
190
+ && !Utils_1.isInstanceOf(this.hitbox, sat_1.default.Circle)
191
+ && !Utils_1.isInstanceOf(this.hitbox, sat_1.default.Box);
143
192
  }
144
193
  /**
145
194
  * Recover the player with the shape. You must have used the `attachShape()` method on the player
package/lib/Shape.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Shape.js","sourceRoot":"","sources":["../src/Shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Shape.js","sourceRoot":"","sources":["../src/Shape.ts"],"names":[],"mappings":"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"}
package/lib/Utils.d.ts CHANGED
@@ -17,17 +17,8 @@ export declare function generateUID(): string;
17
17
  export declare function createConstructor(...propNames: any[]): {
18
18
  new (...propValues: any[]): {};
19
19
  };
20
- export declare function perlin(): {
21
- rand_vect: () => {
22
- x: number;
23
- y: number;
24
- };
25
- dot_prod_grid: (x: any, y: any, vx: any, vy: any) => number;
26
- smootherstep: (x: any) => number;
27
- interp: (x: any, a: any, b: any) => any;
28
- seed: () => void;
29
- get: (x: any, y: any) => any;
30
- };
20
+ export declare function sharedArrayBuffer(): any;
21
+ export declare function toRadians(angle: number): number;
31
22
  declare const _default: {
32
23
  random: typeof random;
33
24
  isBrowser: typeof isBrowser;
@@ -44,8 +35,9 @@ declare const _default: {
44
35
  intersection: typeof intersection;
45
36
  applyMixins: typeof applyMixins;
46
37
  capitalize: typeof capitalize;
47
- perlin: typeof perlin;
38
+ sharedArrayBuffer: typeof sharedArrayBuffer;
48
39
  generateUID: typeof generateUID;
49
40
  createConstructor: typeof createConstructor;
41
+ toRadians: typeof toRadians;
50
42
  };
51
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.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;
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
  }
@@ -90,55 +90,21 @@ function createConstructor(...propNames) {
90
90
  };
91
91
  }
92
92
  exports.createConstructor = createConstructor;
93
- function perlin() {
94
- let perlin = {
95
- rand_vect: function () {
96
- let theta = Math.random() * 2 * Math.PI;
97
- return { x: Math.cos(theta), y: Math.sin(theta) };
98
- },
99
- dot_prod_grid: function (x, y, vx, vy) {
100
- let g_vect;
101
- let d_vect = { x: x - vx, y: y - vy };
102
- if (this.gradients[`${vx},${vy}`]) {
103
- g_vect = this.gradients[`${vx},${vy}`];
104
- }
105
- else {
106
- g_vect = this.rand_vect();
107
- this.gradients[`${vx},${vy}`] = g_vect;
108
- }
109
- return d_vect.x * g_vect.x + d_vect.y * g_vect.y;
110
- },
111
- smootherstep: function (x) {
112
- return 6 * Math.pow(x, 5) - 15 * Math.pow(x, 4) + 10 * Math.pow(x, 3);
113
- },
114
- interp: function (x, a, b) {
115
- return a + this.smootherstep(x) * (b - a);
116
- },
117
- seed: function () {
118
- this.gradients = {};
119
- this.memory = {};
120
- },
121
- get: function (x, y) {
122
- if (this.memory.hasOwnProperty(`${x},${y}`))
123
- return this.memory[`${x},${y}`];
124
- let xf = Math.floor(x);
125
- let yf = Math.floor(y);
126
- //interpolate
127
- let tl = this.dot_prod_grid(x, y, xf, yf);
128
- let tr = this.dot_prod_grid(x, y, xf + 1, yf);
129
- let bl = this.dot_prod_grid(x, y, xf, yf + 1);
130
- let br = this.dot_prod_grid(x, y, xf + 1, yf + 1);
131
- let xt = this.interp(x - xf, tl, tr);
132
- let xb = this.interp(x - xf, bl, br);
133
- let v = this.interp(y - yf, xt, xb);
134
- this.memory[`${x},${y}`] = v;
135
- return v;
136
- }
137
- };
138
- perlin.seed();
139
- return perlin;
140
- }
141
- exports.perlin = perlin;
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;
142
108
  exports.default = {
143
109
  random,
144
110
  isBrowser,
@@ -155,8 +121,9 @@ exports.default = {
155
121
  intersection,
156
122
  applyMixins,
157
123
  capitalize,
158
- perlin,
124
+ sharedArrayBuffer,
159
125
  generateUID,
160
- createConstructor
126
+ createConstructor,
127
+ toRadians
161
128
  };
162
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":";;;AAAA,SAAgB,MAAM,CAAC,GAAG,EAAE,GAAG;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;AAC5D,CAAC;AAFD,wBAEC;AAED,SAAgB,SAAS;IACrB,OAAO,OAAO,MAAM,KAAK,WAAW,CAAA;AACxC,CAAC;AAFD,8BAEC;AAED,SAAgB,UAAU,CAAC,GAAG;IAC1B,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,mBAAmB,CAAA;AACxD,CAAC;AAFD,gCAEC;AAED,SAAgB,OAAO,CAAC,IAAI;IACxB,OAAO,OAAO,IAAI,KAAK,UAAU;WAC1B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAHD,0BAGC;AAED,SAAgB,SAAS,CAAC,GAAG;IACzB,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AACrC,CAAC;AAFD,8BAEC;AAED,SAAgB,OAAO,CAAC,GAAG;IACvB,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACnC,CAAC;AAFD,0BAEC;AAED,SAAgB,QAAQ,CAAC,GAAG;IACxB,OAAO,OAAO,GAAG,IAAI,QAAQ,CAAA;AACjC,CAAC;AAFD,4BAEC;AAED,SAAgB,QAAQ,CAAC,GAAG;IACxB,OAAO,OAAO,GAAG,IAAI,QAAQ,CAAA;AACjC,CAAC;AAFD,4BAEC;AAED,SAAgB,YAAY,CAAC,GAAG,EAAE,MAAM;IACpC,OAAO,GAAG,YAAY,MAAM,CAAA;AAChC,CAAC;AAFD,oCAEC;AAED,SAAgB,SAAS,CAAC,KAAY;IAClC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC9B,CAAC;AAFD,8BAEC;AAED,SAAgB,SAAS,CAAC,KAAY;IAClC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;AAC1D,CAAC;AAFD,8BAEC;AAED,SAAgB,YAAY,CAAC,CAAC,MAAM,EAAE,IAAI,CAAmB,EAAE,CAAC,MAAM,EAAE,IAAI,CAAmB;IAC3F,OAAO,CAAC,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,CAAA;AACtF,CAAC;AAFD,oCAEC;AAED,SAAgB,UAAU,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAA;IACpC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACjD,CAAC;AAHD,gCAGC;AAED,SAAgB,WAAW,CAAC,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC;AAFD,kCAEC;AAED,SAAgB,WAAW,CAAC,WAAgB,EAAE,SAAgB;IAC1D,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC3B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChE,MAAM,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAC9E,IAAI,CAAC,YAAY,EAAE;gBACf,OAAM;aACT;YACG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAVD,kCAUC;AAED,SAAgB,WAAW;IACvB,IAAI,SAAS,GAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IAChD,IAAI,UAAU,GAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACjD,SAAS,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,UAAU,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,OAAO,SAAS,GAAG,UAAU,CAAA;AACjC,CAAC;AAND,kCAMC;AAED,SAAgB,iBAAiB,CAAC,GAAG,SAAS;IAC1C,OAAO;QACH,YAAY,GAAG,UAAU;YACrB,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;YAChC,CAAC,CAAC,CAAA;QACN,CAAC;KACJ,CAAA;AACL,CAAC;AARD,8CAQC;AAED,SAAgB,iBAAiB;IAC7B,IAAI,MAAM,CAAA;IACV,IAAI,OAAO,iBAAiB,IAAI,WAAW,EAAE;QACzC,MAAM,GAAG,iBAAiB,CAAA;KAC7B;SACI;QACD,MAAM,GAAG,WAAW,CAAA;KACvB;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AATD,8CASC;AAED,SAAgB,SAAS,CAAC,KAAa;IACnC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAA;AAClC,CAAC;AAFD,8BAEC;AAED,kBAAe;IACX,MAAM;IACN,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;IACP,YAAY;IACZ,SAAS;IACT,SAAS;IACT,WAAW;IACX,YAAY;IACZ,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,SAAS;CACZ,CAAA"}
@@ -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":";;;AAEA,MAAa,WAAW;IAIpB,YAAoB,WAAmB,EAAU,SAAiB,EAAU,UAAkB;QAA1E,gBAAW,GAAX,WAAW,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAQ;QAAU,eAAU,GAAV,UAAU,CAAQ;QAHtF,UAAK,GAA6B,IAAI,GAAG,EAAE,CAAA;QAC3C,iBAAY,GAA6B,IAAI,GAAG,EAAE,CAAA;IAEuC,CAAC;IAElG,IAAI,CAAC,MAAc;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,CAAA;QACvD,IAAI,CAAC,SAAS,IAAI,MAAM,CAAA;QACxB,IAAI,CAAC,UAAU,IAAI,MAAM,CAAA;QACzB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,YAAY,CAAC,CAAS,EAAE,CAAS;QAC7B,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9F,CAAC;IAEO,QAAQ,CAAC,GAAQ,EAAE,EAA2B;QAClD,MAAM,EACF,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACP,GAAG,GAAG,CAAA;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;QAC7D,KAAK,IAAI,CAAC,GAAC,CAAC,EAAG,CAAC,GAAG,OAAO,EAAG,CAAC,EAAE,EAAE;YAC9B,KAAK,IAAI,CAAC,GAAE,OAAO,EAAG,CAAC,IAAI,QAAQ,EAAG,CAAC,EAAE,EAAE;gBACvC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA;gBACxC,EAAE,CAAC,KAAK,CAAC,CAAA;aACZ;SACJ;IACL,CAAC;IAED,eAAe,CAAC,GAAQ;QACpB,IAAI,OAAO,GAAa,EAAE,CAAA;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;IAED,cAAc,CAAC,EAAU;QACrB,IAAI,OAAO,GAAa,EAAE,CAAA;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACvC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;IAED,kBAAkB,CAAC,EAAU;;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC3B,MAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,0CAAE,OAAO,CAAC,CAAC,SAAiB,EAAE,EAAE;;gBACrD,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,0CAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YACzC,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;SAC/B;IACL,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,GAA+D;QACrF,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAC3B,MAAM,KAAK,GAAgB,IAAI,GAAG,EAAE,CAAA;QACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;;YACzB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAChB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACzC,IAAI,CAAC,WAAW,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;aACnC;YACD,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC;CACJ;AA3ED,kCA2EC"}
@@ -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
@@ -1,7 +1,7 @@
1
- import { Direction, RpgCommonPlayer, PlayerType } from './Player';
2
- import RpgCommonEvent from './Event';
1
+ import { Direction, LiteralDirection, RpgCommonPlayer, PlayerType } from './Player';
2
+ import { RpgCommonEvent } from './Event';
3
3
  import RpgCommonMap from './Map';
4
- import RpgCommonGame from './Game';
4
+ import { RpgCommonGame, GameSide } from './Game';
5
5
  import { EventEmitter } from './EventEmitter';
6
6
  import { PrebuiltGui } from './gui/PrebuiltGui';
7
7
  import Utils from './Utils';
@@ -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, LiteralDirection, PrebuiltGui, PlayerType, Input, Control, MockIo, RpgPlugin, Plugin, HookServer, HookClient, Scheduler, Hit, RpgModule, loadModules, Logger, ModuleType, RpgShape, ShapePositioning, VirtualGrid, GameSide };
package/lib/index.js CHANGED
@@ -22,17 +22,19 @@ 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.GameSide = 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.LiteralDirection = 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
+ Object.defineProperty(exports, "LiteralDirection", { enumerable: true, get: function () { return Player_1.LiteralDirection; } });
28
29
  Object.defineProperty(exports, "RpgCommonPlayer", { enumerable: true, get: function () { return Player_1.RpgCommonPlayer; } });
29
30
  Object.defineProperty(exports, "PlayerType", { enumerable: true, get: function () { return Player_1.PlayerType; } });
30
- const Event_1 = __importDefault(require("./Event"));
31
- exports.RpgCommonEvent = Event_1.default;
31
+ const Event_1 = require("./Event");
32
+ Object.defineProperty(exports, "RpgCommonEvent", { enumerable: true, get: function () { return Event_1.RpgCommonEvent; } });
32
33
  const Map_1 = __importDefault(require("./Map"));
33
34
  exports.RpgCommonMap = Map_1.default;
34
- const Game_1 = __importDefault(require("./Game"));
35
- exports.RpgCommonGame = Game_1.default;
35
+ const Game_1 = require("./Game");
36
+ Object.defineProperty(exports, "RpgCommonGame", { enumerable: true, get: function () { return Game_1.RpgCommonGame; } });
37
+ Object.defineProperty(exports, "GameSide", { enumerable: true, get: function () { return Game_1.GameSide; } });
36
38
  const EventEmitter_1 = require("./EventEmitter");
37
39
  Object.defineProperty(exports, "EventEmitter", { enumerable: true, get: function () { return EventEmitter_1.EventEmitter; } });
38
40
  const PrebuiltGui_1 = require("./gui/PrebuiltGui");
@@ -62,4 +64,6 @@ exports.Logger = Logger;
62
64
  const Shape_1 = require("./Shape");
63
65
  Object.defineProperty(exports, "RpgShape", { enumerable: true, get: function () { return Shape_1.RpgShape; } });
64
66
  Object.defineProperty(exports, "ShapePositioning", { enumerable: true, get: function () { return Shape_1.ShapePositioning; } });
67
+ const VirtualGrid_1 = require("./VirtualGrid");
68
+ Object.defineProperty(exports, "VirtualGrid", { enumerable: true, get: function () { return VirtualGrid_1.VirtualGrid; } });
65
69
  //# 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,qCAAmF;AA0B/E,0FA1BK,kBAAS,OA0BL;AACT,iGA3BgB,yBAAgB,OA2BhB;AARhB,gGAnBkC,wBAAe,OAmBlC;AAUf,2FA7BmD,mBAAU,OA6BnD;AA5Bd,mCAAuC;AAmBnC,+FAnBI,sBAAc,OAmBJ;AAlBlB,gDAAgC;AAmB5B,uBAnBG,aAAY,CAmBH;AAlBhB,iCAAgD;AAmB5C,8FAnBK,oBAAa,OAmBL;AAwBb,yFA3CoB,eAAQ,OA2CpB;AA1CZ,iDAA6C;AAmBzC,6FAnBK,2BAAY,OAmBL;AAlBhB,mDAA+C;AAuB3C,4FAvBK,yBAAW,OAuBL;AAtBf,oDAA2B;AAkBvB,gBAlBG,eAAK,CAkBH;AAjBT,qCAAoE;AA0BhE,0FA1BK,kBAAS,OA0BL;AAET,2FA5BwB,mBAAU,OA4BxB;AACV,2FA7BoC,mBAAU,OA6BpC;AA5Bd,6DAA8C;AAiB1C,kCAAW;AAhBf,mCAAwC;AAqBpC,sFArBK,aAAK,OAqBL;AACL,wFAtBY,eAAO,OAsBZ;AArBX,+BAA2B;AA4BvB,oFA5BK,SAAG,OA4BL;AA3BP,2CAAuC;AA0BnC,0FA1BK,qBAAS,OA0BL;AAzBb,qCAA6D;AA2BzD,0FA3BK,kBAAS,OA2BL;AACT,4FA5BgB,oBAAW,OA4BhB;AA3Bf,wDAAyC;AAmBrC,wBAAM;AAlBV,iDAAmC;AA2B/B,wBAAM;AA1BV,mCAAoD;AA4BhD,yFA5BK,gBAAQ,OA4BL;AACR,iGA7Be,wBAAgB,OA6Bf;AA5BpB,+CAA2C;AA6BvC,4FA7BK,yBAAW,OA6BL"}