@woosh/meep-engine 2.119.17 → 2.119.19

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.
Files changed (82) hide show
  1. package/README.md +2 -2
  2. package/build/bundle-worker-image-decoder.js +1 -1
  3. package/package.json +1 -1
  4. package/src/core/binary/BinaryBuffer.d.ts +2 -6
  5. package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
  6. package/src/core/binary/BinaryBuffer.js +7 -8
  7. package/src/core/binary/BitSet.d.ts.map +1 -1
  8. package/src/core/binary/BitSet.js +2 -3
  9. package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
  10. package/src/core/bvh2/bvh3/BVH.js +8 -0
  11. package/src/core/cache/FrequencySketch.js +1 -1
  12. package/src/core/codegen/LineBuilder.d.ts +7 -1
  13. package/src/core/codegen/LineBuilder.d.ts.map +1 -1
  14. package/src/core/codegen/LineBuilder.js +10 -1
  15. package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.d.ts.map +1 -1
  16. package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.js +1 -0
  17. package/src/core/geom/3d/Ray3.d.ts +12 -0
  18. package/src/core/geom/3d/Ray3.d.ts.map +1 -1
  19. package/src/core/geom/3d/Ray3.js +32 -0
  20. package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
  21. package/src/core/geom/3d/aabb/AABB3.js +17 -7
  22. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.d.ts +2 -2
  23. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.d.ts.map +1 -1
  24. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.js +11 -11
  25. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts.map +1 -1
  26. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +2 -1
  27. package/src/core/geom/3d/tetrahedra/bvh/tetrahedral_mesh_to_bvh.d.ts +8 -0
  28. package/src/core/geom/3d/tetrahedra/bvh/tetrahedral_mesh_to_bvh.d.ts.map +1 -0
  29. package/src/core/geom/3d/tetrahedra/bvh/tetrahedral_mesh_to_bvh.js +36 -0
  30. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_aabb3.d.ts +10 -0
  31. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_aabb3.d.ts.map +1 -0
  32. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_aabb3.js +49 -0
  33. package/src/core/geom/random/randomPointInCircle.d.ts +3 -2
  34. package/src/core/geom/random/randomPointInCircle.d.ts.map +1 -1
  35. package/src/core/geom/random/randomPointInCircle.js +6 -3
  36. package/src/core/geom/vec2/v2_magnitude.d.ts +3 -5
  37. package/src/core/geom/vec2/v2_magnitude.d.ts.map +1 -1
  38. package/src/core/geom/vec2/v2_magnitude.js +3 -8
  39. package/src/core/graph/v2/NodeContainer.d.ts.map +1 -1
  40. package/src/core/graph/v2/NodeContainer.js +3 -9
  41. package/src/core/lang/reactive/AbstractCachingParser.d.ts +8 -5
  42. package/src/core/lang/reactive/AbstractCachingParser.d.ts.map +1 -1
  43. package/src/core/lang/reactive/AbstractCachingParser.js +19 -24
  44. package/src/core/lang/reactive/pegjs/ReactivePegParser.d.ts +2 -1
  45. package/src/core/lang/reactive/pegjs/ReactivePegParser.d.ts.map +1 -1
  46. package/src/core/localization/Localization.js +1 -1
  47. package/src/engine/achievements/AchievementManager.d.ts +1 -1
  48. package/src/engine/achievements/AchievementManager.d.ts.map +1 -1
  49. package/src/engine/achievements/AchievementManager.js +11 -28
  50. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  51. package/src/engine/ecs/EntityComponentDataset.js +5 -2
  52. package/src/engine/ecs/EntityReference.d.ts +6 -0
  53. package/src/engine/ecs/EntityReference.d.ts.map +1 -1
  54. package/src/engine/ecs/EntityReference.js +16 -1
  55. package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +1 -1
  56. package/src/engine/graphics/sh3/prototypeSH3Probe.js +1 -1
  57. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts +10 -0
  58. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts.map +1 -1
  59. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.js +39 -19
  60. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts +8 -0
  61. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts.map +1 -1
  62. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.js +8 -1
  63. package/src/engine/graphics/texture/virtual/VirtualTextureUsageUpdater.d.ts.map +1 -1
  64. package/src/engine/graphics/texture/virtual/VirtualTextureUsageUpdater.js +2 -1
  65. package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts.map +1 -1
  66. package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +17 -5
  67. package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts.map +1 -1
  68. package/src/engine/intelligence/behavior/ecs/DieBehavior.js +2 -7
  69. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +4 -0
  70. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts.map +1 -1
  71. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.js +8 -7
  72. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts.map +1 -1
  73. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js +21 -22
  74. package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.d.ts +0 -2
  75. package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.d.ts.map +0 -1
  76. package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.js +0 -1
  77. package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.d.ts +0 -9
  78. package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.d.ts.map +0 -1
  79. package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.js +0 -31
  80. package/src/core/geom/2d/lt-grid/LooseTightGrid.d.ts +0 -55
  81. package/src/core/geom/2d/lt-grid/LooseTightGrid.d.ts.map +0 -1
  82. package/src/core/geom/2d/lt-grid/LooseTightGrid.js +0 -221
