@woosh/meep-engine 2.119.16 → 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 (95) hide show
  1. package/README.md +2 -4
  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/core/model/reactive/model/ReactiveBinaryExpression.d.ts.map +1 -1
  48. package/src/core/model/reactive/model/ReactiveBinaryExpression.js +17 -21
  49. package/src/core/model/reactive/model/ReactiveUnaryExpression.d.ts +1 -1
  50. package/src/core/model/reactive/model/ReactiveUnaryExpression.d.ts.map +1 -1
  51. package/src/core/model/reactive/model/ReactiveUnaryExpression.js +10 -10
  52. package/src/core/model/reactive/model/arithmetic/ReactiveNegate.d.ts.map +1 -1
  53. package/src/core/model/reactive/model/logic/ReactiveNot.d.ts.map +1 -1
  54. package/src/engine/achievements/AchievementGateway.d.ts.map +1 -1
  55. package/src/engine/achievements/AchievementGateway.js +1 -1
  56. package/src/engine/achievements/AchievementManager.d.ts +1 -1
  57. package/src/engine/achievements/AchievementManager.d.ts.map +1 -1
  58. package/src/engine/achievements/AchievementManager.js +16 -30
  59. package/src/engine/achievements/gateway/StorageAchievementGateway.d.ts.map +1 -1
  60. package/src/engine/achievements/gateway/StorageAchievementGateway.js +14 -9
  61. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  62. package/src/engine/ecs/EntityComponentDataset.js +5 -2
  63. package/src/engine/ecs/EntityReference.d.ts +6 -0
  64. package/src/engine/ecs/EntityReference.d.ts.map +1 -1
  65. package/src/engine/ecs/EntityReference.js +16 -1
  66. package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +1 -1
  67. package/src/engine/graphics/sh3/prototypeSH3Probe.js +1 -1
  68. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts +10 -0
  69. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts.map +1 -1
  70. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.js +39 -19
  71. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts +8 -0
  72. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts.map +1 -1
  73. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.js +8 -1
  74. package/src/engine/graphics/texture/virtual/VirtualTextureUsageUpdater.d.ts.map +1 -1
  75. package/src/engine/graphics/texture/virtual/VirtualTextureUsageUpdater.js +2 -1
  76. package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts.map +1 -1
  77. package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +17 -5
  78. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts.map +1 -1
  79. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +22 -54
  80. package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts.map +1 -1
  81. package/src/engine/intelligence/behavior/ecs/DieBehavior.js +2 -7
  82. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +4 -0
  83. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts.map +1 -1
  84. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.js +8 -7
  85. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts.map +1 -1
  86. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js +21 -22
  87. package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.d.ts +0 -2
  88. package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.d.ts.map +0 -1
  89. package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.js +0 -1
  90. package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.d.ts +0 -9
  91. package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.d.ts.map +0 -1
  92. package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.js +0 -31
  93. package/src/core/geom/2d/lt-grid/LooseTightGrid.d.ts +0 -55
  94. package/src/core/geom/2d/lt-grid/LooseTightGrid.d.ts.map +0 -1
  95. package/src/core/geom/2d/lt-grid/LooseTightGrid.js +0 -221
@@ -6,16 +6,12 @@ import { ReactiveExpression } from "./ReactiveExpression.js";
6
6
  * @template T,R
7
7
  */
