@woosh/meep-engine 2.88.0 → 2.88.2

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.
@@ -66743,7 +66743,7 @@ class SGMesh {
66743
66743
  * Do not modify contents unless you know exactly what you're doing
66744
66744
  * @returns {EntityNode|null}
66745
66745
  */
66746
- get node(){
66746
+ get node() {
66747
66747
  return this.__node;
66748
66748
  }
66749
66749
 
@@ -66955,6 +66955,22 @@ class SGMesh {
66955
66955
 
66956
66956
  return r;
66957
66957
  }
66958
+
66959
+ toJSON() {
66960
+ return {
66961
+ url: this.__url,
66962
+ receiveShadow: this.receiveShadow,
66963
+ castShadow: this.castShadow,
66964
+ };
66965
+ }
66966
+
66967
+ fromJSON({ url, receiveShadow = true, castShadow = true }) {
66968
+ this.clearFlag(SGMeshFlags.Loaded);
66969
+
66970
+ this.__url = url;
66971
+ this.receiveShadow = receiveShadow;
66972
+ this.castShadow = castShadow;
66973
+ }
66958
66974
  }
66959
66975
 
66960
66976
  SGMesh.typeName = "SGMesh";
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.88.0",
8
+ "version": "2.88.2",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -5,13 +5,15 @@
5
5
  * @param {ParameterLookupTable} [params.lut]
6
6
  * @param {NumericInterval} [params.range] Range of values of interest within the sampler that are to be mapped onto LUT
7
7
  * @param {function(number):number} [params.lookupScaleFunction]
8
+ * @param {number} [params.channel]
8
9
  */
9
- export function paintTerrainOverlayViaLookupTable({ overlay, sampler, lut, range, lookupScaleFunction }: {
10
+ export function paintTerrainOverlayViaLookupTable({ overlay, sampler, lut, range, lookupScaleFunction, channel }: {
10
11
  overlay: TerrainOverlay;
11
12
  sampler: Sampler2D;
12
13
  lut?: ParameterLookupTable;
13
14
  range?: NumericInterval;
14
15
  lookupScaleFunction?: (arg0: number) => number;
16
+ channel?: number;
15
17
  }): void;
16
18
  import { Sampler2D } from "../../../graphics/texture/sampler/Sampler2D.js";
17
19
  import { ParameterLookupTable } from "../../../graphics/particles/particular/engine/parameter/ParameterLookupTable.js";
@@ -1 +1 @@
1
- {"version":3,"file":"paintTerrainOverlayViaLookupTable.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.js"],"names":[],"mappings":"AAmBA;;;;;;;GAOG;AACH;IANkC,OAAO;IACZ,OAAO,EAAzB,SAAS;IACqB,GAAG,GAAjC,oBAAoB;IACK,KAAK,GAA9B,eAAe;IACkB,mBAAmB,UAA3C,MAAM,KAAE,MAAM;SA0CjC;0BA9DyB,gDAAgD;qCAFrC,iFAAiF;gCADtF,mDAAmD"}
1
+ {"version":3,"file":"paintTerrainOverlayViaLookupTable.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.js"],"names":[],"mappings":"AAmBA;;;;;;;;GAQG;AACH;IAPkC,OAAO;IACZ,OAAO,EAAzB,SAAS;IACqB,GAAG,GAAjC,oBAAoB;IACK,KAAK,GAA9B,eAAe;IACkB,mBAAmB,UAA3C,MAAM,KAAE,MAAM;IACP,OAAO,GAAvB,MAAM;SA2ChB;0BAhEyB,gDAAgD;qCAFrC,iFAAiF;gCADtF,mDAAmD"}
@@ -24,13 +24,15 @@ heatmap_lut.computeUniformPositions();
24
24
  * @param {ParameterLookupTable} [params.lut]
25
25
  * @param {NumericInterval} [params.range] Range of values of interest within the sampler that are to be mapped onto LUT
26
26
  * @param {function(number):number} [params.lookupScaleFunction]
27
+ * @param {number} [params.channel]
27
28
  */
28
29
  export function paintTerrainOverlayViaLookupTable({
29
30
  overlay,
30
31
  sampler,
31
32
  lut = heatmap_lut,
32
33
  range = new NumericInterval(0, 1),
33
- lookupScaleFunction = passThrough
34
+ lookupScaleFunction = passThrough,
35
+ channel = 0
34
36
  }) {
35
37
  let i, j;
36
38
 
@@ -51,7 +53,7 @@ export function paintTerrainOverlayViaLookupTable({
51
53
 
52
54
  for (i = 0; i < w; i++) {
53
55
 
54
- const p = scaled_sampler.readChannel(i, j, 0);
56
+ const p = scaled_sampler.readChannel(i, j, channel);
55
57
 
56
58
  const scaledPosition = lookupScaleFunction(p);
57
59
 
@@ -1 +1 @@
1
- {"version":3,"file":"SGMesh.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.js"],"names":[],"mappings":";;;;;AAmBA;IA4OI;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAUlB;IAlPD;;;OAGG;IACH,OAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,OAFU,MAAM,GAAC,IAAI,CAER;IAEb;;;;OAIG;IACH,eAAc;IAEd;;;;OAIG;IACH,yBAA+B;IAE/B;;;;OAIG;IACH,gBAEC;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,OAAO,CAUnB;IAED,eAEC;IAED;;;OAGG;IACH,YAFW,MAAM,QAOhB;IAED;;;OAGG;IACH,SAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,oCAYC;IAED,iCAEC;IAED,8BAYC;IAUD;;;OAGG;IACH,qBAOC;IAnBD;;;OAGG;IACH,kBAEC;IAeD;;;;OAIG;IACH,4BAHW,KAAK,GACH,OAAO,CAUnB;IAED;;;OAGG;IACH,yCAFW,KAAK,QAIf;IAED;;;;OAIG;IACH,cAHW,MAAM;;;;KAAY,GAChB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM;;;;KAAY,GAChB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM;;;;KAAY,SAClB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM;;;;KAAY,GAChB,OAAO,CAInB;IAUD;;;OAGG;IACH,6BAEC;IAdD;;;OAGG;IACH,0BAEC;IAkBD;;;OAGG;IACH,gCAEC;IAdD;;;OAGG;IACH,6BAEC;;CAwBJ;;;;sBA7QqB,2CAA2C"}
1
+ {"version":3,"file":"SGMesh.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/mesh-v2/aggregate/SGMesh.js"],"names":[],"mappings":";;;;;AAmBA;IA4OI;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAUlB;IAlPD;;;OAGG;IACH,OAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,OAFU,MAAM,GAAC,IAAI,CAER;IAEb;;;;OAIG;IACH,eAAc;IAEd;;;;OAIG;IACH,yBAA+B;IAE/B;;;;OAIG;IACH,gBAEC;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,OAAO,CAUnB;IAED,eAEC;IAED;;;OAGG;IACH,YAFW,MAAM,QAOhB;IAED;;;OAGG;IACH,SAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,oCAYC;IAED,iCAEC;IAED,8BAYC;IAUD;;;OAGG;IACH,qBAOC;IAnBD;;;OAGG;IACH,kBAEC;IAeD;;;;OAIG;IACH,4BAHW,KAAK,GACH,OAAO,CAUnB;IAED;;;OAGG;IACH,yCAFW,KAAK,QAIf;IAED;;;;OAIG;IACH,cAHW,MAAM;;;;KAAY,GAChB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM;;;;KAAY,GAChB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM;;;;KAAY,SAClB,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM;;;;KAAY,GAChB,OAAO,CAInB;IAUD;;;OAGG;IACH,6BAEC;IAdD;;;OAGG;IACH,0BAEC;IAkBD;;;OAGG;IACH,gCAEC;IAdD;;;OAGG;IACH,6BAEC;IAyBD;;;;MAMC;IAED;;;;aAMC;;CACJ;;;;sBA7RqB,2CAA2C"}
@@ -55,7 +55,7 @@ export class SGMesh {
55
55
  * Do not modify contents unless you know exactly what you're doing
56
56
  * @returns {EntityNode|null}
57
57
  */
58
- get node(){
58
+ get node() {
59
59
  return this.__node;
60
60
  }
61
61
 
@@ -267,6 +267,22 @@ export class SGMesh {
267
267
 
268
268
  return r;
269
269
  }
270
+
271
+ toJSON() {
272
+ return {
273
+ url: this.__url,
274
+ receiveShadow: this.receiveShadow,
275
+ castShadow: this.castShadow,
276
+ };
277
+ }
278
+
279
+ fromJSON({ url, receiveShadow = true, castShadow = true }) {
280
+ this.clearFlag(SGMeshFlags.Loaded);
281
+
282
+ this.__url = url;
283
+ this.receiveShadow = receiveShadow;
284
+ this.castShadow = castShadow;
285
+ }
270
286
  }
271
287
 
272
288
  SGMesh.typeName = "SGMesh";
@@ -1 +1 @@
1
- {"version":3,"file":"GridObstacle.d.ts","sourceRoot":"","sources":["../../../../../src/engine/grid/obstacle/GridObstacle.js"],"names":[],"mappings":";AAWA;IA0NI,sCAMC;IA/ND,eAAW;IAEX;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;;OAIG;IACH,UAHW,MAAM,KACN,MAAM,QAiChB;IAED;;;;;;OAMG;IACH,sBALW,MAAM,WACN,MAAM,qCAmChB;IAED;;;;;OAKG;IACH,aAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAWlB;IAED;;;;;OAKG;IACH,cAJW,MAAM,KACN,MAAM,SACN,MAAM,QAShB;IAED;;;;;OAKG;IACH,iBAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAYnB;IAED;;;;;;OAMG;IACH,mBALW,MAAM,KACN,MAAM,iBACN,MAAM,EAAE,GACN,OAAO,CAoDnB;IAED;;;MAKC;IAED;;;aAaC;IAUD;;;OAGG;IACH,QAFa,MAAM,CAOlB;IAED;;;;OAIG;IACH,cAHW,YAAY,GACV,OAAO,CAQnB;CACJ;;;;oBA/PmB,+BAA+B"}
1
+ {"version":3,"file":"GridObstacle.d.ts","sourceRoot":"","sources":["../../../../../src/engine/grid/obstacle/GridObstacle.js"],"names":[],"mappings":";AAWA;IA0NI,sCAMC;IA/ND,eAAW;IAEX;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;;OAIG;IACH,UAHW,MAAM,KACN,MAAM,QAiChB;IAED;;;;;;OAMG;IACH,sBALW,MAAM,WACN,MAAM,qCAmChB;IAED;;;;;OAKG;IACH,aAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAWlB;IAED;;;;;OAKG;IACH,cAJW,MAAM,KACN,MAAM,SACN,MAAM,QAShB;IAED;;;;;OAKG;IACH,iBAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAYnB;IAED;;;;;;OAMG;IACH,mBALW,MAAM,KACN,MAAM,iBACN,MAAM,EAAE,GACN,OAAO,CAoDnB;IAED;;;MAKC;IAED;;;aAaC;IAUD;;;OAGG;IACH,QAFa,MAAM,CAOlB;IAED;;;;OAIG;IACH,cAHW,YAAY,GACV,OAAO,CAQnB;CACJ;;;;oBA5PmB,+BAA+B"}
@@ -3,11 +3,11 @@
3
3
  */
4
4
 
5
5
 
6
- import Vector2 from '../../../core/geom/Vector2.js';
7
6
  import { assert } from "../../../core/assert.js";
8
- import { computeIntegerArrayHash } from "../../../core/primitives/array/computeIntegerArrayHash.js";
9
- import { isArrayEqualStrict } from "../../../core/collection/array/isArrayEqualStrict.js";
10
7
  import { computeHashIntegerArray } from "../../../core/collection/array/computeHashIntegerArray.js";
8
+ import { isArrayEqualStrict } from "../../../core/collection/array/isArrayEqualStrict.js";
9
+ import Vector2 from '../../../core/geom/Vector2.js';
10
+ import { computeIntegerArrayHash } from "../../../core/primitives/array/computeIntegerArrayHash.js";
11
11
 
12
12
  class GridObstacle {
13
13
  data = [1];
@@ -208,7 +208,7 @@ class GridObstacle {
208
208
  toJSON() {
209
209
  return {
210
210
  size: this.size.toJSON(),
211
- data: this.data
211
+ data: Array.from(this.data) //make sure to force it to Array type for JSON serialization to work correctly
212
212
  };
213
213
  }
214
214