@woosh/meep-engine 2.119.82 → 2.119.83

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 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.119.82",
8
+ "version": "2.119.83",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -1 +1 @@
1
- {"version":3,"file":"uint8_to_float.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/uint8_to_float.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,kCAHW,MAAM,GACJ,MAAM,CAOlB"}
1
+ {"version":3,"file":"uint8_to_float.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/uint8_to_float.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,kCAHW,MAAM,GACJ,MAAM,CAQlB"}
@@ -6,6 +6,7 @@ import { assert } from "../assert.js";
6
6
  * @returns {number}
7
7
  */
8
8
  export function uint8_to_float(v) {
9
+ assert.isNumber(v, 'v');
9
10
  assert.lessThanOrEqual(v, 255);
10
11
  assert.greaterThanOrEqual(v, 0);
11
12
 
@@ -22,8 +22,18 @@ export class Uint32Heap {
22
22
  * @private
23
23
  */
24
24
  private __data_float32;
25
- __capacity: number;
26
- __size: number;
25
+ /**
26
+ *
27
+ * @type {number}
28
+ * @private
29
+ */
30
+ private __capacity;
31
+ /**
32
+ *
33
+ * @type {number}
34
+ * @private
35
+ */
36
+ private __size;
27
37
  /**
28
38
  *
29
39
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"Uint32Heap.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/heap/Uint32Heap.js"],"names":[],"mappings":"AAiDA;;;;GAIG;AACH;IACI;;;OAGG;IACH,+BAFW,MAAM,EAuBhB;IAlBG,2BAA0E;IAE1E;;;;OAIG;IACH,sBAAwD;IAExD;;;;OAIG;IACH,uBAA0D;IAE1D,mBAAkC;IAClC,eAAe;IAGnB;;;OAGG;IACH,wBAsBC;IAED;;;;;OAKG;IACH,gBAOC;IAED;;;;;OAKG;IACH,aAiBC;IAED;;;OAGG;IACH,kBA6BC;IAED;;;;OAIG;IACH,gBAeC;IAED;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,uBAEC;IAED;;;OAGG;IACH,qBAEC;IAED;;;OAGG;IACH,YAFa,OAAO,CAInB;IAED,mBAEC;IAED,kBAoBC;IAED;;;;OAIG;IACH,qBAHW,MAAM,GACJ,MAAM,CAmBlB;IAED;;;;OAIG;IACH,aAHW,MAAM,GACJ,OAAO,CAInB;IAED;;OAEG;IACH,cAEC;IAED;;;;OAIG;IACH,WAHW,MAAM,GACJ,OAAO,CAWnB;IAED;;;OAGG;IACH,yBAFW,MAAM,QAehB;IAED;;;;OAIG;IACH,iBAHW,MAAM,SACN,MAAM,QAUhB;IAED;;;;OAIG;IACH,+BAHW,MAAM,SACN,MAAM,QAiBhB;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,MAAM,CAYlB;IAGD;;;;OAIG;IACH,qBAHW,MAAM,SACN,MAAM,QAUhB;IAED;;;;OAIG;IACH,WAHW,MAAM,SACN,MAAM,QA0BhB;CAGJ"}
1
+ {"version":3,"file":"Uint32Heap.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/heap/Uint32Heap.js"],"names":[],"mappings":"AAiDA;;;;GAIG;AACH;IACI;;;OAGG;IACH,+BAFW,MAAM,EAkChB;IA7BG,2BAA0E;IAE1E;;;;OAIG;IACH,sBAAwD;IAExD;;;;OAIG;IACH,uBAA0D;IAE1D;;;;OAIG;IACH,mBAAkC;IAElC;;;;OAIG;IACH,eAAe;IAGnB;;;OAGG;IACH,wBAsBC;IAED;;;;;OAKG;IACH,gBAOC;IAED;;;;;OAKG;IACH,aAiBC;IAED;;;OAGG;IACH,kBA6BC;IAED;;;;OAIG;IACH,gBAeC;IAED;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,uBAEC;IAED;;;OAGG;IACH,qBAEC;IAED;;;OAGG;IACH,YAFa,OAAO,CAInB;IAED,mBAEC;IAED,kBAoBC;IAED;;;;OAIG;IACH,qBAHW,MAAM,GACJ,MAAM,CAmBlB;IAED;;;;OAIG;IACH,aAHW,MAAM,GACJ,OAAO,CAInB;IAED;;OAEG;IACH,cAEC;IAED;;;;OAIG;IACH,WAHW,MAAM,GACJ,OAAO,CAWnB;IAED;;;OAGG;IACH,yBAFW,MAAM,QAehB;IAED;;;;OAIG;IACH,iBAHW,MAAM,SACN,MAAM,QAUhB;IAED;;;;OAIG;IACH,+BAHW,MAAM,SACN,MAAM,QAiBhB;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,MAAM,CAYlB;IAGD;;;;OAIG;IACH,qBAHW,MAAM,SACN,MAAM,QAUhB;IAED;;;;OAIG;IACH,WAHW,MAAM,SACN,MAAM,QA0BhB;CAGJ"}
@@ -76,7 +76,18 @@ export class Uint32Heap {
76
76
  */
77
77
  this.__data_float32 = new Float32Array(this.__data_buffer);
78
78
 
79
+ /**
80
+ *
81
+ * @type {number}
82
+ * @private
83
+ */
79
84
  this.__capacity = initial_capacity;
85
+
86
+ /**
87
+ *
88
+ * @type {number}
89
+ * @private
90
+ */
80
91
  this.__size = 0;
81
92
  }
82
93
 
@@ -1 +1 @@
1
- {"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../../../src/core/color/Color.js"],"names":[],"mappings":"AAkBA;;;GAGG;AACH;IAumBI;;;;;;OAMG;IACH,kBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,KAAK,CAIjB;IAED;;;;;;OAMG;IACH,kBALW,MAAM,KACN,MAAM,KACN,MAAM,GACL,KAAK,CAQhB;IAGD;;;;OAIG;IACH,kBAHW,MAAM,GACL,KAAK,CAQhB;IAED;;;;;OAKG;IACH,kCAJW,KAAK,WACL,KAAK,GACH,KAAK,CAOjB;IAED;;;;;OAKG;IACH,kCAJW,KAAK,WACL,KAAK,GACH,KAAK,CAMjB;IArqBD;;;;;;OAMG;IACH,gBALW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,EAuChB;IA/BG;;;;OAIG;IACH,GAFU,MAAM,CAEN;IACV;;;;OAIG;IACH,GAFU,MAAM,CAEN;IACV;;;;OAIG;IACH,GAFU,MAAM,CAEN;IAEV;;;;OAIG;IACH,GAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,oBAFU,OAAO,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,CAAC,CAE5C;IAWjC;;;OAGG;IACH,mBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,mBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,mBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,mBAEC;IAdD;;;OAGG;IACH,gBAEC;IAUD;;;OAGG;IACH,qBAEC;IAED;;;;;OAKG;IACH,UAJW,MAAM,KACN,MAAM,KACN,MAAM,QAKhB;IAED;;;;;OAKG;IACH,eAJW,MAAM,KACN,MAAM,KACN,MAAM,QAQhB;IAED;;;OAGG;IACH,QAFW,MAAM,QAIhB;IAED;;;;;;OAMG;IACH,OALW,MAAM,KACN,MAAM,KACN,MAAM,MACN,MAAM,QAyChB;IAED;;;;;OAKG;IACH,UAJW,MAAM,KACN,MAAM,KACN,MAAM,QAsBhB;IAED;;;;;OAKG;IACH,UAJW,MAAM,KACN,MAAM,KACN,MAAM,QAqDhB;IAED;;;;;;;OAOG;IACH,UALW,MAAM,KACN,MAAM,KACN,MAAM,QAyDhB;IAED;;;;;OAKG;IACH,UAJW,MAAM,KACN,MAAM,KACN,MAAM,QA6ChB;IAED;;;OAGG;IACH,oBAFY,MAAM,CAIjB;IAED;;;;MAMC;IAED;;;OAGG;IACH,UAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,gBAFW,MAAM,QAUhB;IAED;;;;OAIG;IACH,SAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,mBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,cAFW,KAAK,WAOf;IAED;;;OAGG;IACH,YAFW,KAAK,QAKf;IAED;;;OAGG;IACH,SAFa,KAAK,CAQjB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED;;;;;aAEC;IAED;;;;;MAOC;IAWD;;;;;OAKG;IACH,sBAJW,MAAM,EAAE,uBACR,MAAM,GACJ,MAAM,EAAE,CASpB;IAED;;;;OAIG;IACH,kBAHW,MAAM,EAAE,GAAC,YAAY,WACrB,MAAM,QAShB;IAGD;;;OAGG;IACH,2CAKC;IAED;;;OAGG;IACH,6CAOC;IAED;;;;OAIG;IACH,WAHW,MAAM,GACJ,IAAI,CAYhB;IAED;;;;;OAKG;IACH,cAJW,KAAK,KACL,KAAK,KACL,MAAM,QAOhB;IAoEL;;;OAGG;IACH,sCAxJe,MAAM,EAAE,uBACR,MAAM,KACJ,MAAM,EAAE,CAsJG;IAnKxB,sDAOC;CAsJJ;;aAUS,SAAS,KAAK,CAAC;eAMf,SAAS,KAAK,CAAC;cAMf,SAAS,KAAK,CAAC;gBAMf,SAAS,KAAK,CAAC;cAMf,SAAS,KAAK,CAAC;iBAMf,SAAS,KAAK,CAAC;eAMf,SAAS,KAAK,CAAC;eAMf,SAAS,KAAK,CAAC;qBAMf,SAAS,KAAK,CAAC;;mBApvBN,4BAA4B"}
1
+ {"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../../../src/core/color/Color.js"],"names":[],"mappings":"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"}
@@ -2,12 +2,13 @@ import { assert } from "../assert.js";
2
2
  import { float_to_uint8 } from "../binary/float_to_uint8.js";