@@ -1 +1 @@
1
- {"version":3,"file":"EntityComponentDataset.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityComponentDataset.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityComponentDataset.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityComponentDataset.js"],"names":[],"mappings":"AA2GA;;;;;GAKG;AACH;IAEI;;;OAGG;IACH,wBAA+B;IAE/B;;;;;OAKG;IACH,yBAAsC;IAEtC;;;OAGG;IACH,2BAAkC;IAElC;;;OAGG;IACH,yBAAsB;IAEtB;;;;OAIG;IACH,4BAAgC;IAEhC;;;;OAIG;IACH,2BAAuB;IAEvB;;;OAGG;IACH,mBAAgB;IAEhB;;;;OAIG;IACH,oBAAgB;IAEhB;;;;;;;OAOG;IACH,mBAAe;IAEf;;;OAGG;IACH,0BAFU,OAAO,MAAM,CAAC,CAEO;IAE/B;;;OAGG;IACH,0BAFU,MAAM,CAEe;IAG/B;;;;OAIG;IACH,+BAA4B;IAE5B;;;;OAIG;IACH,kCAA+B;IAE/B;;;OAGG;IACH,kBAAe;IAGf;;;;;;OAMG;IACH,kEAkCC;IAED;;;;;OAKG;IACH,kDAHW,OAAO,GACL,OAAO,CAqDnB;IAED;;;;;OAKG;IACH,qDAHW,OAAO,GACL,OAAO,CAuDnB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,yBAFa,MAAM,CAIlB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,kCAoChB;IAED;;;;OAIG;IACH,8BAFW,MAAM,SAkBhB;IAED;;;;OAIG;IACH,yBAHW,OAAO,QAwLjB;IAED;;;;OAIG;IACH,mCAHW,OAAO,GACL,OAAO,CAYnB;IAED;;;OAGG;IACH,gCAHW,gBAAc,GACb,OAAO,CAMlB;IAED;;;OAGG;IACH,uBAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,kCAHW,OAAO,GACL,OAAO,CAgBnB;IAED;;;;OAIG;IACH,4BAHW,gBAAc,GACZ,OAAO,CAanB;IAED;;;;OAIG;IACH,sCAFa,OAAO,CAiBnB;IAED;;;OAGG;IACH,iCAFW,MAAM,QAgBhB;IAED;;;;OAIG;IACH,+BAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,2BAiBC;IAED;;;OAGG;IACH,gBAFa,MAAM,CAQlB;IAED;;;;OAIG;IACH,gCAHW,MAAM,QAShB;IAED;;;;OAIG;IACH,0BAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,qCAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,wBAHW,MAAM,GACJ,OAAO,CAsCnB;IAED;;;OAGG;IACH,8BAFW,MAAM,EAAE,QAQlB;IAED;;;;OAIG;IACH,uCAHW,MAAM,sBAWhB;IAED;;;;OAIG;IACH,8CAHW,MAAM,kBACN,MAAM,QAiBhB;IAED;;;;;;OAMG;IACH,mDAgBC;IAED;;;;OAIG;IACH,uCAFa,MAAM,CAUlB;IAED;;;;OAIG;IACH,iCAFa,MAAM,CAUlB;IAED;;;;OAIG;IACH;gBAFqB,MAAM;;MAiB1B;IAED;;;;;;OAMG;IACH,qCAHW,MAAM,8BAoBhB;IAED;;;;;OAKG;IACH,8CAJW,MAAM,kBACN,MAAM,gCA6BhB;IAED;;;;;OAKG;IACH,sCAJW,MAAM,kBACN,MAAM,OAUhB;IAED;;;;;;OAMG;IACH,+BAJW,MAAM,sBAEJ,OAAO,CAInB;IAED;;;;;OAKG;IACH,6BAJW,MAAM,0BAiBhB;IAED;;;;;;;OAOG;IACH,mCALW,MAAM,0BAahB;IAED;;;;;;OAMG;IACH,oGAeC;IAED;;;;;;OAMG;IACH,gEAH6B,OAAO,YACzB,MAAM,QAyEhB;IAED;;;;;;OAMG;IACH,4EAwDC;IAED;;;OAGG;IACH,wBAFa,UAAU,MAAM,CAAC,CAU7B;IAED;;;;;OAKG;IACH,8EAWC;IAED;;;;;OAKG;IACH,8CAJW,MAAM,0CAUhB;IAED;;;;;OAKG;IACH,2DAJW,MAAM,0CA6BhB;IAED;;;;;OAKG;IACH,6DAJW,MAAM,0CA0BhB;IAED;;;;OAIG;IACH,wCAgCC;IAED;;;;OAIG;IACH,0CA2BC;IAED;;;;;OAKG;IACH,kCAJW,MAAM,2CAsBhB;IAED;;;;;;OAMG;IACH,+BALW,MAAM,sCAGJ,OAAO,CA4BnB;IAED;;;;;;OAMG;IACH,+BALW,MAAM,aACN,MAAM,4CAgChB;IAED;;;;;;;;OAQG;IACH,kCAPW,MAAM,aACN,MAAM,sCAIJ,OAAO,CAoCnB;IAED;;;;;OAKG;IACH,2DAeC;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACJ,OAAO,CAenB;IAED;;OAEG;IACH,cAMC;IAED;;;OAGG;IACH,iBAYC;IAED;;;;OAIG;IACH,wCAHW,MAAM,GACJ,IAAI,wBAAkB,CAYlC;IAED;;;;OAIG;IACH,mBAFW,sBAAsB,iCA6DhC;IAED;;;;OAIG;IACH,+EAiDC;IAED;;;OAGG;IACH,WAFa,OAAO,CAInB;IAED;;;OAGG;IACH,0CAQC;IAGL;;;OAGG;IACH,mCAFU,OAAO,CAEwC;CANxD;mBA1zDkB,oCAAoC"}
@@ -487,7 +487,7 @@ export class EntityComponentDataset {
487
487
 
488
488
  if (presentComponentTypes.length > 0) {
489
489
  const sTypes = presentComponentTypes.map(t => t.typeName).join(", ");
490
- throw new Error(`Component types can not be unmapped due to presence of live components: ${sTypes}`);
490
+ throw new Error(`Component types can not be unmapped due to presence of live components: ${sTypes}`);
491
491
  }
492
492
  }
