@woosh/meep-engine 2.126.62 → 2.126.64
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/package.json +1 -1
- package/src/core/collection/list/List.d.ts +3 -2
- package/src/core/collection/list/List.d.ts.map +1 -1
- package/src/core/collection/list/List.js +29 -1
- package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/AABB2.js +16 -9
- package/src/core/math/lerp.d.ts +5 -0
- package/src/core/math/lerp.d.ts.map +1 -1
- package/src/core/math/lerp.js +5 -0
- package/src/core/math/round_up.d.ts +15 -0
- package/src/core/math/round_up.d.ts.map +1 -0
- package/src/core/math/round_up.js +22 -0
- package/src/core/math/sqr.d.ts +3 -0
- package/src/core/math/sqr.d.ts.map +1 -1
- package/src/core/math/sqr.js +3 -0
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "Pure JavaScript game engine. Fully featured and production ready.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": "Alexander Goldring",
|
|
8
|
-
"version": "2.126.
|
|
8
|
+
"version": "2.126.64",
|
|
9
9
|
"main": "build/meep.module.js",
|
|
10
10
|
"module": "build/meep.module.js",
|
|
11
11
|
"exports": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":";AAQA;;;;;;;GAOG;AACH;
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":"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"}
|
|
@@ -28,9 +28,36 @@ class List {
|
|
|
28
28
|
* @readonly
|
|
29
29
|
* @type {Signal<T,number>}
|
|
30
30
|
*/
|
|
31
|
-
removed: new Signal()
|
|
31
|
+
removed: new Signal(),
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Captures both {@link #on.added} and {@link #on.removed} signals.
|
|
35
|
+
* Useful shortcut if you don't care about actual modifications, just the fact that something has changed.
|
|
36
|
+
* @readonly
|
|
37
|
+
* @type {Signal<>}
|
|
38
|
+
*/
|
|
39
|
+
get changed() {
|
|
40
|
+
// lazily initialization, don't want to create the signal and capture events if we don't need it
|
|
41
|
+
|
|
42
|
+
const signal = new Signal();
|
|
43
|
+
|
|
44
|
+
// pipe changes to an aggregate signal
|
|
45
|
+
this.added.add(signal.send0, signal);
|
|
46
|
+
this.removed.add(signal.send0, signal);
|
|
47
|
+
|
|
48
|
+
// rewrite the property to return the aggregate signal
|
|
49
|
+
Object.defineProperty(this, 'changed', {
|
|
50
|
+
value: signal,
|
|
51
|
+
writable: false,
|
|
52
|
+
enumerable: true,
|
|
53
|
+
configurable: false
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
return signal;
|
|
57
|
+
}
|
|
32
58
|
};
|
|
33
59
|
|
|
60
|
+
|
|
34
61
|
/**
|
|
35
62
|
* @readonly
|
|
36
63
|
* @type {T[]}
|
|
@@ -58,6 +85,7 @@ class List {
|
|
|
58
85
|
* @type {number}
|
|
59
86
|
*/
|
|
60
87
|
this.length = this.data.length;
|
|
88
|
+
|
|
61
89
|
}
|
|
62
90
|
|
|
63
91
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AABB2.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/aabb/AABB2.js"],"names":[],"mappings":";AAaA;;;GAGG;AACH;IACI;;;;;;OAMG;IACH,iBANW,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,EAuChB;IApBG;;;OAGG;IACH,IAFU,MAAM,CAEJ;IACZ;;;OAGG;IACH,IAFU,MAAM,CAEJ;IACZ;;;OAGG;IACH,IAFU,MAAM,CAEJ;IACZ;;;OAGG;IACH,IAFU,MAAM,CAEJ;IA8ChB;;OAEG;IACH,mBAEC;IAtCD;;;OAGG;IACH,gBAEC;IAkCD;;OAEG;IACH,mBAEC;IArCD;;;OAGG;IACH,gBAEC;IAiCD;;OAEG;IACH,mBAEC;IApCD;;;OAGG;IACH,gBAEC;IAgCD;;OAEG;IACH,mBAEC;IAnCD;;;OAGG;IACH,gBAEC;IA+BD;;;OAGG;IACH,gBAFW,MAAM,QAQhB;IAED;;;OAGG;IACH,iBAFW,MAAM,QAQhB;IAED;;;OAGG;IACH,WAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,aAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QA8BlB;IAED;;;OAGG;IACH,sBAFW,MAAM,QAShB;IAED;;;;;OAKG;IACH,sBAJW,KAAK,UACL,KAAK,GACH,OAAO,CAcnB;IAED;;;;OAIG;IACH,qBAHW,KAAK,GACH,OAAO,CAcnB;IAED;;;;;;;OAOG;IACH,0EAMC;IAED;;;;OAIG;IACH,qBAHW,MAAM,KACN,MAAM,QAKhB;IAED;;;;;;OAMG;IACH,0BALW,OAAO,MACP,OAAO,UACP,OAAO,GACL,OAAO,CA0BnB;IAED;;;;OAIG;IACH,kCAHW,OAAO,UACP,OAAO,QAmBjB;IAED;;;;OAIG;IACH,wBAHW,KAAK,GACH,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,sBANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CA4BlB;IAED;;;OAGG;IACH,eAFa,MAAM,CASlB;IAED;;;OAGG;IACH,sBAFY,MAAM,CAYjB;IAED;;;;;OAKG;IACH,iBAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAInB;IAED;;;OAGG;IACH,mBAFW,KAAK,QAIf;IAED;;;OAGG;IACH,mBAFW,OAAO,WAOjB;IAED;;;;OAIG;IACH,QAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,QAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,sBAEC;IAED;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"AABB2.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/aabb/AABB2.js"],"names":[],"mappings":"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"}
|
|
@@ -477,16 +477,15 @@ class AABB2 {
|
|
|
477
477
|
* @return {number}
|
|
478
478
|
*/
|
|
479
479
|
get centerY() {
|
|
480
|
-
|
|
481
480
|
return (this.y0 + this.y1) * 0.5
|
|
482
481
|
}
|
|
483
482
|
|
|
484
483
|
/**
|
|
485
|
-
*
|
|
484
|
+
* @deprecated prefer to use {@link width} property instead
|
|
486
485
|
* @returns {number}
|
|
487
486
|
*/
|
|
488
487
|
getWidth() {
|
|
489
|
-
return this.
|
|
488
|
+
return this.width;
|
|
490
489
|
}
|
|
491
490
|
|
|
492
491
|
/**
|
|
@@ -494,15 +493,16 @@ class AABB2 {
|
|
|
494
493
|
* @return {number}
|
|
495
494
|
*/
|
|
496
495
|
get width() {
|
|
497
|
-
return this.
|
|
496
|
+
return this.x1 - this.x0;
|
|
498
497
|
}
|
|
499
498
|
|
|
500
499
|
/**
|
|
501
500
|
*
|
|
501
|
+
* @deprecated prefer to use {@link height} property instead
|
|
502
502
|
* @returns {number}
|
|
503
503
|
*/
|
|
504
504
|
getHeight() {
|
|
505
|
-
return this.
|
|
505
|
+
return this.height;
|
|
506
506
|
}
|
|
507
507
|
|
|
508
508
|
/**
|
|
@@ -510,7 +510,7 @@ class AABB2 {
|
|
|
510
510
|
* @return {number}
|
|
511
511
|
*/
|
|
512
512
|
get height() {
|
|
513
|
-
return this.
|
|
513
|
+
return this.y1 - this.y0;
|
|
514
514
|
}
|
|
515
515
|
|
|
516
516
|
/**
|
|
@@ -520,6 +520,8 @@ class AABB2 {
|
|
|
520
520
|
* @param {Number} x1
|
|
521
521
|
* @param {Number} y1
|
|
522
522
|
* @returns {this}
|
|
523
|
+
*
|
|
524
|
+
* @see setBoundsUnordered
|
|
523
525
|
*/
|
|
524
526
|
set(x0, y0, x1, y1) {
|
|
525
527
|
assert.isNumber(x0, `x0`);
|
|
@@ -546,8 +548,8 @@ class AABB2 {
|
|
|
546
548
|
* @param {number} y
|
|
547
549
|
*/
|
|
548
550
|
setPosition(x, y) {
|
|
549
|
-
const width = this.
|
|
550
|
-
const height = this.
|
|
551
|
+
const width = this.width;
|
|
552
|
+
const height = this.height;
|
|
551
553
|
|
|
552
554
|
this.set(x, y, x + width, y + height);
|
|
553
555
|
}
|
|
@@ -598,7 +600,7 @@ class AABB2 {
|
|
|
598
600
|
*
|
|
599
601
|
* @return {number}
|
|
600
602
|
*/
|
|
601
|
-
hash(){
|
|
603
|
+
hash() {
|
|
602
604
|
let h = 0; // Initial hash value
|
|
603
605
|
|
|
604
606
|
// Prime numbers for mixing. These are often chosen to be large and coprime.
|
|
@@ -750,8 +752,13 @@ AABB2.prototype.isAABB2 = true;
|
|
|
750
752
|
AABB2.computeLineBetweenTwoBoxes = computeLineBetweenTwoBoxes;
|
|
751
753
|
|
|
752
754
|
/**
|
|
755
|
+
* Useful singleton with bounds 0,0,0,0.
|
|
753
756
|
* @readonly
|
|
754
757
|
* @type {AABB2}
|
|
758
|
+
* @example
|
|
759
|
+
* const box = new AABB();
|
|
760
|
+
* // ...
|
|
761
|
+
* box.copy(AABB.zero); // zero out
|
|
755
762
|
*/
|
|
756
763
|
AABB2.zero = Object.freeze(new AABB2(0, 0, 0, 0));
|
|
757
764
|
|
package/src/core/math/lerp.d.ts
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
* @param {number} b
|
|
6
6
|
* @param {number} fraction value between 0 and 1
|
|
7
7
|
* @return {number}
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* lerp(1, 2, 0.5) === 1.5
|
|
11
|
+
* lerp(1, 2, 0) === 1
|
|
12
|
+
* lerp(1, 2, 1) === 2
|
|
8
13
|
*/
|
|
9
14
|
export function lerp(a: number, b: number, fraction: number): number;
|
|
10
15
|
//# sourceMappingURL=lerp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lerp.d.ts","sourceRoot":"","sources":["../../../../src/core/math/lerp.js"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lerp.d.ts","sourceRoot":"","sources":["../../../../src/core/math/lerp.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAVW,MAAM,KACN,MAAM,YACN,MAAM,GACL,MAAM,CAUjB"}
|
package/src/core/math/lerp.js
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
* @param {number} b
|
|
6
6
|
* @param {number} fraction value between 0 and 1
|
|
7
7
|
* @return {number}
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* lerp(1, 2, 0.5) === 1.5
|
|
11
|
+
* lerp(1, 2, 0) === 1
|
|
12
|
+
* lerp(1, 2, 1) === 2
|
|
8
13
|
*/
|
|
9
14
|
export function lerp(a, b, fraction) {
|
|
10
15
|
const span = b - a;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @see https://www.w3.org/TR/WGSL/#roundup
|
|
3
|
+
* @param {number} x what to round
|
|
4
|
+
* @param {number} divisor divisor positive integer
|
|
5
|
+
* @return {number}
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* round_up(10, 2) === 10
|
|
9
|
+
* round_up(11, 2) === 12
|
|
10
|
+
* round_up(1, 10) === 10
|
|
11
|
+
* round_up(9, 10) === 10
|
|
12
|
+
* round_up(11, 10) === 20
|
|
13
|
+
*/
|
|
14
|
+
export function round_up(x: number, divisor: number): number;
|
|
15
|
+
//# sourceMappingURL=round_up.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"round_up.d.ts","sourceRoot":"","sources":["../../../../src/core/math/round_up.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,4BAXW,MAAM,WACN,MAAM,GACL,MAAM,CAejB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { assert } from "@woosh/meep-engine/src/core/assert";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @see https://www.w3.org/TR/WGSL/#roundup
|
|
5
|
+
* @param {number} x what to round
|
|
6
|
+
* @param {number} divisor divisor positive integer
|
|
7
|
+
* @return {number}
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* round_up(10, 2) === 10
|
|
11
|
+
* round_up(11, 2) === 12
|
|
12
|
+
* round_up(1, 10) === 10
|
|
13
|
+
* round_up(9, 10) === 10
|
|
14
|
+
* round_up(11, 10) === 20
|
|
15
|
+
*/
|
|
16
|
+
export function round_up(x, divisor) {
|
|
17
|
+
assert.isNonNegativeInteger(divisor, 'k');
|
|
18
|
+
assert.isNumber(x, 'n');
|
|
19
|
+
assert.notNaN(x, 'n');
|
|
20
|
+
|
|
21
|
+
return Math.ceil(x / divisor) * divisor
|
|
22
|
+
}
|
package/src/core/math/sqr.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqr.d.ts","sourceRoot":"","sources":["../../../../src/core/math/sqr.js"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sqr.d.ts","sourceRoot":"","sources":["../../../../src/core/math/sqr.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,uBANW,MAAM,GACJ,MAAM,CAOlB"}
|