3
3
  import { uint8_to_float } from "../binary/uint8_to_float.js";
4
4
  import Signal from "../events/signal/Signal.js";
5
- import { clamp01 } from "../math/clamp01.js";
6
5
  import { lerp } from "../math/lerp.js";
7
6
  import { max2 } from "../math/max2.js";
8
7
  import { min2 } from "../math/min2.js";
9
8
  import { min3 } from "../math/min3.js";
10
9
  import { rgb2hex } from "./hex/rgb2hex.js";
10
+
11
+ import { hsv2rgb_float } from "./hsv/hsv2rgb_float.js";
11
12
  import { rgb2hsv } from "./hsv/rgb2hsv.js";
12
13
  import { parse_color } from "./parse_color.js";
13
14
  import { rgb2uint24 } from "./rgb2uint24.js";
@@ -131,6 +132,40 @@ export class Color {
131
132
  this.a = v;
132
133
  }
133
134
 
135
+ // XYZW accessors
136
+
137
+ /**
138
+ *
139
+ * @returns {number}
140
+ */
141
+ get x() {
142
+ return this.r;
143
+ }
144
+
145
+ /**
146
+ *
147
+ * @returns {number}
148
+ */
149
+ get y() {
150
+ return this.g;
151
+ }
152
+
153
+ /**
154
+ *
155
+ * @returns {number}
156
+ */
157
+ get z() {
158
+ return this.b;
159
+ }
160
+
161
+ /**
162
+ *
163
+ * @returns {number}
164
+ */
165
+ get w() {
166
+ return this.a;
167
+ }
168
+
134
169
  /**
135
170
  * Pretending to be an array
136
171
  * @return {number}
@@ -152,9 +187,9 @@ export class Color {
152
187
 
153
188
  /**
154
189
  *
155
- * @param {number} r [0..255]
156
- * @param {number} g [0..255]
157
- * @param {number} b [0..255]
190
+ * @param {number} r in range of 0..255
191
+ * @param {number} g in range of 0..255
192
+ * @param {number} b in range of 0..255
158
193
  */
