@rpgjs/common 3.3.2 → 4.0.0-beta.10
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/LICENSE +19 -0
- package/lib/AbstractObject.d.ts +3 -2
- package/lib/AbstractObject.js +296 -323
- package/lib/AbstractObject.js.map +1 -1
- package/lib/Color.js +1 -5
- package/lib/Color.js.map +1 -1
- package/lib/Event.js +2 -6
- package/lib/Event.js.map +1 -1
- package/lib/EventEmitter.js +3 -7
- package/lib/EventEmitter.js.map +1 -1
- package/lib/Game.js +73 -85
- package/lib/Game.js.map +1 -1
- package/lib/Hit.js +21 -28
- package/lib/Hit.js.map +1 -1
- package/lib/Logger.js +2 -7
- package/lib/Logger.js.map +1 -1
- package/lib/Map.d.ts +1 -0
- package/lib/Map.js +29 -53
- package/lib/Map.js.map +1 -1
- package/lib/Module.d.ts +2 -2
- package/lib/Module.js +84 -97
- package/lib/Module.js.map +1 -1
- package/lib/Player.d.ts +1 -0
- package/lib/Player.js +4 -7
- package/lib/Player.js.map +1 -1
- package/lib/Plugin.d.ts +4 -3
- package/lib/Plugin.js +14 -14
- package/lib/Plugin.js.map +1 -1
- package/lib/Scheduler.js +14 -21
- package/lib/Scheduler.js.map +1 -1
- package/lib/Shape.d.ts +1 -1
- package/lib/Shape.js +39 -52
- package/lib/Shape.js.map +1 -1
- package/lib/Utils.d.ts +4 -1
- package/lib/Utils.js +38 -53
- package/lib/Utils.js.map +1 -1
- package/lib/Vector2d.js +3 -8
- package/lib/Vector2d.js.map +1 -1
- package/lib/VirtualGrid.d.ts +1 -1
- package/lib/VirtualGrid.js +5 -12
- package/lib/VirtualGrid.js.map +1 -1
- package/lib/Worker.js +2 -10
- package/lib/Worker.js.map +1 -1
- package/lib/WorldMaps.d.ts +3 -1
- package/lib/WorldMaps.js +29 -15
- package/lib/WorldMaps.js.map +1 -1
- package/lib/gui/PrebuiltGui.js +2 -5
- package/lib/gui/PrebuiltGui.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.js +24 -69
- package/lib/index.js.map +1 -1
- package/lib/transports/io.js +5 -9
- package/lib/transports/io.js.map +1 -1
- package/lib/workers/move.js +26 -42
- package/lib/workers/move.js.map +1 -1
- package/package.json +9 -11
- package/src/AbstractObject.ts +915 -0
- package/src/Color.ts +29 -0
- package/src/DefaultInput.ts +26 -0
- package/src/Event.ts +3 -0
- package/src/EventEmitter.ts +52 -0
- package/src/Game.ts +150 -0
- package/src/Hit.ts +70 -0
- package/src/Logger.ts +7 -0
- package/src/Map.ts +335 -0
- package/src/Module.ts +108 -0
- package/src/Player.ts +30 -0
- package/src/Plugin.ts +91 -0
- package/src/Scheduler.ts +88 -0
- package/src/Shape.ts +300 -0
- package/src/Utils.ts +168 -0
- package/src/Vector2d.ts +70 -0
- package/src/VirtualGrid.ts +78 -0
- package/src/Worker.ts +17 -0
- package/src/WorldMaps.ts +204 -0
- package/src/gui/PrebuiltGui.ts +27 -0
- package/src/index.ts +24 -0
- package/src/transports/io.ts +91 -0
- package/src/workers/move.ts +61 -0
- package/tsconfig.json +25 -0
package/lib/Scheduler.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Scheduler = void 0;
|
|
7
|
-
const rxjs_1 = require("rxjs");
|
|
8
|
-
const EventEmitter_1 = require("./EventEmitter");
|
|
9
|
-
const Utils_1 = __importDefault(require("./Utils"));
|
|
10
|
-
class Scheduler extends EventEmitter_1.EventEmitter {
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { EventEmitter } from './EventEmitter';
|
|
3
|
+
import Utils from './Utils';
|
|
4
|
+
export class Scheduler extends EventEmitter {
|
|
11
5
|
constructor() {
|
|
12
6
|
super(...arguments);
|
|
13
7
|
this.fps = 60;
|
|
@@ -16,7 +10,7 @@ class Scheduler extends EventEmitter_1.EventEmitter {
|
|
|
16
10
|
this.timestamp = 0;
|
|
17
11
|
this.requestedDelay = 0;
|
|
18
12
|
this.lastTimestamp = 0;
|
|
19
|
-
this._tick = new
|
|
13
|
+
this._tick = new BehaviorSubject({
|
|
20
14
|
timestamp: 0,
|
|
21
15
|
deltaTime: 0,
|
|
22
16
|
frame: 0,
|
|
@@ -28,13 +22,13 @@ class Scheduler extends EventEmitter_1.EventEmitter {
|
|
|
28
22
|
}
|
|
29
23
|
nextTick(timestamp) {
|
|
30
24
|
this.lastTimestamp = this.lastTimestamp || this.timestamp; // first
|
|
31
|
-
this.deltaTime =
|
|
25
|
+
this.deltaTime = Utils.preciseNow() - this.timestamp;
|
|
32
26
|
this.timestamp = timestamp;
|
|
33
27
|
this._tick.next({
|
|
34
28
|
timestamp: this.timestamp,
|
|
35
29
|
deltaTime: this.deltaTime,
|
|
36
30
|
frame: this.frame,
|
|
37
|
-
deltaRatio: ~~this.deltaTime / ~~
|
|
31
|
+
deltaRatio: ~~this.deltaTime / ~~Utils.fps2ms(this.fps)
|
|
38
32
|
});
|
|
39
33
|
this.lastTimestamp = this.timestamp;
|
|
40
34
|
this.frame++;
|
|
@@ -51,14 +45,14 @@ class Scheduler extends EventEmitter_1.EventEmitter {
|
|
|
51
45
|
if (options.delay)
|
|
52
46
|
this.requestedDelay = options.delay;
|
|
53
47
|
const requestAnimationFrame = (fn) => {
|
|
54
|
-
if (
|
|
48
|
+
if (Utils.isBrowser()) {
|
|
55
49
|
window.requestAnimationFrame(fn.bind(this));
|
|
56
50
|
}
|
|
57
51
|
else {
|
|
58
52
|
setTimeout(() => {
|
|
59
53
|
this.requestedDelay = 0;
|
|
60
|
-
fn(
|
|
61
|
-
},
|
|
54
|
+
fn(Utils.preciseNow());
|
|
55
|
+
}, Utils.fps2ms(this.fps) + this.requestedDelay);
|
|
62
56
|
}
|
|
63
57
|
};
|
|
64
58
|
if (!this.maxFps) {
|
|
@@ -69,12 +63,12 @@ class Scheduler extends EventEmitter_1.EventEmitter {
|
|
|
69
63
|
requestAnimationFrame(loop);
|
|
70
64
|
}
|
|
71
65
|
else {
|
|
72
|
-
const msInterval =
|
|
73
|
-
let now =
|
|
74
|
-
let then =
|
|
66
|
+
const msInterval = Utils.fps2ms(this.maxFps);
|
|
67
|
+
let now = Utils.preciseNow();
|
|
68
|
+
let then = Utils.preciseNow();
|
|
75
69
|
const loop = (timestamp) => {
|
|
76
70
|
requestAnimationFrame(loop);
|
|
77
|
-
now =
|
|
71
|
+
now = Utils.preciseNow();
|
|
78
72
|
const elapsed = now - then;
|
|
79
73
|
if (elapsed > msInterval) {
|
|
80
74
|
then = now - (elapsed % msInterval);
|
|
@@ -86,5 +80,4 @@ class Scheduler extends EventEmitter_1.EventEmitter {
|
|
|
86
80
|
return this;
|
|
87
81
|
}
|
|
88
82
|
}
|
|
89
|
-
exports.Scheduler = Scheduler;
|
|
90
83
|
//# sourceMappingURL=Scheduler.js.map
|
package/lib/Scheduler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"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"}
|
package/lib/Shape.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare enum ShapePositioning {
|
|
|
6
6
|
Default = "default",
|
|
7
7
|
Center = "center"
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
type ShapeObject = TiledObjectClass & {
|
|
10
10
|
onIn?(player: RpgCommonPlayer): any;
|
|
11
11
|
onOut?(player: RpgCommonPlayer): any;
|
|
12
12
|
fixEvent?: RpgCommonPlayer;
|
package/lib/Shape.js
CHANGED
|
@@ -1,28 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.RpgShape = exports.ShapePositioning = void 0;
|
|
13
|
-
const Hit_1 = require("./Hit");
|
|
14
|
-
const tiled_1 = require("@rpgjs/tiled");
|
|
15
|
-
const types_1 = require("@rpgjs/types");
|
|
16
|
-
const Vector2d_1 = require("./Vector2d");
|
|
17
|
-
var ShapePositioning;
|
|
1
|
+
import { Hit, HitType } from './Hit';
|
|
2
|
+
import { TiledObjectClass } from '@rpgjs/tiled';
|
|
3
|
+
import { PlayerType } from '@rpgjs/types';
|
|
4
|
+
import { Vector2d } from './Vector2d';
|
|
5
|
+
export var ShapePositioning;
|
|
18
6
|
(function (ShapePositioning) {
|
|
19
7
|
ShapePositioning["Default"] = "default";
|
|
20
8
|
ShapePositioning["Center"] = "center";
|
|
21
|
-
})(ShapePositioning
|
|
22
|
-
class RpgShape extends
|
|
9
|
+
})(ShapePositioning || (ShapePositioning = {}));
|
|
10
|
+
export class RpgShape extends TiledObjectClass {
|
|
23
11
|
constructor(obj) {
|
|
24
12
|
super();
|
|
25
|
-
this.type =
|
|
13
|
+
this.type = HitType.Box;
|
|
26
14
|
this.class = '';
|
|
27
15
|
/**
|
|
28
16
|
* Get/Set name
|
|
@@ -132,7 +120,7 @@ class RpgShape extends tiled_1.TiledObjectClass {
|
|
|
132
120
|
this.setPos('y', val);
|
|
133
121
|
}
|
|
134
122
|
get position() {
|
|
135
|
-
return new
|
|
123
|
+
return new Vector2d(this.x, this.y, this.z);
|
|
136
124
|
}
|
|
137
125
|
/**
|
|
138
126
|
* Get/Set properties
|
|
@@ -142,19 +130,19 @@ class RpgShape extends tiled_1.TiledObjectClass {
|
|
|
142
130
|
* @memberof Shape
|
|
143
131
|
*/
|
|
144
132
|
isEvent() {
|
|
145
|
-
return this.type ==
|
|
133
|
+
return this.type == PlayerType.Event;
|
|
146
134
|
}
|
|
147
135
|
set(obj) {
|
|
148
|
-
const hit =
|
|
136
|
+
const hit = Hit.getHitbox(obj);
|
|
149
137
|
Object.assign(this, hit);
|
|
150
|
-
const objClone =
|
|
138
|
+
const objClone = { ...obj };
|
|
151
139
|
// Delete dimension and position because already managed and given by the hitbox above
|
|
152
140
|
['width', 'height', 'x', 'y'].forEach((prop) => Reflect.deleteProperty(objClone, prop));
|
|
153
141
|
Object.assign(this, objClone);
|
|
154
142
|
const findPoint = (prop, isMin) => {
|
|
155
143
|
return this.hitbox.points.sort((a, b) => isMin ? a[prop] - b[prop] : b[prop] - a[prop])[0][prop];
|
|
156
144
|
};
|
|
157
|
-
if (this.type ==
|
|
145
|
+
if (this.type == HitType.Polygon) {
|
|
158
146
|
this.hitbox.minX = findPoint('x', true);
|
|
159
147
|
this.hitbox.maxX = findPoint('x', false);
|
|
160
148
|
this.hitbox.minY = findPoint('y', true);
|
|
@@ -168,7 +156,11 @@ class RpgShape extends tiled_1.TiledObjectClass {
|
|
|
168
156
|
const color = this.getProperty('color');
|
|
169
157
|
const image = this.getProperty('image');
|
|
170
158
|
if (color) {
|
|
171
|
-
this.components = [{
|
|
159
|
+
this.components = [{
|
|
160
|
+
id: 'shape', value: {
|
|
161
|
+
fill: color
|
|
162
|
+
}
|
|
163
|
+
}];
|
|
172
164
|
return;
|
|
173
165
|
}
|
|
174
166
|
if (image) {
|
|
@@ -187,29 +179,25 @@ class RpgShape extends tiled_1.TiledObjectClass {
|
|
|
187
179
|
getType() {
|
|
188
180
|
return this.class || this.type;
|
|
189
181
|
}
|
|
190
|
-
in(player) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
return false;
|
|
200
|
-
});
|
|
182
|
+
async in(player) {
|
|
183
|
+
if (!this.playerIsIn(player)) {
|
|
184
|
+
this.playersIn[player.id] = true;
|
|
185
|
+
player.inShapes[this.name] = this;
|
|
186
|
+
await player.execMethod('onInShape', [this]);
|
|
187
|
+
await player.execMethod('onIn', [player], this);
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
return false;
|
|
201
191
|
}
|
|
202
|
-
out(player) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
return false;
|
|
212
|
-
});
|
|
192
|
+
async out(player) {
|
|
193
|
+
if (this.playerIsIn(player)) {
|
|
194
|
+
delete this.playersIn[player.id];
|
|
195
|
+
delete player.inShapes[this.name];
|
|
196
|
+
await player.execMethod('onOutShape', [this]);
|
|
197
|
+
await player.execMethod('onOut', [player], this);
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
return false;
|
|
213
201
|
}
|
|
214
202
|
/**
|
|
215
203
|
* Whether the player is in this shape
|
|
@@ -223,7 +211,7 @@ class RpgShape extends tiled_1.TiledObjectClass {
|
|
|
223
211
|
return !!this.playersIn[player.id];
|
|
224
212
|
}
|
|
225
213
|
isShapePosition() {
|
|
226
|
-
return this.type !==
|
|
214
|
+
return this.type !== HitType.Box && this.type !== HitType.Circle && this.type !== HitType.Polygon;
|
|
227
215
|
}
|
|
228
216
|
/**
|
|
229
217
|
* Recover the player with the shape. You must have used the `attachShape()` method on the player
|
|
@@ -243,7 +231,7 @@ class RpgShape extends tiled_1.TiledObjectClass {
|
|
|
243
231
|
* @returns { minX: number, minY: number, maxX: number, maxY: number }
|
|
244
232
|
*/
|
|
245
233
|
getSizeBox(margin = 0) {
|
|
246
|
-
if (this.type ==
|
|
234
|
+
if (this.type == HitType.Circle) {
|
|
247
235
|
const radius = this.hitbox.r;
|
|
248
236
|
return {
|
|
249
237
|
minX: this.x - radius - margin,
|
|
@@ -252,7 +240,7 @@ class RpgShape extends tiled_1.TiledObjectClass {
|
|
|
252
240
|
maxY: this.y + radius + margin
|
|
253
241
|
};
|
|
254
242
|
}
|
|
255
|
-
if (this.type ==
|
|
243
|
+
if (this.type == HitType.Polygon) {
|
|
256
244
|
return {
|
|
257
245
|
minX: this.x + this.hitbox.minX - margin,
|
|
258
246
|
maxX: this.x + this.hitbox.maxX + margin,
|
|
@@ -268,5 +256,4 @@ class RpgShape extends tiled_1.TiledObjectClass {
|
|
|
268
256
|
};
|
|
269
257
|
}
|
|
270
258
|
}
|
|
271
|
-
exports.RpgShape = RpgShape;
|
|
272
259
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"Shape.js","sourceRoot":"","sources":["../src/Shape.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;AACrB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AASD,MAAM,OAAO,QAAS,SAAQ,gBAAgB;IA4B1C,YAAY,GAAgB;QACxB,KAAK,EAAE,CAAA;QA3BX,SAAI,GAAW,OAAO,CAAC,GAAG,CAAA;QAC1B,UAAK,GAAW,EAAE,CAAA;QAClB;;;;;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;QACzD,eAAU,GAAU,EAAE,CAAA;QAIlB,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjB,CAAC;IAEO,MAAM,CAAC,IAAY,EAAE,GAAW;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;YAAE,OAAM;QAC5B,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;IACL,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,WAAW,CAAmB,WAAW,EAAE,KAAK,CAAC,CAAA;IACjE,CAAC;IAED,QAAQ;IACR,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,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;;;;;;MAME;IACF,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,KAAK,CAAC,GAAW;QACjB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACzB,CAAC;IAED;;;;;;MAME;IACF,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,MAAM,CAAC,GAAW;QAClB,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,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAS,GAAG,CAAC,CAAA;IACxC,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,IAAI,QAAQ;QACR,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED;;;;;;MAME;IAEF,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,CAAA;IACxC,CAAC;IAED,GAAG,CAAC,GAAgB;QAChB,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;QAC5B,sFAAsF;QACtF,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QACvF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7B,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE;YAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACpG,CAAC,CAAA;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAC3C;QACD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAA;IACvB,CAAC;IAED,YAAY;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAS,OAAO,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAS,OAAO,CAAC,CAAA;QAC/C,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,UAAU,GAAG,CAAC;oBACf,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;wBAChB,IAAI,EAAE,KAAK;qBACd;iBACJ,CAAC,CAAA;YACF,OAAM;SACT;QACD,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YACjD,OAAM;SACT;QACD,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACzD,OAAM;SACT;QACD,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YACnD,OAAM;SACT;IACL,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,MAAsB;QAC3B,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,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC5C,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAsB;QAC5B,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,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,MAAsB;QAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,CAAA;IACrG,CAAC;IAED;;;;;;;QAOI;IACJ,cAAc;QACV,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,SAAiB,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YAC5B,OAAO;gBACH,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM;gBAC9B,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM;gBAC9B,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM;gBAC9B,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM;aACjC,CAAA;SACJ;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;YAC9B,OAAO;gBACH,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM;gBACxC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM;gBACxC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM;gBACxC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM;aAC3C,CAAA;SACJ;QACD,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM;YACrB,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM;YAClC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM;YACrB,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM;SACtC,CAAA;IACL,CAAC;CACJ"}
|
package/lib/Utils.d.ts
CHANGED
|
@@ -18,7 +18,10 @@ export declare function generateUID(): string;
|
|
|
18
18
|
export declare function createConstructor<T>(...propNames: any[]): T;
|
|
19
19
|
export declare function sharedArrayBuffer(): any;
|
|
20
20
|
export declare function toRadians(angle: number): number;
|
|
21
|
-
export declare function hexaToNumber(hexa: string):
|
|
21
|
+
export declare function hexaToNumber(hexa: string): {
|
|
22
|
+
value: number;
|
|
23
|
+
alpha: number;
|
|
24
|
+
};
|
|
22
25
|
export declare function extractId(path: string): string | null;
|
|
23
26
|
export declare function basename(path: string): string;
|
|
24
27
|
export declare function fps2ms(fps: number): number;
|
package/lib/Utils.js
CHANGED
|
@@ -1,66 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.preciseNow = exports.fps2ms = exports.basename = exports.extractId = exports.hexaToNumber = 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
|
-
function random(min, max) {
|
|
1
|
+
export function random(min, max) {
|
|
5
2
|
return Math.floor(Math.random() * (max - min + 1) + min);
|
|
6
3
|
}
|
|
7
|
-
|
|
8
|
-
function isBrowser() {
|
|
4
|
+
export function isBrowser() {
|
|
9
5
|
return typeof window !== 'undefined';
|
|
10
6
|
}
|
|
11
|
-
|
|
12
|
-
function isFunction(val) {
|
|
7
|
+
export function isFunction(val) {
|
|
13
8
|
return {}.toString.call(val) === '[object Function]';
|
|
14
9
|
}
|
|
15
|
-
|
|
16
|
-
function isClass(func) {
|
|
10
|
+
export function isClass(func) {
|
|
17
11
|
return typeof func === 'function'
|
|
18
12
|
&& /^class\s/.test(Function.prototype.toString.call(func));
|
|
19
13
|
}
|
|
20
|
-
|
|
21
|
-
function isPromise(val) {
|
|
14
|
+
export function isPromise(val) {
|
|
22
15
|
return isInstanceOf(val, Promise);
|
|
23
16
|
}
|
|
24
|
-
|
|
25
|
-
function isArray(val) {
|
|
17
|
+
export function isArray(val) {
|
|
26
18
|
return isInstanceOf(val, Array);
|
|
27
19
|
}
|
|
28
|
-
|
|
29
|
-
function isObject(val) {
|
|
20
|
+
export function isObject(val) {
|
|
30
21
|
return typeof val == 'object' && val != null && !isArray(val);
|
|
31
22
|
}
|
|
32
|
-
|
|
33
|
-
function isString(val) {
|
|
23
|
+
export function isString(val) {
|
|
34
24
|
return typeof val == 'string';
|
|
35
25
|
}
|
|
36
|
-
|
|
37
|
-
function isInstanceOf(val, _class) {
|
|
26
|
+
export function isInstanceOf(val, _class) {
|
|
38
27
|
return val instanceof _class;
|
|
39
28
|
}
|
|
40
|
-
|
|
41
|
-
function arrayUniq(array) {
|
|
29
|
+
export function arrayUniq(array) {
|
|
42
30
|
return [...new Set(array)];
|
|
43
31
|
}
|
|
44
|
-
|
|
45
|
-
function arrayFlat(array) {
|
|
32
|
+
export function arrayFlat(array) {
|
|
46
33
|
return array.reduce((acc, val) => acc.concat(val), []);
|
|
47
34
|
}
|
|
48
|
-
|
|
49
|
-
function intersection([start1, end1], [start2, end2]) {
|
|
35
|
+
export function intersection([start1, end1], [start2, end2]) {
|
|
50
36
|
return (start1 >= start2 && start1 <= end2) || (start2 >= start1 && start2 < end1);
|
|
51
37
|
}
|
|
52
|
-
|
|
53
|
-
function capitalize(s) {
|
|
38
|
+
export function capitalize(s) {
|
|
54
39
|
if (typeof s !== 'string')
|
|
55
40
|
return '';
|
|
56
41
|
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
57
42
|
}
|
|
58
|
-
|
|
59
|
-
function arrayEquals(a, b) {
|
|
43
|
+
export function arrayEquals(a, b) {
|
|
60
44
|
return a.length === b.length && a.every((v, i) => v === b[i]);
|
|
61
45
|
}
|
|
62
|
-
|
|
63
|
-
function applyMixins(derivedCtor, baseCtors) {
|
|
46
|
+
export function applyMixins(derivedCtor, baseCtors) {
|
|
64
47
|
baseCtors.forEach((baseCtor) => {
|
|
65
48
|
Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
|
|
66
49
|
const baseCtorName = Object.getOwnPropertyDescriptor(baseCtor.prototype, name);
|
|
@@ -71,16 +54,14 @@ function applyMixins(derivedCtor, baseCtors) {
|
|
|
71
54
|
});
|
|
72
55
|
});
|
|
73
56
|
}
|
|
74
|
-
|
|
75
|
-
function generateUID() {
|
|
57
|
+
export function generateUID() {
|
|
76
58
|
let firstPart = (Math.random() * 46656) | 0;
|
|
77
59
|
let secondPart = (Math.random() * 46656) | 0;
|
|
78
60
|
firstPart = ("000" + firstPart.toString(36)).slice(-3);
|
|
79
61
|
secondPart = ("000" + secondPart.toString(36)).slice(-3);
|
|
80
62
|
return firstPart + secondPart;
|
|
81
63
|
}
|
|
82
|
-
|
|
83
|
-
function createConstructor(...propNames) {
|
|
64
|
+
export function createConstructor(...propNames) {
|
|
84
65
|
return class {
|
|
85
66
|
constructor(...propValues) {
|
|
86
67
|
propNames.forEach((name, idx) => {
|
|
@@ -89,8 +70,7 @@ function createConstructor(...propNames) {
|
|
|
89
70
|
}
|
|
90
71
|
};
|
|
91
72
|
}
|
|
92
|
-
|
|
93
|
-
function sharedArrayBuffer() {
|
|
73
|
+
export function sharedArrayBuffer() {
|
|
94
74
|
let buffer;
|
|
95
75
|
if (typeof SharedArrayBuffer != 'undefined') {
|
|
96
76
|
buffer = SharedArrayBuffer;
|
|
@@ -100,35 +80,40 @@ function sharedArrayBuffer() {
|
|
|
100
80
|
}
|
|
101
81
|
return buffer;
|
|
102
82
|
}
|
|
103
|
-
|
|
104
|
-
function toRadians(angle) {
|
|
83
|
+
export function toRadians(angle) {
|
|
105
84
|
return angle * (Math.PI / 180);
|
|
106
85
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
86
|
+
export function hexaToNumber(hexa) {
|
|
87
|
+
let val = hexa.replace('#', '');
|
|
88
|
+
let alpha = 1;
|
|
89
|
+
if (val.length === 3) {
|
|
90
|
+
val = val.split('').map((v) => v + v).join('');
|
|
91
|
+
}
|
|
92
|
+
if (val.length === 8) {
|
|
93
|
+
alpha = parseInt(val.substring(0, 2), 16) / 255;
|
|
94
|
+
val = val.substring(2);
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
value: parseInt(val, 16),
|
|
98
|
+
alpha
|
|
99
|
+
};
|
|
110
100
|
}
|
|
111
|
-
|
|
112
|
-
function extractId(path) {
|
|
101
|
+
export function extractId(path) {
|
|
113
102
|
const id = path.match(/([a-zA-Z0-9-_$!]+)\.[a-z]+$/i);
|
|
114
103
|
if (!id)
|
|
115
104
|
return null;
|
|
116
105
|
return id[1];
|
|
117
106
|
}
|
|
118
|
-
|
|
119
|
-
function basename(path) {
|
|
107
|
+
export function basename(path) {
|
|
120
108
|
return path.substring(path.lastIndexOf('/') + 1);
|
|
121
109
|
}
|
|
122
|
-
|
|
123
|
-
function fps2ms(fps) {
|
|
110
|
+
export function fps2ms(fps) {
|
|
124
111
|
return 1000 / fps;
|
|
125
112
|
}
|
|
126
|
-
|
|
127
|
-
function preciseNow() {
|
|
113
|
+
export function preciseNow() {
|
|
128
114
|
return typeof performance !== 'undefined' ? performance.now() : Date.now();
|
|
129
115
|
}
|
|
130
|
-
|
|
131
|
-
exports.default = {
|
|
116
|
+
export default {
|
|
132
117
|
random,
|
|
133
118
|
isBrowser,
|
|
134
119
|
isPromise,
|
package/lib/Utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,GAAW;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,SAAS;IACrB,OAAO,OAAO,MAAM,KAAK,WAAW,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAY;IACnC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,mBAAmB,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAa;IACjC,OAAO,OAAO,IAAI,KAAK,UAAU;WAC1B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAY;IAClC,OAAO,YAAY,CAAmB,GAAG,EAAE,OAAO,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAY;IAChC,OAAO,YAAY,CAAiB,GAAG,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAY;IACjC,OAAO,OAAO,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAY;IACjC,OAAO,OAAO,GAAG,IAAI,QAAQ,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAU,GAAY,EAAE,MAAW;IAC3D,OAAO,GAAG,YAAY,MAAM,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAY;IAClC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,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;AAED,MAAM,UAAU,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;AAED,MAAM,UAAU,UAAU,CAAC,CAAU;IACjC,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;AAED,MAAM,UAAU,WAAW,CAAC,CAAQ,EAAE,CAAQ;IAC5C,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;AAED,MAAM,UAAU,WAAW,CAAC,WAA6B,EAAE,SAA6B;IACpF,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;AAED,MAAM,UAAU,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;AAED,MAAM,UAAU,iBAAiB,CAAI,GAAG,SAAgB;IACpD,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;KACY,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,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;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACnC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IAIrC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QAClB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KACjD;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QAClB,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAA;QAC/C,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;KACzB;IACD,OAAO;QACH,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;QACxB,KAAK;KACR,CAAA;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IAClC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACrD,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IACpB,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAW;IAC9B,OAAO,IAAI,GAAG,GAAG,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,UAAU;IACtB,OAAO,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;AAC9E,CAAC;AAED,eAAe;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;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,UAAU;IACV,YAAY;CACf,CAAA"}
|
package/lib/Vector2d.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Vector2dZero = exports.Vector2d = void 0;
|
|
4
|
-
class Vector2d {
|
|
1
|
+
export class Vector2d {
|
|
5
2
|
constructor(x, y, z = 0) {
|
|
6
3
|
this.x = x;
|
|
7
4
|
this.y = y;
|
|
@@ -36,7 +33,7 @@ class Vector2d {
|
|
|
36
33
|
distanceWith(vector) {
|
|
37
34
|
const dx = this.x - vector.x;
|
|
38
35
|
const dy = this.y - vector.y;
|
|
39
|
-
return Math.sqrt(
|
|
36
|
+
return Math.sqrt(dx ** 2 + dy ** 2);
|
|
40
37
|
}
|
|
41
38
|
magnitude() {
|
|
42
39
|
return Math.sqrt(this.x * this.x + this.y * this.y);
|
|
@@ -58,11 +55,9 @@ class Vector2d {
|
|
|
58
55
|
this.z !== vector.z;
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
|
-
|
|
62
|
-
class Vector2dZero extends Vector2d {
|
|
58
|
+
export class Vector2dZero extends Vector2d {
|
|
63
59
|
constructor() {
|
|
64
60
|
super(0, 0);
|
|
65
61
|
}
|
|
66
62
|
}
|
|
67
|
-
exports.Vector2dZero = Vector2dZero;
|
|
68
63
|
//# sourceMappingURL=Vector2d.js.map
|
package/lib/Vector2d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vector2d.js","sourceRoot":"","sources":["../src/Vector2d.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Vector2d.js","sourceRoot":"","sources":["../src/Vector2d.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IACjB,YAAmB,CAAS,EAAS,CAAS,EAAS,IAAY,CAAC;QAAjD,MAAC,GAAD,CAAC,CAAQ;QAAS,MAAC,GAAD,CAAC,CAAQ;QAAS,MAAC,GAAD,CAAC,CAAY;IAAG,CAAC;IAExE,GAAG,CAAC,MAAgB;QAChB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QACjB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QACjB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,GAAG,CAAC,MAAgB;QAChB,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAA;QAClB,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,QAAQ,CAAC,MAAgB;QACrB,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAA;QAClB,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,QAAQ,CAAC,MAAc;QACnB,IAAI,CAAC,CAAC,IAAI,MAAM,CAAA;QAChB,IAAI,CAAC,CAAC,IAAI,MAAM,CAAA;QAChB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,CAAC,CAAC,IAAI,MAAM,CAAA;QAChB,IAAI,CAAC,CAAC,IAAI,MAAM,CAAA;QAChB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,YAAY,CAAC,MAAgB;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,IAAI;QACA,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,CAAC,MAAgB;QACpB,OAAO,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;YACnB,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAA;IACvB,CAAC;IAED,kBAAkB,CAAC,MAAgB;QAC/B,OAAO,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;YACnB,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAA;IACvB,CAAC;CACJ;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACtC;QACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACf,CAAC;CACJ"}
|
package/lib/VirtualGrid.d.ts
CHANGED
package/lib/VirtualGrid.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VirtualGrid = void 0;
|
|
4
|
-
class VirtualGrid {
|
|
1
|
+
export class VirtualGrid {
|
|
5
2
|
constructor(nbCellWidth, cellWidth, cellHeight) {
|
|
6
3
|
this.nbCellWidth = nbCellWidth;
|
|
7
4
|
this.cellWidth = cellWidth;
|
|
@@ -41,17 +38,15 @@ class VirtualGrid {
|
|
|
41
38
|
getObjectsById(id) {
|
|
42
39
|
let objects = [];
|
|
43
40
|
const cells = this.inverseCells.get(id);
|
|
44
|
-
cells
|
|
41
|
+
cells?.forEach((index) => {
|
|
45
42
|
objects = [...objects, ...this.cells.get(index) || []];
|
|
46
43
|
});
|
|
47
44
|
return new Set(objects);
|
|
48
45
|
}
|
|
49
46
|
clearObjectInCells(id) {
|
|
50
|
-
var _a;
|
|
51
47
|
if (this.inverseCells.has(id)) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
(_a = this.cells.get(cellIndex)) === null || _a === void 0 ? void 0 : _a.delete(id);
|
|
48
|
+
this.inverseCells.get(id)?.forEach((cellIndex) => {
|
|
49
|
+
this.cells.get(cellIndex)?.delete(id);
|
|
55
50
|
});
|
|
56
51
|
this.inverseCells.delete(id);
|
|
57
52
|
}
|
|
@@ -60,16 +55,14 @@ class VirtualGrid {
|
|
|
60
55
|
this.clearObjectInCells(id);
|
|
61
56
|
const cells = new Set();
|
|
62
57
|
this.getCells(box, (index) => {
|
|
63
|
-
var _a;
|
|
64
58
|
cells.add(index);
|
|
65
59
|
const memoryCells = this.cells.get(index);
|
|
66
60
|
if (!memoryCells) {
|
|
67
61
|
this.cells.set(index, new Set());
|
|
68
62
|
}
|
|
69
|
-
|
|
63
|
+
this.cells.get(index)?.add(id);
|
|
70
64
|
});
|
|
71
65
|
this.inverseCells.set(id, cells);
|
|
72
66
|
}
|
|
73
67
|
}
|
|
74
|
-
exports.VirtualGrid = VirtualGrid;
|
|
75
68
|
//# sourceMappingURL=VirtualGrid.js.map
|
package/lib/VirtualGrid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualGrid.js","sourceRoot":"","sources":["../src/VirtualGrid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VirtualGrid.js","sourceRoot":"","sources":["../src/VirtualGrid.ts"],"names":[],"mappings":"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"}
|