8
8
  export class ReactiveUnaryExpression extends ReactiveExpression {
9
- constructor() {
10
- super();
11
9
 
12
- /**
13
- *
14
- * @type {ReactiveExpression<T>}
15
- */
16
- this.source = null;
17
-
18
- }
10
+ /**
11
+ *
12
+ * @type {ReactiveExpression<T>}
13
+ */
14
+ source = null;
19
15
 
20
16
  copy(other) {
21
17
  this.disconnect();
@@ -46,6 +42,10 @@ export class ReactiveUnaryExpression extends ReactiveExpression {
46
42
  }
47
43
 
48
44
  disconnect() {
45
+ if (this.source === null) {
46
+ return;
47
+ }
48
+
49
49
  this.source.onChanged.remove(this.update, this);
50
50
 
51
51
  this.source = null;
@@ -61,7 +61,7 @@ export class ReactiveUnaryExpression extends ReactiveExpression {
61
61
  evaluate(scope) {
62
62
  const source_value = this.source.evaluate(scope);
63
63
 
64
- return transform(source_value);
64
+ return this.transform(source_value);
65
65
  }
66
66
 
67
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveNegate.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/reactive/model/arithmetic/ReactiveNegate.js"],"names":[],"mappings":"AAGA;IA+BI;;;;OAIG;IACH,yCAFa,cAAc,CAQ1B;IApCM,cAWP;IAhBA;;;;OAIG;IACH,aAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,SAFY,cAAc,CAQzB;IAED,4BAEC;IAED,iBAEC;IAiBL;;;OAGG;IACH,mBAFU,WAAS,MAAM,CAEQ;IAEjC;;;OAGG;IACH,iCAFU,OAAO,CAE8B;IAE/C;;;OAGG;IACH,2BAFU,OAAO,CAEwB;CAlBxC;wCA7CuC,+BAA+B"}
1
+ {"version":3,"file":"ReactiveNegate.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/reactive/model/arithmetic/ReactiveNegate.js"],"names":[],"mappings":"AAGA;IA+BI;;;;OAIG;IACH,yCAFa,cAAc,CAQ1B;;IAzCD;;;;OAIG;IACH,aAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,SAFY,cAAc,CAQzB;IAED,4BAEC;IAED,iBAEC;IAiBL;;;OAGG;IACH,mBAFU,WAAS,MAAM,CAEQ;IAEjC;;;OAGG;IACH,iCAFU,OAAO,CAE8B;IAE/C;;;OAGG;IACH,2BAFU,OAAO,CAEwB;CAlBxC;wCA7CuC,+BAA+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveNot.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/reactive/model/logic/ReactiveNot.js"],"names":[],"mappings":"AAGA;IA8BI;;;;OAIG;IACH,yCAFa,WAAW,CAQvB;IAnCO,cAWD;IAhBP;;;;OAIG;IACH,aAHW,OAAO,GACL,OAAO,CAInB;IAED;;;OAGG;IACH,SAFY,WAAW,CAQtB;IAED,4BAEC;IAED,iBAEC;IAgBL;;;OAGG;IACH,4BAA8B;IAE9B;;;OAGG;IACH,4BAFU,OAAO,CAEsB;IAEvC;;;OAGG;IACH,wBAFU,OAAO,CAEkB;CAlBlC;wCA5CuC,+BAA+B"}
1
+ {"version":3,"file":"ReactiveNot.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/model/reactive/model/logic/ReactiveNot.js"],"names":[],"mappings":"AAGA;IA8BI;;;;OAIG;IACH,yCAFa,WAAW,CAQvB;;IAxCD;;;;OAIG;IACH,aAHW,OAAO,GACL,OAAO,CAInB;IAED;;;OAGG;IACH,SAFY,WAAW,CAQtB;IAED,4BAEC;IAED,iBAEC;IAgBL;;;OAGG;IACH,4BAA8B;IAE9B;;;OAGG;IACH,4BAFU,OAAO,CAEsB;IAEvC;;;OAGG;IACH,wBAFU,OAAO,CAEkB;CAlBlC;wCA5CuC,+BAA+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"AchievementGateway.d.ts","sourceRoot":"","sources":["../../../../src/engine/achievements/AchievementGateway.js"],"names":[],"mappings":"AAAA;;GAEG;AACH;IAKI;;;OAGG;IACH,eAFa,QAAQ,QAAQ,CAAC,CAK7B;IAED;;;;OAIG;IACH,iCAGC;CACJ"}
1
+ {"version":3,"file":"AchievementGateway.d.ts","sourceRoot":"","sources":["../../../../src/engine/achievements/AchievementGateway.js"],"names":[],"mappings":"AAAA;;GAEG;AACH;IAKI;;;OAGG;IACH,eAFa,QAAQ,MAAM,EAAE,CAAC,CAK7B;IAED;;;;OAIG;IACH,iCAGC;CACJ"}
@@ -8,7 +8,7 @@ export class AchievementGateway {
8
8
 
9
9
  /**
10
10
  * Retrieve list of unlocked achievements
11
- * @returns {Promise<String[]>} IDs of unlocked achievements
11
+ * @returns {Promise<string[]>} IDs of unlocked achievements
12
12
  */
13
13
  getUnlocked() {
14
14
  //needs to be overridden in subclass
@@ -85,7 +85,7 @@ export class AchievementManager extends EnginePlugin {
85
85
  *
86
86
  * @param {AssetManager} assetManager
87
87
  */
88
- loadDefinitions(assetManager: AssetManager): Promise<any>;
88
+ loadDefinitions(assetManager: AssetManager): Promise<void>;
89
89
  /**
90
90
  * Visually present an achievement
91
91
  * @param {Achievement} achievement
@@ -1 +1 @@
1
- {"version":3,"file":"AchievementManager.d.ts","sourceRoot":"","sources":["../../../../src/engine/achievements/AchievementManager.js"],"names":[],"mappings":"AA0CA;IAGQ,WAAwB;IAExB;;;OAGG;IACH,SAFU,qBAAmB,IAAI,CAEd;IAEnB;;;OAGG;IACH,SAFU,WAAW,EAAE,CAEN;IAGjB;;;OAGG;IACH,cAFU,eAAa,IAAI,CAEH;IAExB;;;OAGG;IACH,YAFU,aAAW,IAAI,CAEH;IAEtB;;;OAGG;IACH,eAFU,gBAAc,IAAI,CAEH;IAEzB;;;OAGG;IACH,cAFU,eAAa,IAAI,CAEH;IAExB;;;OAGG;IACH,oBAFU,eAAe,CAEkB;IAG3C;;;OAGG;IACH,+BAFU,eAAe,CAE6B;IAEtD;;;OAGG;IACH,+BAFU,eAAe,CAE6B;IAEtD;;;OAGG;IACH,mBAFU,WAAW,CAKpB;IAUD,aAAkB;IAGtB;;;;OAIG;IACH,gCAFY,WAAW,GAAC,SAAS,CAIhC;IAGD;;;OAGG;IACH,yBA6BC;IAED;;;OAGG;IACH,sBAcC;IAED;;;OAGG;IACH,wBAUC;IAGD;;OAEG;IACH,iBAUC;IAED;;OAEG;IACH,mBAMC;IAED,uCAMC;IAED;;;OAGG;IACH,0DA6BC;IAED;;;OAGG;IACH,qBAFW,WAAW,QA6FrB;IAED;;;OAGG;IACH,+CAGC;IAED,mCAgDC;IAED,yBAOC;IAED,0BAEC;CACJ;6BAla4B,2BAA2B;4BAG5B,kBAAkB;4BAxBlB,qCAAqC;4BACrC,sDAAsD"}
1
+ {"version":3,"file":"AchievementManager.d.ts","sourceRoot":"","sources":["../../../../src/engine/achievements/AchievementManager.js"],"names":[],"mappings":"AA0CA;IAGQ,WAAwB;IAExB;;;OAGG;IACH,SAFU,qBAAmB,IAAI,CAEd;IAEnB;;;OAGG;IACH,SAFU,WAAW,EAAE,CAEN;IAGjB;;;OAGG;IACH,cAFU,eAAa,IAAI,CAEH;IAExB;;;OAGG;IACH,YAFU,aAAW,IAAI,CAEH;IAEtB;;;OAGG;IACH,eAFU,gBAAc,IAAI,CAEH;IAEzB;;;OAGG;IACH,cAFU,eAAa,IAAI,CAEH;IAExB;;;OAGG;IACH,oBAFU,eAAe,CAEkB;IAG3C;;;OAGG;IACH,+BAFU,eAAe,CAE6B;IAEtD;;;OAGG;IACH,+BAFU,eAAe,CAE6B;IAEtD;;;OAGG;IACH,mBAFU,WAAW,CAKpB;IAUD,aAAkB;IAGtB;;;;OAIG;IACH,gCAFY,WAAW,GAAC,SAAS,CAIhC;IAGD;;;OAGG;IACH,yBA6BC;IAED;;;OAGG;IACH,sBAcC;IAED;;;OAGG;IACH,wBAUC;IAGD;;OAEG;IACH,iBAUC;IAED;;OAEG;IACH,mBAMC;IAED,uCAMC;IAED;;;OAGG;IACH,2DAaC;IAED;;;OAGG;IACH,qBAFW,WAAW,QA2FrB;IAED;;;OAGG;IACH,+CAGC;IAED,mCAoDC;IAED,yBAOC;IAED,0BAEC;CACJ;6BApZ4B,2BAA2B;4BAG5B,kBAAkB;4BAxBlB,qCAAqC;4BACrC,sDAAsD"}
@@ -18,7 +18,7 @@ import { Transform } from "../ecs/transform/Transform.js";
18
18
  import { SequenceBehavior } from "../intelligence/behavior/composite/SequenceBehavior.js";
19
19
  import { BehaviorComponent } from "../intelligence/behavior/ecs/BehaviorComponent.js";
20
20
  import { ClockChannelType } from "../intelligence/behavior/ecs/ClockChannelType.js";
21
- import { ActionBehavior } from "../intelligence/behavior/primitive/ActionBehavior.js";
21
+ import { DieBehavior } from "../intelligence/behavior/ecs/DieBehavior.js";
22
22
  import { logger } from "../logging/GlobalLogger.js";
23
23
  import { globalMetrics } from "../metrics/GlobalMetrics.js";
24
24
  import { MetricsCategory } from "../metrics/MetricsCategory.js";
@@ -241,35 +241,19 @@ export class AchievementManager extends EnginePlugin {
241
241
  *
242
242
  * @param {AssetManager} assetManager
243
243
  */
244
- loadDefinitions(assetManager) {
245
- return new Promise((resolve, reject) => {
246
- assetManager.get(
247
- {
248
- path: "data/database/achievements/data.json", type: GameAssetType.JSON, callback: (asset) => {
249
- try {
250
-
251
- const json = asset.create();
252
-
253
- json.forEach(def => {
254
- const achievement = new Achievement();
255
-
256
- achievement.fromJSON(def);
257
-
258
- this.entries.push(achievement);
259
- });
260
-
261
- } catch (e) {
244
+ async loadDefinitions(assetManager) {
245
+ const asset = await assetManager.promise("data/database/achievements/data.json", GameAssetType.JSON)
262
246
 
263
- reject(e);
247
+ const json = asset.create();
264
248
 
265
- return;
266
- }
249
+ json.forEach(def => {
250
+ const achievement = new Achievement();
267
251
 
268
- resolve();
252
+ achievement.fromJSON(def);
269
253
 
270
- }, failure: reject
271
- });
254
+ this.entries.push(achievement);
272
255
  });
256
+
273
257
  }
274
258
 
275
259
  /**
@@ -330,15 +314,13 @@ export class AchievementManager extends EnginePlugin {
330
314
  opacity: alpha
331
315
  });
332
316
  })),
333
- new ActionBehavior(() => {
334
- builder.destroy();
335
- })
317
+ DieBehavior.create()
336
318
  ]);
337
319
 
338
- const cBehavior = new BehaviorComponent();
320
+ const cBehavior = BehaviorComponent.fromOne(sequenceBehavior);
321
+
339
322
  //use system clock for behavior
340
323
  cBehavior.clock = ClockChannelType.Simulation;
341
- cBehavior.list.push(sequenceBehavior);
342
324
 
343
325
  const guiElement = GUIElement.fromView(achievementView);
344
326
 
@@ -379,6 +361,10 @@ export class AchievementManager extends EnginePlugin {
379
361
  }
380
362
 
381
363
  async initializeGateway() {
364
+ /**
365
+ *
366
+ * @type {string[]}
367
+ */
382
368
  const unlockedIds = await this.gateway.getUnlocked();
383
369
 
384
370
  //de-activate unlocked achievements
@@ -1 +1 @@
1
- {"version":3,"file":"StorageAchievementGateway.d.ts","sourceRoot":"","sources":["../../../../../src/engine/achievements/gateway/StorageAchievementGateway.js"],"names":[],"mappings":"AAGA;IACI;;;;OAIG;IACH,qBAHW,OAAO,gBAWjB;IALG,iBAAsB;IAEtB,YAAc;IAEd,oBAA6B;IAGjC,4BAYC;IAED,+BAmCC;CACJ;mCApEkC,0BAA0B"}
1
+ {"version":3,"file":"StorageAchievementGateway.d.ts","sourceRoot":"","sources":["../../../../../src/engine/achievements/gateway/StorageAchievementGateway.js"],"names":[],"mappings":"AAGA;IACI;;;;OAIG;IACH,qBAHW,OAAO,gBAWjB;IALG,iBAAsB;IAEtB,YAAc;IAEd,oBAA6B;IAGjC,4BAiBC;IAED,+BAmCC;CACJ;mCAzEkC,0BAA0B"}
@@ -19,15 +19,20 @@ export class StorageAchievementGateway extends AchievementGateway {
19
19
 
20
20
  getUnlocked() {
21
21
  return new Promise((resolve, reject) => {
22
- this.storage.load(this.key, (list) => {
23
-
24
- if (list === undefined) {
25
- resolve([]);
26
- } else {
27
- resolve(list);
28
- }
29
-
30
- }, reject, noop);
22
+ this.storage.load(this.key,
23
+ /**
24
+ *
25
+ * @param {string[]|undefined} list
26
+ */
27
+ (list) => {
28
+
29
+ if (list === undefined) {
30
+ resolve([]);
31
+ } else {
32
+ resolve(list);
33
+ }
34
+
35
+ }, reject, noop);
31
36
  });
32
37
  }
33
38
 
@@ -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":"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"}
@@ -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":"BehaviorComponent.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/BehaviorComponent.js"],"names":[],"mappings":"AAMA;IA4GI;;;;;OAKG;IACH,gDAFa,iBAAiB,CAM7B;IAED;;;;OAIG;IACH,6BAFa,iBAAiB,CAa7B;IArIG;;;OAGG;IACH,OAFU,gBAAgB,GAAC,MAAM,CAEO;IAExC;;;OAGG;IACH,OAFU,MAAM,CAEF;IAEd;;;;OAIG;IACH,mBAAsB;IAG1B;;;;OAIG;IACH,cAHW,MAAM,wBAAsB,GAC1B,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,wBAAsB,GAC1B,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,wBAAsB,SAC5B,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,wBAAsB,GAC1B,OAAO,CAInB;IAUD;;;OAGG;IACH,uBAEC;IAdD;;;OAGG;IACH,oBAEC;IAsBD;;;OAGG;IACH,mBAUC;IA1BD;;;OAGG;IACH,gBAMC;CAgDJ;;sBAIS,OAAO;kBAMP,MAAM;;iCAxJiB,uBAAuB"}
1
+ {"version":3,"file":"BehaviorComponent.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/intelligence/behavior/ecs/BehaviorComponent.js"],"names":[],"mappings":"AAKA;IA6EI;;;;;OAKG;IACH,gDAFa,iBAAiB,CAM7B;IAED;;;;OAIG;IACH,6BAFa,iBAAiB,CAa7B;IAvGD;;;OAGG;IACH,OAFU,gBAAgB,GAAC,MAAM,CAEG;IAEpC;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;;OAIG;IACH,mBAAkB;IAElB;;;;OAIG;IACH,cAHW,MAAM,wBAAsB,GAC1B,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,wBAAsB,GAC1B,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,wBAAsB,SAC5B,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,wBAAsB,GAC1B,OAAO,CAInB;IAUD;;;OAGG;IACH,uBAEC;IAdD;;;OAGG;IACH,oBAEC;CAuCJ;;sBAIS,OAAO;kBAMP,MAAM;;iCAtHiB,uBAAuB"}