@rpgjs/common 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/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
@@ -1,23 +1,108 @@
1
1
  import { RpgCommonPlayer } from './Player';
2
2
  import { HitObject } from './Hit';
3
+ export declare enum ShapePositioning {
4
+ Default = "default",
5
+ Center = "center"
6
+ }
3
7
  declare type ShapeObject = HitObject & {
4
8
  onIn?(player: RpgCommonPlayer): any;
5
9
  onOut?(player: RpgCommonPlayer): any;
10
+ fixEvent?: RpgCommonPlayer;
11
+ positioning?: ShapePositioning;
6
12
  };
7
- export declare class Shape {
8
- hitbox: any;
9
- properties: any;
13
+ export declare class RpgShape {
14
+ _hitbox: any;
15
+ private _properties;
10
16
  type: string;
17
+ /**
18
+ * Get/Set name
19
+ * @title name
20
+ * @prop { string } name
21
+ * @memberof Shape
22
+ */
11
23
  name: string;
24
+ fixEvent?: RpgCommonPlayer;
12
25
  private playersIn;
13
26
  private onIn;
14
27
  private onOut;
28
+ clientContainer: any;
29
+ /**
30
+ * Get/Set positioning
31
+ * @title positioning
32
+ * @prop { ShapePositioning } positioning
33
+ * @default default
34
+ * @memberof Shape
35
+ */
36
+ positioning?: ShapePositioning;
15
37
  constructor(obj: ShapeObject);
38
+ private setPos;
39
+ get hitbox(): any;
40
+ set hitbox(val: any);
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
+ /**
60
+ * Get/Set x
61
+ * @title x
62
+ * @prop { number } x
63
+ * @memberof Shape
64
+ */
65
+ get x(): number;
66
+ set x(val: number);
67
+ /**
68
+ * Get/Set y
69
+ * @title y
70
+ * @prop { number } y
71
+ * @memberof Shape
72
+ */
73
+ get y(): number;
74
+ set y(val: number);
75
+ /**
76
+ * Get/Set properties
77
+
78
+ * @title Properties
79
+ * @prop { object } Properties
80
+ * @memberof Shape
81
+ */
82
+ get properties(): any;
83
+ set properties(val: any);
16
84
  isEvent(): boolean;
17
85
  set(obj: ShapeObject): void;
18
86
  in(player: RpgCommonPlayer): boolean;
19
87
  out(player: RpgCommonPlayer): boolean;
88
+ /**
89
+ * Whether the player is in this shape
90
+ *
91
+ * @title Player is in this shape ?
92
+ * @method shape.playerIsIn(player)
93
+ * @returns {boolean}
94
+ * @memberof Shape
95
+ */
20
96
  playerIsIn(player: RpgCommonPlayer): boolean;
21
97
  isShapePosition(): boolean;
98
+ /**
99
+ * Recover the player with the shape. You must have used the `attachShape()` method on the player
100
+ *
101
+ * @title Get Player Owner
102
+ * @method shape.getPlayerOwner()
103
+ * @returns {RpgPlayer | undefined}
104
+ * @memberof Shape
105
+ */
106
+ getPlayerOwner(): RpgCommonPlayer | undefined;
22
107
  }
23
108
  export {};
package/lib/Shape.js CHANGED
@@ -1,21 +1,142 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Shape = void 0;
3
+ exports.RpgShape = exports.ShapePositioning = void 0;
4
4
  const Hit_1 = require("./Hit");
5
- class Shape {
5
+ var ShapePositioning;
6
+ (function (ShapePositioning) {
7
+ ShapePositioning["Default"] = "default";
8
+ ShapePositioning["Center"] = "center";
9
+ })(ShapePositioning = exports.ShapePositioning || (exports.ShapePositioning = {}));
10
+ class RpgShape {
6
11
  constructor(obj) {
7
- this.properties = {};
12
+ this._properties = {};
8
13
  this.type = 'box';
14
+ /**
15
+ * Get/Set name
16
+ * @title name
17
+ * @prop { string } name
18
+ * @memberof Shape
19
+ */
9
20
  this.name = '';
10
21
  this.playersIn = {};
22
+ this.clientContainer = null;
23
+ /**
24
+ * Get/Set positioning
25
+ * @title positioning
26
+ * @prop { ShapePositioning } positioning
27
+ * @default default
28
+ * @memberof Shape
29
+ */
30
+ this.positioning = ShapePositioning.Default;
11
31
  this.set(obj);
12
32
  }
33
+ setPos(type, val) {
34
+ if (this.isShapePosition()) {
35
+ this.hitbox[type] = val;
36
+ }
37
+ else {
38
+ this.hitbox.pos[type] = val;
39
+ }
40
+ if (this.clientContainer) {
41
+ if (type == 'w')
42
+ type = 'width';
43
+ else if (type == 'h')
44
+ type = 'height';
45
+ this.clientContainer[type] = val;
46
+ }
47
+ }
48
+ get hitbox() {
49
+ if (this.fixEvent) {
50
+ this._hitbox.pos.x = this.fixEvent.position.x;
51
+ this._hitbox.pos.y = this.fixEvent.position.y;
52
+ switch (this.positioning) {
53
+ case ShapePositioning.Center:
54
+ this._hitbox.pos.x -= this._hitbox.w / 2 - this.fixEvent.hitbox.w / 2;
55
+ this._hitbox.pos.y -= this._hitbox.h / 2 - this.fixEvent.hitbox.h / 2;
56
+ break;
57
+ }
58
+ }
59
+ return this._hitbox;
60
+ }
61
+ set hitbox(val) {
62
+ this._hitbox = val;
63
+ }
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
+ /**
91
+ * Get/Set x
92
+ * @title x
93
+ * @prop { number } x
94
+ * @memberof Shape
95
+ */
96
+ get x() {
97
+ return this.hitbox.x || this.hitbox.pos.x;
98
+ }
99
+ set x(val) {
100
+ this.setPos('x', val);
101
+ }
102
+ /**
103
+ * Get/Set y
104
+ * @title y
105
+ * @prop { number } y
106
+ * @memberof Shape
107
+ */
108
+ get y() {
109
+ return this.hitbox.y || this.hitbox.pos.y;
110
+ }
111
+ set y(val) {
112
+ this.setPos('y', val);
113
+ }
114
+ /**
115
+ * Get/Set properties
116
+
117
+ * @title Properties
118
+ * @prop { object } Properties
119
+ * @memberof Shape
120
+ */
121
+ get properties() {
122
+ if (this.fixEvent) {
123
+ return Object.assign({ z: this.fixEvent.position.z }, (this._properties || {}));
124
+ }
125
+ return this._properties;
126
+ }
127
+ set properties(val) {
128
+ this._properties = val;
129
+ }
13
130
  isEvent() {
14
131
  return this.type == 'event';
15
132
  }
16
133
  set(obj) {
17
134
  const hit = Hit_1.Hit.getHitbox(obj);
18
135
  Object.assign(this, hit);
136
+ this.x = obj.x || 0;
137
+ this.y = obj.y || 0;
138
+ this.positioning = obj.positioning;
139
+ this.fixEvent = obj.fixEvent;
19
140
  }
20
141
  in(player) {
21
142
  if (!this.playerIsIn(player)) {
@@ -37,12 +158,31 @@ class Shape {
37
158
  }
38
159
  return false;
39
160
  }
161
+ /**
162
+ * Whether the player is in this shape
163
+ *
164
+ * @title Player is in this shape ?
165
+ * @method shape.playerIsIn(player)
166
+ * @returns {boolean}
167
+ * @memberof Shape
168
+ */
40
169
  playerIsIn(player) {
41
170
  return !!this.playersIn[player.id];
42
171
  }
43
172
  isShapePosition() {
44
173
  return !this.hitbox.w;
45
174
  }
175
+ /**
176
+ * Recover the player with the shape. You must have used the `attachShape()` method on the player
177
+ *
178
+ * @title Get Player Owner
179
+ * @method shape.getPlayerOwner()
180
+ * @returns {RpgPlayer | undefined}
181
+ * @memberof Shape
182
+ */
183
+ getPlayerOwner() {
184
+ return this.fixEvent;
185
+ }
46
186
  }
47
- exports.Shape = Shape;
187
+ exports.RpgShape = RpgShape;
48
188
  //# sourceMappingURL=Shape.js.map
package/lib/Shape.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Shape.js","sourceRoot":"","sources":["../src/Shape.ts"],"names":[],"mappings":";;;AACA,+BAAsC;AAOtC,MAAa,KAAK;IAWd,YAAY,GAAgB;QAT5B,eAAU,GAAQ,EAAE,CAAA;QACpB,SAAI,GAAW,KAAK,CAAA;QACpB,SAAI,GAAW,EAAE,CAAA;QACT,cAAS,GAEb,EAAE,CAAA;QAKF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjB,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;IAC5B,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,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;CACJ;AArDD,sBAqDC"}
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,74 @@
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
+ cells.add(index);
64
+ const memoryCells = this.cells.get(index);
65
+ if (!memoryCells) {
66
+ this.cells.set(index, new Set());
67
+ }
68
+ memoryCells === null || memoryCells === void 0 ? void 0 : memoryCells.add(id);
69
+ });
70
+ this.inverseCells.set(id, cells);
71
+ }
72
+ }
73
+ exports.VirtualGrid = VirtualGrid;
74
+ //# 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
+ }