@woosh/meep-engine 2.109.18 → 2.109.20

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.
@@ -91716,7 +91716,7 @@ function observeDrag(up, down, move, dragStart, dragEnd, drag) {
91716
91716
  /**
91717
91717
  *
91718
91718
  * @param {Vector2} result
91719
- * @param {MouseEvent} event
91719
+ * @param {MouseEvent|Touch} event
91720
91720
  * @param {Element} source
91721
91721
  */
91722
91722
  function readPositionFromMouseEvent(result, event, source = event.target) {
@@ -91945,7 +91945,7 @@ class PointerDevice {
91945
91945
  #eventHandlerTouchMove = (event) => {
91946
91946
  event.preventDefault();
91947
91947
 
91948
- getTouchCenter(event.touches, position);
91948
+ getTouchCenter(event.touches, this.position);
91949
91949
 
91950
91950
  const delta = new Vector2();
91951
91951
 
@@ -92042,7 +92042,7 @@ class PointerDevice {
92042
92042
  /**
92043
92043
  *
92044
92044
  * @param {Vector2} result
92045
- * @param {MouseEvent|TouchEvent} event
92045
+ * @param {MouseEvent|Touch} event
92046
92046
  */
92047
92047
  readPointerPositionFromEvent(result, event) {
92048
92048
  readPositionFromMouseEvent(result, event, this.domElement);
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "description": "Fully featured ECS game engine written in JavaScript",
6
6
  "type": "module",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.109.18",
8
+ "version": "2.109.20",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -6,7 +6,7 @@
6
6
  * @param {boolean} [constructorNameFallback]
7
7
  */
8
8
  export function abstractJSONSerializer<T>(source: T, serializers: any, classNames: Map<any, string>, constructorNameFallback?: boolean): T | {
9
- type: string;
9
+ type: any;
10
10
  data: any;
11
11
  };
12
12
  //# sourceMappingURL=abstractJSONSerializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstractJSONSerializer.d.ts","sourceRoot":"","sources":["../../../../src/core/json/abstractJSONSerializer.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,mFAHW,SAAM,MAAM,CAAC,4BACb,OAAO;;;EAiEjB"}
1
+ {"version":3,"file":"abstractJSONSerializer.d.ts","sourceRoot":"","sources":["../../../../src/core/json/abstractJSONSerializer.js"],"names":[],"mappings":"AA+BA;;;;;;GAMG;AACH,mFAHW,SAAM,MAAM,CAAC,4BACb,OAAO;;;EA4DjB"}
@@ -1,3 +1,34 @@
1
+ /**
2
+ *
3
+ * @param {Function} Klass
4
+ * @param {Map<Function, string>} classNames
5
+ * @param {number} [max_depth] prevents infinite recursion
6
+ * @returns {*}
7
+ */
8
+ function resolve_class_name(Klass, classNames, max_depth = 64) {
9
+ let typeName = classNames.get(Klass);
10
+
11
+ if (typeName === undefined && Klass.hasOwnProperty("typeName")) {
12
+ // try fallback to "typeName" field on constructor
13
+ typeName = Klass.typeName;
14
+ }
15
+
16
+ if (typeName === undefined && max_depth > 0) {
17
+ // try walking up prototype chain
18
+
19
+ const proto = Object.getPrototypeOf(Klass);
20
+
21
+ if (proto !== null && typeof proto === "object") {
22
+
23
+ return resolve_class_name(proto, classNames, max_depth - 1);
24
+
25
+ }
26
+
27
+ }
28
+
29
+ return typeName;
30
+ }
31
+
1
32
  /**
2
33
  * @template T
3
34
  * @param {T} source
@@ -17,12 +48,7 @@ export function abstractJSONSerializer(source, serializers, classNames, construc
17
48
 
18
49
  // extract type name
19
50
  const Klass = source.constructor;
20
- let typeName = classNames.get(Klass);
21
-
22
- if (typeName === undefined && Klass.hasOwnProperty("typeName")) {
23
- // try fallback to "typeName" field on constructor
24
- typeName = Klass.typeName;
25
- }
51
+ let typeName = resolve_class_name(Klass, classNames);
26
52
 
27
53
  if (typeName === undefined && constructorNameFallback) {
28
54
  typeName = Klass.name;
@@ -1 +1 @@
1
- {"version":3,"file":"PointerDevice.d.ts","sourceRoot":"","sources":["../../../../../src/engine/input/devices/PointerDevice.js"],"names":[],"mappings":"AASA;;;;;;GAMG;AACH,wDAFY,OAAO,EAAE,CAapB;AAiRD;;;;;GAKG;AACH,mDAJW,OAAO,SACP,UAAU,WACV,OAAO,QAejB;AAED;;GAEG;AACH;IA2FI;;;;OAIG;IACH,wBAHW,WAAW,EA0CrB;IArID;;;;OAIG;IACH,mBAFU,OAAO,CAEQ;IAczB;;OAEG;IACH;;;;QAII;;WAEG;aADO,OAAO,OAAO,EAAE,CAAC,UAAU,GAAC,UAAU,CAAC,CAAC;;;;;;;;MAUpD;IAeF;;;OAGG;IACH,kBAAkB;IAElB;;;;OAIG;IACH,kBAFU,iBAAiB,EAAE,CAEL;IAExB;;;OAGG;IACH,yCAEC;IAED;;;OAGG;IACH,0CAEC;IAED;;;OAGG;IACH,2CAEC;IAgLD;;;OAGG;IACH,oBAFY,OAAO,CAIlB;IAED;;;OAGG;IACH,6BAsBC;IAED,0BAEC;IAED;;;;OAIG;IACH,qCAHW,OAAO,SACP,UAAU,GAAC,UAAU,QAI/B;IAED,cAkCC;IAED,aA2BC;;CACJ;oBA5rBmB,+BAA+B;mBADhC,uCAAuC;kCAMxB,wBAAwB"}
1
+ {"version":3,"file":"PointerDevice.d.ts","sourceRoot":"","sources":["../../../../../src/engine/input/devices/PointerDevice.js"],"names":[],"mappings":"AASA;;;;;;GAMG;AACH,wDAFY,OAAO,EAAE,CAapB;AAiRD;;;;;GAKG;AACH,mDAJW,OAAO,SACP,UAAU,GAAC,KAAK,WAChB,OAAO,QAejB;AAED;;GAEG;AACH;IA2FI;;;;OAIG;IACH,wBAHW,WAAW,EA0CrB;IArID;;;;OAIG;IACH,mBAFU,OAAO,CAEQ;IAczB;;OAEG;IACH;;;;QAII;;WAEG;aADO,OAAO,OAAO,EAAE,CAAC,UAAU,GAAC,UAAU,CAAC,CAAC;;;;;;;;MAUpD;IAeF;;;OAGG;IACH,kBAAkB;IAElB;;;;OAIG;IACH,kBAFU,iBAAiB,EAAE,CAEL;IAExB;;;OAGG;IACH,yCAEC;IAED;;;OAGG;IACH,0CAEC;IAED;;;OAGG;IACH,2CAEC;IAgLD;;;OAGG;IACH,oBAFY,OAAO,CAIlB;IAED;;;OAGG;IACH,6BAsBC;IAED,0BAEC;IAED;;;;OAIG;IACH,qCAHW,OAAO,SACP,UAAU,GAAC,KAAK,QAI1B;IAED,cAkCC;IAED,aA2BC;;CACJ;oBA5rBmB,+BAA+B;mBADhC,uCAAuC;kCAMxB,wBAAwB"}
@@ -301,7 +301,7 @@ function observeDrag(up, down, move, dragStart, dragEnd, drag) {
301
301
  /**
302
302
  *
303
303
  * @param {Vector2} result
304
- * @param {MouseEvent} event
304
+ * @param {MouseEvent|Touch} event
305
305
  * @param {Element} source
306
306
  */
307
307
  export function readPositionFromMouseEvent(result, event, source = event.target) {
@@ -531,7 +531,7 @@ export class PointerDevice {
531
531
  #eventHandlerTouchMove = (event) => {
532
532
  event.preventDefault();
533
533
 
534
- getTouchCenter(event.touches, position);
534
+ getTouchCenter(event.touches, this.position);
535
535
 
536
536
  const delta = new Vector2();
537
537
 
@@ -630,7 +630,7 @@ export class PointerDevice {
630
630
  /**
631
631
  *
632
632
  * @param {Vector2} result
633
- * @param {MouseEvent|TouchEvent} event
633
+ * @param {MouseEvent|Touch} event
634
634
  */
635
635
  readPointerPositionFromEvent(result, event) {
636
636
  readPositionFromMouseEvent(result, event, this.domElement);