493
493
 
@@ -838,11 +838,12 @@ export class EntityComponentDataset {
838
838
  /**
839
839
  *
840
840
  * @param {number} entity_id
841
+ * @returns {boolean}
841
842
  */
842
843
  removeEntity(entity_id) {
843
844
  if (!this.entityExists(entity_id)) {
844
845
  // entity doesn't exist
845
- return;
846
+ return false;
846
847
  }
847
848
 
848
849
  const componentOccupancy = this.componentOccupancy;
@@ -873,6 +874,8 @@ export class EntityComponentDataset {
873
874
  this.entityCount--;
874
875
 
875
876
  this.onEntityRemoved.send1(entity_id);
877
+
878
+ return true;
876
879
  }
877
880
 
878
881
  /**
@@ -33,6 +33,12 @@ export class EntityReference {
33
33
  * @returns {boolean}
34
34
  */
35
35
  verify(ecd: EntityComponentDataset): boolean;
36
+ /**
37
+ *
38
+ * @param {EntityComponentDataset} ecd
39
+ * @returns {boolean}
40
+ */
41
+ destroy(ecd: EntityComponentDataset): boolean;
36
42
  }
37
43
  export namespace EntityReference {
38
44
  let NULL: EntityReference;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityReference.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityReference.js"],"names":[],"mappings":"AAEA;IA6CI;;;;;OAKG;IACH,gBAJW,MAAM,cACN,MAAM,GACL,eAAe,CAa1B;IA7DD;;;OAGG;IACH,IAFU,MAAM,CAET;IACP;;;OAGG;IACH,YAFU,MAAM,CAED;IAGf;;;OAGG;IACH,QAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACd,OAAO,CAMlB;IAED;;;;OAIG;IACH,qCAFa,OAAO,CAQnB;CAoBJ;;cAIS,eAAe"}
1
+ {"version":3,"file":"EntityReference.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityReference.js"],"names":[],"mappings":"AAEA;IA4DI;;;;;OAKG;IACH,gBAJW,MAAM,cACN,MAAM,GACL,eAAe,CAa1B;IA3ED;;;OAGG;IACH,IAFU,MAAM,CAET;IAEP;;;OAGG;IACH,YAFU,MAAM,CAED;IAEf;;;OAGG;IACH,QAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACd,OAAO,CAMlB;IAED;;;;OAIG;IACH,qCAFa,OAAO,CAQnB;IAED;;;;OAIG;IACH,sCAFa,OAAO,CASnB;CAoBJ;;cAIS,eAAe"}
@@ -1,18 +1,19 @@
1
1
  import { assert } from "../../core/assert.js";
2
2
 
3
3
  export class EntityReference {
4
+
4
5
  /**
5
6
  * Entity ID
6
7
  * @type {number}
7
8
  */
8
9
  id = -1
10
+
9
11
  /**
10
12
  * Entity generation number. This uniquely identifies an entity in combination with the ID
11
13
  * @type {number}
12
14
  */
13
15
  generation = -1
14
16
 
15
-
16
17
  /**
17
18
  *
18
19
  * @return {number}
@@ -45,6 +46,20 @@ export class EntityReference {
45
46
 
46
47
  }
47
48
 
49
+ /**
50
+ *
51
+ * @param {EntityComponentDataset} ecd
52
+ * @returns {boolean}
53
+ */
54
+ destroy(ecd) {
55
+ if (this.verify(ecd)) {
56
+ ecd.removeEntity(this.id);
57
+ return true;
58
+ } else {
59
+ return false;
60
+ }
61
+ }
62
+
48
63
  /**
49
64
  *
50
65
  * @param {number} id
@@ -193,7 +193,7 @@ function deserializeTask(
193
193
  return result;
194
194
  }
195
195
 
196
- const estimatedDuration = buffer.length / 2857142;
196
+ const estimatedDuration = buffer.capacity / 2857142;
197
197
 
198
198
  return new Task({
199
199
  name: 'Entity deserialization',
@@ -108,7 +108,7 @@ async function persist_component(storage, component, adapter, key = 'temp', sign
108
108
 
109
109
 
110
110
  current_state.setCapacity(buffer.length);
111
- array_copy(buffer.__data_uint8, 0, current_state.__data_uint8, 0, buffer.length);
111
+ array_copy(buffer.__data_uint8, 0, current_state.__data_uint8, 0, buffer.capacity);
112
112
  }
113
113
  }
114
114
 
@@ -2,6 +2,16 @@
2
2
  * Facilitates prioritized queueing and loading of individual texture tiles
3
3
  */
4
4
  export class VirtualTextureTileLoader {
5
+ /**
6
+ *
7
+ * @param {function(mip:number, x:number, y:number):string} builder
8
+ */
9
+ set file_name_builder(arg: (arg0: number, arg1: number, arg2: number) => string);
10
+ /**
11
+ *
12
+ * @return {function(number, number, number): string}
13
+ */
14
+ get file_name_builder(): (arg0: number, arg1: number, arg2: number) => string;
5
15
  set path(arg: any);
6
16
  /**
7
17
  * When queue gets larger than this, we start discarding elements
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualTextureTileLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/virtual/VirtualTextureTileLoader.js"],"names":[],"mappings":"AAWA;;GAEG;AACH;IAOI,mBAEC;IAED;;;OAGG;IACH,aAFU,MAAM,CAEO;IAQvB,4BAEC;IAsBD;;OAEG;IACH;QACI;;WAEG;gBADO,OAAO,kBAAkB,CAAC;MAGtC;IAkCF;;;OAGG;IACH,qBAFW,MAAM,WAchB;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACJ,OAAO,CAMnB;IAsBD;;;OAGG;IACH,+CAQC;;CA+EJ;mBAjPkB,0CAA0C;mCAO1B,8BAA8B"}
1
+ {"version":3,"file":"VirtualTextureTileLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/virtual/VirtualTextureTileLoader.js"],"names":[],"mappings":"AAYA;;GAEG;AACH;IA6BI;;;OAGG;IACH,kCAVqB,MAAM,QAAE,MAAM,QAAE,MAAM,KAAG,MAAM,EAcnD;IAhBD;;;OAGG;IACH,gCAFqB,MAAM,QAAE,MAAM,QAAE,MAAM,KAAG,MAAM,CAInD;IAYD,mBAEC;IAED;;;OAGG;IACH,aAFU,MAAM,CAEO;IAQvB,4BAEC;IAsBD;;OAEG;IACH;QACI;;WAEG;gBADO,OAAO,kBAAkB,CAAC;MAGtC;IAkCF;;;OAGG;IACH,qBAFW,MAAM,WAchB;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACJ,OAAO,CAMnB;IAsBD;;;OAGG;IACH,+CASC;;CAiEJ;mBApQkB,0CAA0C;mCAO1B,8BAA8B"}
@@ -1,4 +1,5 @@
1
1
  import { assert } from "../../../../core/assert.js";
2
+ import { array_remove_first } from "../../../../core/collection/array/array_remove_first.js";
2
3
  import { array_sort_quick } from "../../../../core/collection/array/array_sort_quick.js";
3
4
  import Signal from "../../../../core/events/signal/Signal.js";
4
5
  import { AssetManager } from "../../../asset/AssetManager.js";
@@ -19,6 +20,38 @@ export class VirtualTextureTileLoader {
19
20
  */
20
21
  #root_path = "";
21
22
 
23
+ /**
24
+ * Lets user specify a custom file name template
25
+ * @type {function(mip:number, x:number, y:number):string}
26
+ */
27
+ #file_name_builder = (mip, x, y) => {
28
+
29
+ assert.isNonNegativeInteger(mip, 'mip');
30
+ assert.isNonNegativeInteger(x, 'x');
31
+ assert.isNonNegativeInteger(y, 'y');
32
+
33
+ return `${mip}-${x}-${y}.png`;
34
+
35
+ }
36
+
37
+ /**
38
+ *
39
+ * @return {function(number, number, number): string}
40
+ */
41
+ get file_name_builder() {
42
+ return this.#file_name_builder;
43
+ }
44
+
45
+ /**
46
+ *
47
+ * @param {function(mip:number, x:number, y:number):string} builder
48
+ */
49
+ set file_name_builder(builder) {
50
+ assert.isFunction(builder, 'builder');
51
+
52
+ this.#file_name_builder = builder;
53
+ }
54
+
22
55
  set path(v) {
23
56
  this.#root_path = v;
24
57
  }
@@ -159,27 +192,12 @@ export class VirtualTextureTileLoader {
159
192
 
160
193
  // truncate the queue if necessary
161
194
  const queue_overflow = this.#queue.length - this.queue_limit;
195
+
162
196
  if (queue_overflow > 0) {
163
197
  this.#queue.splice(this.queue_limit, queue_overflow);
164
198
  }
165
199
  }
166
200
 
167
- /**
168
- *
169
- * @param {number} mip
170
- * @param {number} x
171
- * @param {number} y
172
- * @returns {string}
173
- */
174
- #build_file_name(mip, x, y) {
175
-
176
- assert.isNonNegativeInteger(mip, 'mip');
177
- assert.isNonNegativeInteger(x, 'x');
178
- assert.isNonNegativeInteger(y, 'y');
179
-
180
- return `${mip}-${x}-${y}.png`;
181
- }
182
-
183
201
  /**
184
202
  * Initializes load of the next element in the queue if there is capacity
185
203
  */
@@ -200,7 +218,10 @@ export class VirtualTextureTileLoader {
200
218
  * @returns {Promise<VirtualTextureTile>}
201
219
  */
202
220
  #load(mip, x, y) {
203
- const file_name = this.#build_file_name(mip, x, y);
221
+ const file_name = this.#file_name_builder(mip, x, y);
222
+
223
+ assert.isString(file_name, 'file_name');
224
+
204
225
  const finger_print = compose_finger_print(mip, x, y);
205
226
 
206
227
  this.#queue_remove(finger_print);
@@ -233,8 +254,7 @@ export class VirtualTextureTileLoader {
233
254
  })
234
255
  .finally(() => {
235
256
 
236
- const index = this.#in_flight.indexOf(finger_print);
237
- this.#in_flight.splice(index, 1);
257
+ array_remove_first(this.#in_flight,finger_print);
238
258
 
239
259
  this.#prod();
240
260
 
@@ -2,7 +2,15 @@ export class VirtualTextureUsage {
2
2
  get counts(): Uint32Array;
3
3
  set max_mip_level(arg: number);
4
4
  get max_mip_level(): number;
5
+ /**
6
+ *
7
+ * @return {Uint32Array}
8
+ */
5
9
  get occupancy(): Uint32Array;
10
+ /**
11
+ *
12
+ * @return {number}
13
+ */
6
14
  get occupancy_count(): number;
7
15
  /**
8
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualTextureUsage.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/virtual/VirtualTextureUsage.js"],"names":[],"mappings":"AAMA;IAcI,0BAEC;IAKD,+BAIC;IAED,4BAEC;IAGD,6BAEC;IAED,8BAEC;IAkBD;;;;OAIG;IACH,mCAHW,MAAM,GACJ,MAAM,CAMlB;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAMlB;IAED,cAGC;IAED;;;;OAIG;IACH,wBAFW,MAAM,QAsChB;IAWD,2BAiCC;IAGD;;;OAGG;IACH,kBAFW,UAAU,QAsCpB;;CACJ"}
1
+ {"version":3,"file":"VirtualTextureUsage.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/virtual/VirtualTextureUsage.js"],"names":[],"mappings":"AAMA;IAcI,0BAEC;IAKD,+BAIC;IAED,4BAEC;IAED;;;OAGG;IACH,6BAEC;IAED;;;OAGG;IACH,8BAEC;IAkBD;;;;OAIG;IACH,mCAHW,MAAM,GACJ,MAAM,CAMlB;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAMlB;IAED,cAGC;IAED;;;;OAIG;IACH,wBAFW,MAAM,QAsChB;IAWD,2BAiCC;IAGD;;;OAGG;IACH,kBAFW,UAAU,QAsCpB;;CACJ"}
@@ -35,11 +35,18 @@ export class VirtualTextureUsage {
35
35
  return this.#max_mip_level;
36
36
  }
37
37
 
38
-
38
+ /**
39
+ *
40
+ * @return {Uint32Array}
41
+ */
39
42
  get occupancy() {
40
43
  return this.#occupancy;
41
44
  }
42
45
 
46
+ /**
47
+ *
48
+ * @return {number}
49
+ */
43
50
  get occupancy_count() {
44
51
  return this.#occupancy_cursor;
45
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualTextureUsageUpdater.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/virtual/VirtualTextureUsageUpdater.js"],"names":[],"mappings":"AA2EA;IAgBI;;;OAGG;IACH,uCAEC;IAVD,oCAEC;IA8CD,iCAEC;IAED,8BAEC;IAED,4BAEC;IASD;;;;;OAKG;IACH,iCAJW,MAAM,aACN,MAAM,cACN,MAAM,QAqBhB;IAED,0CAEC;IAED,4BAEC;IAiCD;;;;OAIG;IACH,yBAHW,MAAM,KACN,MAAM,QA+BhB;IA0BD;;;;;OAKG;IACH,yEAoDC;IAED,gBAEC;;CACJ;oCAlUmC,0BAA0B;0BADpC,yBAAyB"}
1
+ {"version":3,"file":"VirtualTextureUsageUpdater.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/virtual/VirtualTextureUsageUpdater.js"],"names":[],"mappings":"AA2EA;IAgBI;;;OAGG;IACH,uCAEC;IAVD,oCAEC;IA8CD,iCAEC;IAED,8BAEC;IAED,4BAEC;IASD;;;;;OAKG;IACH,iCAJW,MAAM,aACN,MAAM,cACN,MAAM,QAqBhB;IAED,0CAEC;IAED,4BAEC;IAiCD;;;;OAIG;IACH,yBAHW,MAAM,KACN,MAAM,QA+BhB;IA0BD;;;;;OAKG;IACH,yEAqDC;IAED,gBAEC;;CACJ;oCAnUmC,0BAA0B;0BADpC,yBAAyB"}
@@ -288,13 +288,14 @@ export class VirtualTextureUsageUpdater {
288
288
 
289
289
  const usage_buffer = this.#usage_buffer;
290
290
 
291
-
292
291
  const camera_projection_matrix = camera.projectionMatrix.elements;
293
292
 
294
293
  // remember existing state
295
294
  const _old_render_target = renderer.getRenderTarget();
296
295
  const _auto_clear = renderer.autoClear;
296
+
297
297
  array_copy(camera_projection_matrix, 0, scratch_matrix, 0, 16);
298
+
298
299
  const _old_material = scene.overrideMaterial;
299
300
  const _old_camera_matrix_update = camera.matrixAutoUpdate;
300
301
 
@@ -1 +1 @@
1
- {"version":3,"file":"SequenceBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/composite/SequenceBehavior.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH;IAiGI;;;;OAIG;IACH,kBAHW,eAAU,GACT,gBAAgB,CAQ3B;IAxGG;;;;OAIG;IACH,mCAHU,MAAM,CAGiB;IACjC;;;;OAIG;IACH,gCAAqD;IAErD;;;;OAIG;IACH,4CAAmC;IAGvC,+BAYC;IA0EL;;;OAGG;IACH,6BAFU,OAAO,CAE4B;CAN5C;;;;kCArHiC,wBAAwB;yBADjC,gBAAgB"}
1
+ {"version":3,"file":"SequenceBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/composite/SequenceBehavior.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH;IA6GI;;;;OAIG;IACH,kBAHW,eAAU,GACT,gBAAgB,CAQ3B;IApHG;;;;OAIG;IACH,mCAHU,MAAM,CAGiB;IACjC;;;;OAIG;IACH,gCAAqD;IAErD;;;;OAIG;IACH,4CAAmC;IAGvC,+BAeC;IAmFL;;;OAGG;IACH,6BAFU,OAAO,CAE4B;CAN5C;;;;kCA/HiC,wBAAwB;yBAFjC,gBAAgB"}
@@ -1,7 +1,7 @@
1
+ import { assert } from "../../../../core/assert.js";
1
2
  import { Behavior } from "../Behavior.js";
2
- import { CompositeBehavior } from "./CompositeBehavior.js";
3
3
  import { BehaviorStatus } from "../BehaviorStatus.js";
4
- import { assert } from "../../../../core/assert.js";
4
+ import { CompositeBehavior } from "./CompositeBehavior.js";
5
5
 
6
6
  /**
7
7
  * Executes all contained behaviors one after another in a sequence, next behaviour in the sequence will not be started until the previous one signal success
@@ -38,8 +38,11 @@ export class SequenceBehavior extends CompositeBehavior {
38
38
  this.__currentBehaviourIndex = 0;
39
39
  this.__currentBehaviour = this.__children[0];
40
40
 
41
- //initialize first behaviour
42
- this.__currentBehaviour.initialize(context);
41
+ // allow for empty sequence
42
+ if (this.__currentBehaviour !== undefined) {
43
+ //initialize first behaviour
44
+ this.__currentBehaviour.initialize(context);
45
+ }
43
46
 
44
47
  this.__currentBehaviourState = BehaviorStatus.Running;
45
48
 
@@ -57,6 +60,12 @@ export class SequenceBehavior extends CompositeBehavior {
57
60
 
58
61
  const currentBehaviour = this.__currentBehaviour;
59
62
 
63
+ if (currentBehaviour === undefined) {
64
+ // either un-initialized, or an empty sequence
65
+ this.__currentBehaviourState = BehaviorStatus.Succeeded;
66
+ return BehaviorStatus.Succeeded;
67
+ }
68
+
60
69
  const s = currentBehaviour.tick(timeDelta);
61
70
 
62
71
  this.__currentBehaviourState = s;
@@ -92,7 +101,10 @@ export class SequenceBehavior extends CompositeBehavior {
92
101
  if (this.__currentBehaviourIndex !== child_count) {
93
102
  //sequence has not been finished
94
103
 
95
- if (this.__currentBehaviour !== undefined && this.__currentBehaviourState !== BehaviorStatus.Initial) {
104
+ if (
105
+ this.__currentBehaviour !== undefined
106
+ && this.__currentBehaviourState !== BehaviorStatus.Initial
107
+ ) {
96
108
  this.__currentBehaviour.finalize();
97
109
  }
98
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DieBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/DieBehavior.js"],"names":[],"mappings":"AAGA;IAGI,6BAEC;IAED,qCAcC;CACJ;+BAzB8B,qBAAqB;+BACrB,sBAAsB"}
1
+ {"version":3,"file":"DieBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/DieBehavior.js"],"names":[],"mappings":"AAGA;IAGI,6BAEC;IAED,qCASC;CACJ;+BAnB8B,qBAAqB;+BADrB,sBAAsB"}
@@ -1,5 +1,5 @@
1
- import { EntityBehavior } from "./EntityBehavior.js";
2
1
  import { BehaviorStatus } from "../BehaviorStatus.js";
2
+ import { EntityBehavior } from "./EntityBehavior.js";
3
3
 
4
4
  export class DieBehavior extends EntityBehavior {
5
5
 
@@ -13,14 +13,9 @@ export class DieBehavior extends EntityBehavior {
13
13
  const entity = this.entity;
14
14
  const ecd = this.ecd;
15
15
 
16
- if (!ecd.entityExists(entity)) {
17
- //entity doesn't exist, count as success
18
-
19
- return BehaviorStatus.Succeeded;
20
- }
21
-
22
16
  ecd.removeEntity(entity);
23
17
 
24
18
  return BehaviorStatus.Succeeded;
19
+
25
20
  }
26
21
  }
@@ -1,5 +1,9 @@
1
1
  export class SendEventBehavior extends EntityBehavior {
2
2
  static fromJSON(j: any): SendEventBehavior;
3
+ /**
4
+ * ID of the event
5
+ * @type {string}
6
+ */
3
7
  event: string;
4
8
  data: {};
5
9
  target: number;
@@ -1 +1 @@
1
- {"version":3,"file":"SendEventBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/SendEventBehavior.js"],"names":[],"mappings":"AAIA;IAiBI,2CAMC;IAnBG,cAAe;IACf,SAAc;IACd,eAAgB;IAGpB;;;;aAMC;IAcD,qCAQC;CACJ;+BAxC8B,qBAAqB;+BADrB,sBAAsB"}
1
+ {"version":3,"file":"SendEventBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/SendEventBehavior.js"],"names":[],"mappings":"AAIA;IAkBI,2CAMC;IAtBD;;;OAGG;IACH,OAFU,MAAM,CAEL;IACX,SAAU;IACV,eAAY;IAEZ;;;;aAMC;IAcD,qCAQC;CACJ;+BAzC8B,qBAAqB;+BADrB,sBAAsB"}
@@ -3,16 +3,17 @@ import { BehaviorStatus } from "../BehaviorStatus.js";
3
3
  import { EntityBehavior } from "./EntityBehavior.js";
4
4
 
5
5
  export class SendEventBehavior extends EntityBehavior {
6
- constructor() {
7
- super();
8
6
 
9
- this.event = "";
10
- this.data = {};
11
- this.target = -1;
12
- }
7
+ /**
8
+ * ID of the event
9
+ * @type {string}
10
+ */
11
+ event = "";
12
+ data = {};
13
+ target = -1;
13
14
 
14
15
  fromJSON({ event, data = {}, target = -1 }) {
15
- assert.typeOf(event, 'string', 'event');
16
+ assert.isString(event, 'event');
16
17
 
17
18
  this.event = event;
18
19
  this.data = data;
@@ -1 +1 @@
1
- {"version":3,"file":"WaitForEventBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js"],"names":[],"mappings":"AAIA;IA8BI;;;;OAIG;IACH,4BAFY,oBAAoB,CAQ/B;IArCG;;;OAGG;IACH,OAFU,MAAM,CAED;IAEf;;;OAGG;IACH,UAFU,OAAO,CAEI;IAErB;;;OAGG;IACH,QAFU,MAAM,CAEA;IAGpB;;;aAKC;IAeD,wEAMC;IAED;;OAEG;IACH,iBAIC;CAoBJ;;kBAIS,MAAM;;+BAtFe,qBAAqB;+BACrB,sBAAsB"}
1
+ {"version":3,"file":"WaitForEventBehavior.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js"],"names":[],"mappings":"AAIA;IA6BI;;;;OAIG;IACH,4BAFY,oBAAoB,CAQ/B;IArCD;;;OAGG;IACH,OAFU,MAAM,CAEL;IAEX;;;OAGG;IACH,UAFU,OAAO,CAEA;IAEjB;;;OAGG;IACH,QAFU,MAAM,CAEJ;IAGZ;;;aAKC;IAeD,wEAMC;IAED;;OAEG;IACH,iBAIC;CAoBJ;;kBAIS,MAAM;;+BAnFe,qBAAqB;+BADrB,sBAAsB"}
@@ -1,29 +1,28 @@
1
- import { EntityBehavior } from "./EntityBehavior.js";
2
- import { BehaviorStatus } from "../BehaviorStatus.js";
3
1
  import { assert } from "../../../../core/assert.js";
2
+ import { BehaviorStatus } from "../BehaviorStatus.js";
3
+ import { EntityBehavior } from "./EntityBehavior.js";
4
4
 
5
5
  export class WaitForEventBehavior extends EntityBehavior {
6
- constructor() {
7
- super();
8
-
9
- /**
10
- * Event name
11
- * @type {string}
12
- */
13
- this.event = "";
14
-
15
- /**
16
- *
17
- * @type {boolean}
18
- */
19
- this.detected = false;
20
6
 
21
- /**
22
- * Entity to listen event on
23
- * @type {number}
24
- */
25
- this.target = -1;
26
- }
7
+
8
+ /**
9
+ * Event name
10
+ * @type {string}
11
+ */
12
+ event = "";
13
+
14
+ /**
15
+ *
16
+ * @type {boolean}
17
+ */
18
+ detected = false;
19
+
20
+ /**
21
+ * Entity to listen event on
22
+ * @type {number}
23
+ */
24
+ target = -1;
25
+
27
26
 
28
27
  fromJSON({ event, target = -1 }) {
29
28
  assert.isString(event, 'event');
@@ -1,2 +0,0 @@
1
- export const BVH_QUERY_CACHE_SIZE: number;
2
- //# sourceMappingURL=BVH_QUERY_CACHE_SIZE.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BVH_QUERY_CACHE_SIZE.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.js"],"names":[],"mappings":"AAAA,0CAA0C"}
@@ -1 +0,0 @@
1
- export const BVH_QUERY_CACHE_SIZE = 2**12;
@@ -1,9 +0,0 @@
1
- /**
2
- *
3
- * @param {number} x
4
- * @param {number} y
5
- * @param {number} z
6
- * @returns {number}
7
- */
8
- export function bvh_query_cache_hash_v3(x: number, y: number, z: number): number;
9
- //# sourceMappingURL=bvh_query_cache_hash_v3.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bvh_query_cache_hash_v3.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,2CALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAuBlB"}
@@ -1,31 +0,0 @@
1
- import { BVH_QUERY_CACHE_SIZE } from "./BVH_QUERY_CACHE_SIZE.js";
2
-
3
- /**
4
- *
5
- * @param {number} x
6
- * @param {number} y
7
- * @param {number} z
8
- * @returns {number}
9
- */
10
- export function bvh_query_cache_hash_v3(x, y, z) {
11
-
12
- //
13
- // const i0 = computeHashFloat(x);
14
- // const i1 = computeHashFloat(y);
15
- // const i2 = computeHashFloat(z);
16
- //
17
- // const key = ((i0 * 0xB5297A4D) ^ (i1 * 0x68E31DA4) ^ (i2 * 0x1B56C4E9))
18
- // & (BVH_QUERY_CACHE_SIZE - 1);
19
-
20
- const s = 16;
21
-
22
- const i0 = x*s;
23
- const i1 = y*s;
24
- const i2 = z*s;
25
-
26
- const key = ((i0 * 73856093) ^ (i1 * 19349663) ^ (i2 * 83492791))
27
- & (BVH_QUERY_CACHE_SIZE - 1);
28
-
29
- // convert to unsigned
30
- return key >>> 0;
31
- }
@@ -1,55 +0,0 @@
1
- /**
2
- *
3
- * NOTE: THIS CODE IS UNFINISHED, IT IS ONLY A SKETCH
4
- * TODO finish implementation
5
- *
6
- * Inspired by Makyen's post on stackoverflow: https://stackoverflow.com/a/48384354
7
- * Core idea is to have dynamically-sized bounding volumes that contain our AABBs, and then have a grid-aligned index that stores pointers to these volumes
8
- * Makyren called it "Loose/Tight Double-Grid", where "loose" refers to dynamic bounding volumes and tight refers to the grid
9
- *
10
- * Invariants:
11
- * - An element inserted into the structure will belong to exactly one "loose" cell
12
- *
13
- */
14
- export class LooseTightGrid {
15
- /**
16
- *
17
- * @param {number} v
18
- */
19
- set grid_scale(arg: number);
20
- /**
21
- *
22
- * @returns {number}
23
- */
24
- get grid_scale(): number;
25
- /**
26
- *
27
- * @param {number} size_x
28
- * @param {number} size_y
29
- */
30
- resize(size_x: number, size_y: number): void;
31
- /**
32
- *
33
- * @param {number} x
34
- * @param {number} y
35
- * @returns {number}
36
- */
37
- cell_position_to_index(x: number, y: number): number;
38
- /**
39
- *
40
- * @param {number[]} out
41
- * @param {number} out_offset
42
- * @param {number} index
43
- */
44
- cell_index_to_position(out: number[], out_offset: number, index: number): void;
45
- allocate_datum(): void;
46
- insert(): void;
47
- /**
48
- * Rebuild structure from ground-up
49
- * This is an expensive operation
50
- * Generally you'll never want to call it explicitly, it is used internally when underlying structure changes
51
- */
52
- rebuild(): void;
53
- #private;
54
- }
55
- //# sourceMappingURL=LooseTightGrid.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LooseTightGrid.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/lt-grid/LooseTightGrid.js"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;GAYG;AACH;IAcI;;;OAGG;IACH,4BAYC;IAED;;;OAGG;IACH,yBAEC;IAED;;;;OAIG;IACH,eAHW,MAAM,UACN,MAAM,QAehB;IAED;;;;;OAKG;IACH,0BAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAUlB;IAED;;;;;OAKG;IACH,4BAJW,MAAM,EAAE,cACR,MAAM,SACN,MAAM,QAOhB;IAED,uBAEC;IAED,eAEC;IAwDD;;;;OAIG;IACH,gBAgCC;;CAEJ"}