159
194
  setRGBUint8(r, g, b) {
160
195
  this.setRGB(
@@ -378,46 +413,7 @@ export class Color {
378
413
  * @param {number} v 0..1
379
414
  */
380
415
  setHSV(h, s, v) {
381
- let _h = h;
382
-
383
- if (_h < 0) {
384
- // move into positive range
385
- _h = _h + Math.ceil(Math.abs(_h));
386
- }
387
-
388
- _h = _h % 1
389
-
390
- const _s = clamp01(s);
391
- const _v = clamp01(v);
392
-
393
- let r, g, b;
394
-
395
- const i = Math.floor(_h * 6);
396
- const f = _h * 6 - i;
397
- const p = _v * (1 - _s);
398
- const q = _v * (1 - f * _s);
399
- const t = _v * (1 - (1 - f) * _s);
400
-
401
- switch (i % 6) {
402
- case 0:
403
- r = _v, g = t, b = p;
404
- break;
405
- case 1:
406
- r = q, g = _v, b = p;
407
- break;
408
- case 2:
409
- r = p, g = _v, b = t;
410
- break;
411
- case 3:
412
- r = p, g = q, b = _v;
413
- break;
414
- case 4:
415
- r = t, g = p, b = _v;
416
- break;
417
- case 5:
418
- r = _v, g = p, b = q;
419
- break;
420
- }
416
+ const { r, g, b } = hsv2rgb_float(h, s, v);
421
417
 
422
418
  this.setRGB(r, g, b);
423
419
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hsv2rgb.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/hsv/hsv2rgb.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,2BALW,MAAM,KACN,MAAM,KACN,MAAM;OACA,MAAM;OAAK,MAAM;OAAK,MAAM;EAkD5C"}
1
+ {"version":3,"file":"hsv2rgb.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/hsv/hsv2rgb.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,2BALW,MAAM,KACN,MAAM,KACN,MAAM;OACA,MAAM;OAAK,MAAM;OAAK,MAAM;EAW5C"}
@@ -1,5 +1,5 @@
1
1
  import { float_to_uint8 } from "../../binary/float_to_uint8.js";
2
- import { clamp01 } from "../../math/clamp01.js";
2
+ import { hsv2rgb_float } from "./hsv2rgb_float.js";
3
3
 
4
4
  /**
5
5
  *
@@ -10,47 +10,8 @@ import { clamp01 } from "../../math/clamp01.js";
10
10
  */
11
11
  export function hsv2rgb(h, s, v) {
12
12
 
13
- let _h = h;
13
+ const {r,g,b} = hsv2rgb_float(h,s,v);
14
14
 
15
- if (_h < 0) {
16
- _h = _h + Math.ceil(Math.abs(_h));
17
- }
18
-
19
- _h = _h % 1;
20
-
21
- const _s = clamp01(s);
22
- const _v = clamp01(v);
23
-
24
- let r, g, b, i, f, p, q, t;
25
-
26
- i = Math.floor(_h * 6);
27
-
28
- f = _h * 6 - i;
29
-
30
- p = _v * (1 - _s);
31
- q = _v * (1 - f * _s);
32
- t = _v * (1 - (1 - f) * _s);
33
-
34
- switch (i % 6) {
35
- case 0:
36
- r = _v, g = t, b = p;
37
- break;
38
- case 1:
39
- r = q, g = _v, b = p;
40
- break;
41
- case 2:
42
- r = p, g = _v, b = t;
43
- break;
44
- case 3:
45
- r = p, g = q, b = _v;
46
- break;
47
- case 4:
48
- r = t, g = p, b = _v;
49
- break;
50
- case 5:
51
- r = _v, g = p, b = q;
52
- break;
53
- }
54
15
  return {
55
16
  r: float_to_uint8(r),
56
17
  g: float_to_uint8(g),
@@ -0,0 +1,13 @@
1
+ /**
2
+ *
3
+ * @param {number} h from 0 to 1
4
+ * @param {number} s from 0 to 1
5
+ * @param {number} v from 0 to 1
6
+ * @returns {{r: number, g: number, b: number}} output in range 0..1
7
+ */
8
+ export function hsv2rgb_float(h: number, s: number, v: number): {
9
+ r: number;
10
+ g: number;
11
+ b: number;
12
+ };
13
+ //# sourceMappingURL=hsv2rgb_float.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hsv2rgb_float.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/hsv/hsv2rgb_float.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,iCALW,MAAM,KACN,MAAM,KACN,MAAM;OACA,MAAM;OAAK,MAAM;OAAK,MAAM;EAgD5C"}
@@ -0,0 +1,56 @@
1
+ import { clamp01 } from "../../math/clamp01.js";
2
+
3
+ /**
4
+ *
5
+ * @param {number} h from 0 to 1
6
+ * @param {number} s from 0 to 1
7
+ * @param {number} v from 0 to 1
8
+ * @returns {{r: number, g: number, b: number}} output in range 0..1
9
+ */
10
+ export function hsv2rgb_float(h, s, v) {
11
+ let _h = h;
12
+
13
+ if (_h < 0) {
14
+ _h = _h + Math.ceil(Math.abs(_h));
15
+ }
16
+
17
+ _h = _h % 1;
18
+
19
+ const _s = clamp01(s);
20
+ const _v = clamp01(v);
21
+
22
+ let r, g, b, i, f, p, q, t;
23
+
24
+ i = Math.floor(_h * 6);
25
+
26
+ f = _h * 6 - i;
27
+
28
+ p = _v * (1 - _s);
29
+ q = _v * (1 - f * _s);
30
+ t = _v * (1 - (1 - f) * _s);
31
+
32
+ switch (i % 6) {
33
+ case 0:
34
+ r = _v, g = t, b = p;
35
+ break;
36
+ case 1:
37
+ r = q, g = _v, b = p;
38
+ break;
39
+ case 2:
40
+ r = p, g = _v, b = t;
41
+ break;
42
+ case 3:
43
+ r = p, g = q, b = _v;
44
+ break;
45
+ case 4:
46
+ r = t, g = p, b = _v;
47
+ break;
48
+ case 5:
49
+ r = _v, g = p, b = q;
50
+ break;
51
+ }
52
+
53
+ return {
54
+ r, g, b
55
+ }
56
+ }
@@ -1,9 +1,22 @@
1
1
  /**
2
2
  *
3
3
  * @param {number[]|Float32Array|mat4} result
4
- * @param {Vector3} position
5
- * @param {Quaternion} rotation
6
- * @param {Vector3} scale
4
+ * @param { { x:number, y:number, z:number } } position
5
+ * @param { { x:number, y:number, z:number, w:number } } rotation
6
+ * @param { { x:number, y:number, z:number } } scale
7
7
  */
8
- export function compose_matrix4_array(result: number[] | Float32Array | mat4, position: Vector3, rotation: Quaternion, scale: Vector3): void;
8
+ export function compose_matrix4_array(result: number[] | Float32Array | mat4, position: {
9
+ x: number;
10
+ y: number;
11
+ z: number;
12
+ }, rotation: {
13
+ x: number;
14
+ y: number;
15
+ z: number;
16
+ w: number;
17
+ }, scale: {
18
+ x: number;
19
+ y: number;
20
+ z: number;
21
+ }): void;
9
22
  //# sourceMappingURL=compose_matrix4_array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose_matrix4_array.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/3d/compose_matrix4_array.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,8CALW,MAAM,EAAE,GAAC,YAAY,OAAK,iEAkDpC"}
1
+ {"version":3,"file":"compose_matrix4_array.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/3d/compose_matrix4_array.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,8CALW,MAAM,EAAE,GAAC,YAAY,OAAK;OACrB,MAAM;OAAI,MAAM;OAAI,MAAM;;OAC1B,MAAM;OAAI,MAAM;OAAI,MAAM;OAAI,MAAM;;OACpC,MAAM;OAAI,MAAM;OAAI,MAAM;SA+CzC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  *
3
3
  * @param {number[]|Float32Array|mat4} result
4
- * @param {Vector3} position
5
- * @param {Quaternion} rotation
6
- * @param {Vector3} scale
4
+ * @param { { x:number, y:number, z:number } } position
5
+ * @param { { x:number, y:number, z:number, w:number } } rotation
6
+ * @param { { x:number, y:number, z:number } } scale
7
7
  */
8
8
  export function compose_matrix4_array(result, position, rotation, scale) {
9
9
  const x = rotation.x;
@@ -1 +1 @@
1
- {"version":3,"file":"Light.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/Light.js"],"names":[],"mappings":"AASA;IA+DI;;;;OAIG;IACH,yBAFa,KAAK,CAQjB;IApEG;;;OAGG;IACH,wBAA4D;IAE5D;;;OAGG;IACH,OAFU,KAAK,CAEgB;IAE/B;;;OAGG;IACH,WAFU,OAAO,CAEc;IAE/B;;;OAGG;IACH,OAFU,OAAO,CAEoB;IAErC;;;OAGG;IACH,UAFU,OAAO,CAEe;IAEhC;;;OAGG;IACH,UAFU,OAAO,CAE4B;IAE7C;;;OAGG;IACH,YAFU,eAAe,CAEmB;IAE5C;;;;OAIG;IACH,sBAAyB;IAEzB;;;;OAIG;IACH,mBAAsB;IAgB1B,0BAgDC;IAED;;;;;MAqBC;CACJ;;;;;yBA1JwB,wCAAwC;sBAH3C,iCAAiC;oBACnC,kCAAkC;4BAC1B,2CAA2C;0BAE7C,gBAAgB"}
1
+ {"version":3,"file":"Light.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/Light.js"],"names":[],"mappings":"AASA;IA+DI;;;;OAIG;IACH,yBAFa,KAAK,CAQjB;IApEG;;;OAGG;IACH,wBAA4D;IAE5D;;;OAGG;IACH,OAFU,KAAK,CAEgB;IAE/B;;;OAGG;IACH,WAFU,OAAO,CAEc;IAE/B;;;OAGG;IACH,OAFU,OAAO,CAEoB;IAErC;;;OAGG;IACH,UAFU,OAAO,CAEe;IAEhC;;;OAGG;IACH,UAFU,OAAO,CAE4B;IAE7C;;;OAGG;IACH,YAFU,eAAe,CAEmB;IAE5C;;;;OAIG;IACH,sBAAyB;IAEzB;;;;OAIG;IACH,mBAAsB;IAgB1B,0BAqDC;IAED;;;;;MAqBC;CACJ;;;;;yBA/JwB,wCAAwC;sBAH3C,iCAAiC;oBACnC,kCAAkC;4BAC1B,2CAA2C;0BAE7C,gBAAgB"}
@@ -88,11 +88,16 @@ export class Light {
88
88
  this.type.fromJSON(json.type);
89
89
  }
90
90
 
91
- if (json.color !== undefined) {
92
- if (typeof json.color === "string") {
93
- this.color.parse(json.color);
91
+ const j_color = json.color;
92
+
93
+ if (j_color !== undefined) {
94
+ const type = typeof j_color;
95
+ if (type === "string") {
96
+ this.color.parse(j_color);
97
+ } else if (type === "object") {
98
+ this.color.fromJSON(j_color);
94
99
  } else {
95
- this.color.fromUint(json.color);
100
+ this.color.fromUint(j_color);
96
101
  }
97
102
  } else {
98
103
  // default