@woosh/meep-engine 2.126.12 → 2.126.15

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 (175) hide show
  1. package/package.json +1 -1
  2. package/src/core/binary/BinaryBuffer.d.ts +11 -1
  3. package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
  4. package/src/core/binary/BinaryBuffer.js +18 -8
  5. package/src/core/collection/array/array_push_if_unique.d.ts +4 -3
  6. package/src/core/collection/array/array_push_if_unique.d.ts.map +1 -1
  7. package/src/core/collection/array/array_push_if_unique.js +4 -3
  8. package/src/core/geom/3d/quaternion/quat_decode_from_uint32.d.ts +4 -0
  9. package/src/core/geom/3d/quaternion/quat_decode_from_uint32.d.ts.map +1 -1
  10. package/src/core/geom/3d/quaternion/quat_decode_from_uint32.js +4 -0
  11. package/src/core/geom/3d/quaternion/quat_encode_to_uint32.d.ts +4 -0
  12. package/src/core/geom/3d/quaternion/quat_encode_to_uint32.d.ts.map +1 -1
  13. package/src/core/geom/3d/quaternion/quat_encode_to_uint32.js +4 -0
  14. package/src/core/geom/Vector3.d.ts +2 -1
  15. package/src/core/geom/Vector3.d.ts.map +1 -1
  16. package/src/core/geom/Vector3.js +2 -1
  17. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  18. package/src/engine/ecs/EntityComponentDataset.js +1 -0
  19. package/src/engine/ecs/EntityManager.d.ts +3 -0
  20. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  21. package/src/engine/ecs/EntityManager.js +3 -0
  22. package/src/engine/ecs/EntityObserver.d.ts.map +1 -1
  23. package/src/engine/ecs/EntityObserver.js +3 -0
  24. package/src/engine/ecs/EntityReference.d.ts +10 -8
  25. package/src/engine/ecs/EntityReference.d.ts.map +1 -1
  26. package/src/engine/ecs/EntityReference.js +10 -8
  27. package/src/engine/ecs/System.d.ts.map +1 -1
  28. package/src/engine/ecs/System.js +3 -0
  29. package/src/engine/ecs/parent/ParentEntity.d.ts.map +1 -1
  30. package/src/engine/ecs/parent/ParentEntity.js +4 -1
  31. package/src/engine/ecs/storage/BinaryBufferDeSerializer.d.ts +17 -1
  32. package/src/engine/ecs/storage/BinaryBufferDeSerializer.d.ts.map +1 -1
  33. package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +20 -1
  34. package/src/engine/ecs/storage/BinaryBufferSerializer.d.ts +17 -0
  35. package/src/engine/ecs/storage/BinaryBufferSerializer.d.ts.map +1 -1
  36. package/src/engine/ecs/storage/BinaryBufferSerializer.js +31 -7
  37. package/src/engine/ecs/transform/Transform.d.ts +0 -1
  38. package/src/engine/ecs/transform/Transform.d.ts.map +1 -1
  39. package/src/engine/ecs/transform/Transform.js +0 -1
  40. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +2 -0
  41. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
  42. package/src/engine/graphics/texture/sampler/Sampler2D.js +2 -0
  43. package/src/engine/input/devices/InputDeviceSwitch.d.ts.map +1 -1
  44. package/src/engine/input/devices/InputDeviceSwitch.js +3 -0
  45. package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
  46. package/src/engine/input/devices/KeyboardDevice.js +5 -1
  47. package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
  48. package/src/engine/input/devices/PointerDevice.js +3 -0
  49. package/src/engine/intelligence/behavior/Behavior.d.ts.map +1 -1
  50. package/src/engine/intelligence/behavior/Behavior.js +3 -1
  51. package/src/engine/intelligence/behavior/SelectorBehavior.d.ts +2 -0
  52. package/src/engine/intelligence/behavior/SelectorBehavior.d.ts.map +1 -1
  53. package/src/engine/intelligence/behavior/SelectorBehavior.js +2 -0
  54. package/src/engine/intelligence/behavior/behavior_to_dot.d.ts +4 -0
  55. package/src/engine/intelligence/behavior/behavior_to_dot.d.ts.map +1 -1
  56. package/src/engine/intelligence/behavior/behavior_to_dot.js +4 -0
  57. package/src/engine/intelligence/behavior/composite/CompositeBehavior.d.ts +3 -0
  58. package/src/engine/intelligence/behavior/composite/CompositeBehavior.d.ts.map +1 -1
  59. package/src/engine/intelligence/behavior/composite/CompositeBehavior.js +3 -0
  60. package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts +3 -0
  61. package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts.map +1 -1
  62. package/src/engine/intelligence/behavior/composite/ParallelBehavior.js +3 -0
  63. package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts +3 -0
  64. package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts.map +1 -1
  65. package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +3 -0
  66. package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts +5 -0
  67. package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts.map +1 -1
  68. package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.js +6 -1
  69. package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.d.ts +5 -0
  70. package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.d.ts.map +1 -1
  71. package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.js +6 -1
  72. package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.d.ts +3 -0
  73. package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.d.ts.map +1 -1
  74. package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.js +3 -0
  75. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts +3 -0
  76. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts.map +1 -1
  77. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.js +3 -0
  78. package/src/engine/intelligence/behavior/decorator/RepeatUntilFailureBehavior.d.ts +3 -0
  79. package/src/engine/intelligence/behavior/decorator/RepeatUntilFailureBehavior.d.ts.map +1 -1
  80. package/src/engine/intelligence/behavior/decorator/RepeatUntilFailureBehavior.js +3 -0
  81. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts +5 -0
  82. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts.map +1 -1
  83. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.js +6 -1
  84. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts +3 -0
  85. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts.map +1 -1
  86. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +3 -0
  87. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts +3 -0
  88. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts.map +1 -1
  89. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.js +3 -0
  90. package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts +3 -0
  91. package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts.map +1 -1
  92. package/src/engine/intelligence/behavior/ecs/DieBehavior.js +3 -0
  93. package/src/engine/intelligence/behavior/ecs/EntityBehavior.d.ts +5 -0
  94. package/src/engine/intelligence/behavior/ecs/EntityBehavior.d.ts.map +1 -1
  95. package/src/engine/intelligence/behavior/ecs/EntityBehavior.js +8 -3
  96. package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts +2 -0
  97. package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts.map +1 -1
  98. package/src/engine/intelligence/behavior/ecs/KillBehavior.js +2 -0
  99. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +2 -0
  100. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts.map +1 -1
  101. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.js +2 -0
  102. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts +2 -0
  103. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts.map +1 -1
  104. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js +2 -0
  105. package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +2 -0
  106. package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts.map +1 -1
  107. package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +2 -0
  108. package/src/engine/intelligence/behavior/primitive/FailingBehavior.d.ts +5 -0
  109. package/src/engine/intelligence/behavior/primitive/FailingBehavior.d.ts.map +1 -1
  110. package/src/engine/intelligence/behavior/primitive/FailingBehavior.js +5 -0
  111. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts +5 -0
  112. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts.map +1 -1
  113. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.js +5 -0
  114. package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts +2 -0
  115. package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts.map +1 -1
  116. package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.js +2 -0
  117. package/src/engine/intelligence/behavior/selector/WeightedElement.d.ts +2 -0
  118. package/src/engine/intelligence/behavior/selector/WeightedElement.d.ts.map +1 -1
  119. package/src/engine/intelligence/behavior/selector/WeightedElement.js +2 -0
  120. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts +2 -0
  121. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts.map +1 -1
  122. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.js +2 -0
  123. package/src/engine/intelligence/behavior/util/BranchBehavior.d.ts +2 -0
  124. package/src/engine/intelligence/behavior/util/BranchBehavior.d.ts.map +1 -1
  125. package/src/engine/intelligence/behavior/util/BranchBehavior.js +2 -0
  126. package/src/engine/intelligence/behavior/util/DelayBehavior.d.ts +3 -1
  127. package/src/engine/intelligence/behavior/util/DelayBehavior.d.ts.map +1 -1
  128. package/src/engine/intelligence/behavior/util/DelayBehavior.js +3 -1
  129. package/src/engine/intelligence/behavior/util/LogMessageBehavior.d.ts +2 -0
  130. package/src/engine/intelligence/behavior/util/LogMessageBehavior.d.ts.map +1 -1
  131. package/src/engine/intelligence/behavior/util/LogMessageBehavior.js +2 -0
  132. package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts +2 -0
  133. package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts.map +1 -1
  134. package/src/engine/intelligence/behavior/util/RandomDelayBehavior.js +2 -0
  135. package/src/engine/intelligence/blackboard/Blackboard.d.ts.map +1 -1
  136. package/src/engine/intelligence/blackboard/Blackboard.js +5 -1
  137. package/src/engine/intelligence/mcts/MonteCarlo.d.ts +2 -0
  138. package/src/engine/intelligence/mcts/MonteCarlo.d.ts.map +1 -1
  139. package/src/engine/intelligence/mcts/MonteCarlo.js +2 -0
  140. package/src/engine/intelligence/mcts/MoveEdge.d.ts +2 -0
  141. package/src/engine/intelligence/mcts/MoveEdge.d.ts.map +1 -1
  142. package/src/engine/intelligence/mcts/MoveEdge.js +2 -0
  143. package/src/engine/intelligence/mcts/StateNode.d.ts +2 -0
  144. package/src/engine/intelligence/mcts/StateNode.d.ts.map +1 -1
  145. package/src/engine/intelligence/mcts/StateNode.js +2 -0
  146. package/src/engine/intelligence/optimization/RandomOptimizer.d.ts +8 -8
  147. package/src/engine/intelligence/optimization/RandomOptimizer.d.ts.map +1 -1
  148. package/src/engine/intelligence/optimization/RandomOptimizer.js +37 -40
  149. package/src/engine/intelligence/resource/ActionSequence.d.ts +3 -1
  150. package/src/engine/intelligence/resource/ActionSequence.d.ts.map +1 -1
  151. package/src/engine/intelligence/resource/ActionSequence.js +10 -13
  152. package/src/engine/intelligence/resource/Resource.d.ts +2 -0
  153. package/src/engine/intelligence/resource/Resource.d.ts.map +1 -1
  154. package/src/engine/intelligence/resource/Resource.js +2 -0
  155. package/src/engine/intelligence/resource/ResourceAllocation.d.ts +5 -0
  156. package/src/engine/intelligence/resource/ResourceAllocation.d.ts.map +1 -1
  157. package/src/engine/intelligence/resource/ResourceAllocation.js +5 -0
  158. package/src/engine/intelligence/resource/ResourceAllocationBid.d.ts +4 -1
  159. package/src/engine/intelligence/resource/ResourceAllocationBid.d.ts.map +1 -1
  160. package/src/engine/intelligence/resource/ResourceAllocationBid.js +4 -1
  161. package/src/engine/intelligence/resource/ResourceAllocationSolver.d.ts +5 -0
  162. package/src/engine/intelligence/resource/ResourceAllocationSolver.d.ts.map +1 -1
  163. package/src/engine/intelligence/resource/ResourceAllocationSolver.js +26 -21
  164. package/src/engine/intelligence/resource/StrategicResourceAllocator.d.ts +16 -3
  165. package/src/engine/intelligence/resource/StrategicResourceAllocator.d.ts.map +1 -1
  166. package/src/engine/intelligence/resource/StrategicResourceAllocator.js +32 -14
  167. package/src/engine/intelligence/resource/TacticalModule.d.ts +2 -0
  168. package/src/engine/intelligence/resource/TacticalModule.d.ts.map +1 -1
  169. package/src/engine/intelligence/resource/TacticalModule.js +2 -0
  170. package/src/engine/simulation/Ticker.d.ts +3 -0
  171. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  172. package/src/engine/simulation/Ticker.js +3 -0
  173. package/src/engine/intelligence/behavior/behavior_to_dot.prototype.d.ts +0 -2
  174. package/src/engine/intelligence/behavior/behavior_to_dot.prototype.d.ts.map +0 -1
  175. package/src/engine/intelligence/behavior/behavior_to_dot.prototype.js +0 -55
@@ -1,5 +1,5 @@
1
- import { seededRandom } from "../../../core/math/random/seededRandom.js";
2
1
  import { randomFromArray } from "../../../core/math/random/randomFromArray.js";
2
+ import { seededRandom } from "../../../core/math/random/seededRandom.js";
3
3
 
4
4
  /**
5
5
  * Hill climbing optimizer based on testing random moves one move at a time, if overall fitness improves - that move is committed, otherwise it's rejected
@@ -9,47 +9,44 @@ import { randomFromArray } from "../../../core/math/random/randomFromArray.js";
9
9
  */
10
10
  export class RandomOptimizer {
11
11
 
12
+
12
13
  /**
13
- * @template S
14
+ *
15
+ * @type {S|null}
14
16
  */
15
- constructor() {
16
- /**
17
- *
18
- * @type {S}
19
- */
20
- this.state = null;
21
-
22
- /**
23
- *
24
- * @type {function(S):S}
25
- */
26
- this.cloneState = null;
27
-
28
- /**
29
- *
30
- * @type {function(S):Function[]}
31
- */
32
- this.computeValidActions = null;
33
-
34
- /**
35
- *
36
- * @type {function(S):number}
37
- */
38
- this.scoreFunction = null;
39
-
40
- /**
41
- *
42
- * @type {function(S,random:function():number)|null}
43
- */
44
- this.randomAction = null;
45
-
46
-
47
- /**
48
- *
49
- * @type {Function}
50
- */
51
- this.random = seededRandom(0);
52
- }
17
+ state = null;
18
+
19
+ /**
20
+ *
21
+ * @type {function(S):S}
22
+ */
23
+ cloneState = null;
24
+
25
+ /**
26
+ *
27
+ * @type {function(S):Function[]}
28
+ */
29
+ computeValidActions = null;
30
+
31
+ /**
32
+ *
33
+ * @type {function(S):number}
34
+ */
35
+ scoreFunction = null;
36
+
37
+ /**
38
+ *
39
+ * @type {function(S,random:function():number)|null}
40
+ */
41
+ randomAction = null;
42
+
43
+
44
+ /**
45
+ *
46
+ * @type {function():number}
47
+ */
48
+ random = seededRandom(0);
49
+
53
50
 
54
51
  /**
55
52
  *
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * @template A
3
+ * @author Alex Goldring
4
+ * @copyright Company Named Limited (c) 2025
3
5
  */
4
6
  export class ActionSequence<A> {
5
7
  /**
6
8
  *
7
9
  * @type {A[]}
8
10
  */
9
- actions: A_1[];
11
+ actions: A[];
10
12
  /**
11
13
  * Higher priority sequences indicate that they need to be executed first
12
14
  * @type {number}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionSequence.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/ActionSequence.js"],"names":[],"mappings":"AAAA;;GAEG;AACH,4BAFa,CAAC;IAQN;;;OAGG;IACH,SAFU,GAAC,EAAE,CAEI;IAEjB;;;OAGG;IACH,UAFU,MAAM,CAEC;IAGrB;;;OAGG;IACH,eAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,eAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFW,CAAC,QAIX;CACJ"}
1
+ {"version":3,"file":"ActionSequence.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/ActionSequence.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4BAJa,CAAC;IAMV;;;OAGG;IACH,SAFU,CAAC,EAAE,CAEA;IAEb;;;OAGG;IACH,UAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,eAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,eAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFW,CAAC,QAIX;CACJ"}
@@ -1,24 +1,21 @@
1
1
  /**
2
2
  * @template A
3
+ * @author Alex Goldring
4
+ * @copyright Company Named Limited (c) 2025
3
5
  */
4
6
  export class ActionSequence {
5
7
 
6
8
  /**
7
- * @template A
9
+ *
10
+ * @type {A[]}
8
11
  */
9
- constructor() {
10
- /**
11
- *
12
- * @type {A[]}
13
- */
14
- this.actions = [];
12
+ actions = [];
15
13
 
16
- /**
17
- * Higher priority sequences indicate that they need to be executed first
18
- * @type {number}
19
- */
20
- this.priority = 0;
21
- }
14
+ /**
15
+ * Higher priority sequences indicate that they need to be executed first
16
+ * @type {number}
17
+ */
18
+ priority = 0;
22
19
 
23
20
  /**
24
21
  *
@@ -1,5 +1,7 @@
1
1
  /**
2
2
  * @template T
3
+ * @author Alex Goldring
4
+ * @copyright Company Named Limited (c) 2025
3
5
  */
4
6
  export class Resource<T> {
5
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/Resource.js"],"names":[],"mappings":"AAEA;;GAEG;AACH,sBAFa,CAAC;IAIV;;;;OAIG;IACH,oBAHW,MAAM,QACN,GAAC,EAmBX;IAXG;;;OAGG;IACH,MAFU,GAAC,CAEK;IAEhB;;;OAGG;IACH,QAFU,MAAM,CAEI;IAGxB;;;;OAIG;IACH,8BAFa,OAAO,CAInB;IAED;;;OAGG;IACH,iCAGC;IAED;;;OAGG;IACH,uBAEC;CACJ"}
1
+ {"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/Resource.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,sBAJa,CAAC;IAMV;;;;OAIG;IACH,oBAHW,MAAM,QACN,GAAC,EAmBX;IAXG;;;OAGG;IACH,MAFU,GAAC,CAEK;IAEhB;;;OAGG;IACH,QAFU,MAAM,CAEI;IAGxB;;;;OAIG;IACH,8BAFa,OAAO,CAInB;IAED;;;OAGG;IACH,iCAGC;IAED;;;OAGG;IACH,uBAEC;CACJ"}
@@ -2,6 +2,8 @@ import { assert } from "../../../core/assert.js";
2
2
 
3
3
  /**
4
4
  * @template T
5
+ * @author Alex Goldring
6
+ * @copyright Company Named Limited (c) 2025
5
7
  */
6
8
  export class Resource {
7
9
 
@@ -1,3 +1,8 @@
1
+ /**
2
+ *
3
+ * @author Alex Goldring
4
+ * @copyright Company Named Limited (c) 2025
5
+ */
1
6
  export class ResourceAllocation {
2
7
  /**
3
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceAllocation.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/ResourceAllocation.js"],"names":[],"mappings":"AAAA;IACI;;;OAGG;IACH,wBAFW,QAAQ,EAAE,EAQpB;IALG;;;OAGG;IACH,WAFU,QAAQ,EAAE,CAEM;CAEjC"}
1
+ {"version":3,"file":"ResourceAllocation.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/ResourceAllocation.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;IACI;;;OAGG;IACH,wBAFW,QAAQ,EAAE,EAQpB;IALG;;;OAGG;IACH,WAFU,QAAQ,EAAE,CAEM;CAEjC"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ *
3
+ * @author Alex Goldring
4
+ * @copyright Company Named Limited (c) 2025
5
+ */
1
6
  export class ResourceAllocation {
2
7
  /**
3
8
  *
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * @template A
3
- * A bid represents some kind of a tactical action. As such, it is atomic, either all required resources are allocated, or none.
3
+ * A bid represents a tactical action. As such, it is atomic, either all required resources are allocated, or none.
4
+ *
5
+ * @author Alex Goldring
6
+ * @copyright Company Named Limited (c) 2025
4
7
  */
5
8
  export class ResourceAllocationBid<A> {
6
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceAllocationBid.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/ResourceAllocationBid.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,mCAHa,CAAC;IAIV;;;;OAIG;IACH,wBAHW,kBAAkB,SAClB,MAAM,EA+BhB;IAvBG;;;OAGG;IACH,YAFU,kBAAkB,CAEA;IAC5B;;;OAGG;IACH,OAFU,MAAM,CAEE;IAElB;;;;OAIG;IACH,kBAFU,cAAc,CAAC,GAAC,CAAC,CAEQ;IAEnC;;;OAGG;IACH,QAFU,MAAM,CAED;CAEtB;+BA1C8B,qBAAqB"}
1
+ {"version":3,"file":"ResourceAllocationBid.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/ResourceAllocationBid.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,mCANa,CAAC;IAOV;;;;OAIG;IACH,wBAHW,kBAAkB,SAClB,MAAM,EA+BhB;IAvBG;;;OAGG;IACH,YAFU,kBAAkB,CAEA;IAC5B;;;OAGG;IACH,OAFU,MAAM,CAEE;IAElB;;;;OAIG;IACH,kBAFU,cAAc,CAAC,GAAC,CAAC,CAEQ;IAEnC;;;OAGG;IACH,QAFU,MAAM,CAED;CAEtB;+BA7C8B,qBAAqB"}
@@ -3,7 +3,10 @@ import { ActionSequence } from "./ActionSequence.js";
3
3
 
4
4
  /**
5
5
  * @template A
6
- * A bid represents some kind of a tactical action. As such, it is atomic, either all required resources are allocated, or none.
6
+ * A bid represents a tactical action. As such, it is atomic, either all required resources are allocated, or none.
7
+ *
8
+ * @author Alex Goldring
9
+ * @copyright Company Named Limited (c) 2025
7
10
  */
8
11
  export class ResourceAllocationBid {
9
12
  /**
@@ -1,3 +1,8 @@
1
+ /**
2
+ *
3
+ * @author Alex Goldring
4
+ * @copyright Company Named Limited (c) 2025
5
+ */
1
6
  export class ResourceAllocationSolver {
2
7
  /**
3
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceAllocationSolver.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/ResourceAllocationSolver.js"],"names":[],"mappings":"AAgBA;IAEQ;;;;OAIG;IACH,kBAA0B;IAE1B;;;;OAIG;IACH,aAAc;IAEd;;;;OAIG;IACH,oBAAqB;IAGzB,cAIC;IAED;;;OAGG;IACH,wBAFW,QAAQ,EAAE,QAIpB;IAED;;;OAGG;IACH,sBAFW,QAAQ,QAYlB;IAED;;;OAGG;IACH,cAFW,qBAAqB,EAAE,QAIjC;IAED;;;OAGG;IACH,YAFW,qBAAqB,QAM/B;IAGD;;;;OAIG;IACH,SAFa,qBAAqB,EAAE,CAqEnC;CAEJ"}
1
+ {"version":3,"file":"ResourceAllocationSolver.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/ResourceAllocationSolver.js"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH;IAEI;;;;OAIG;IACH,kBAAsB;IAEtB;;;;OAIG;IACH,aAAU;IAEV;;;;OAIG;IACH,oBAAiB;IAGjB,cAIC;IAED;;;OAGG;IACH,wBAFW,QAAQ,EAAE,QAIpB;IAED;;;OAGG;IACH,sBAFW,QAAQ,QAYlB;IAED;;;OAGG;IACH,cAFW,qBAAqB,EAAE,QAIjC;IAED;;;OAGG;IACH,YAFW,qBAAqB,QAM/B;IAGD;;;;OAIG;IACH,SAFa,qBAAqB,EAAE,CAqEnC;CAEJ"}
@@ -6,7 +6,7 @@ import { assert } from "../../../core/assert.js";
6
6
  * @param {ResourceAllocationBid} b
7
7
  * @returns {number}
8
8
  */
9
- function byWeightedValue(a,b) {
9
+ function byWeightedValue(a, b) {
10
10
 
11
11
  const v0 = a.value * a.weight;
12
12
  const v1 = b.value * b.weight;
@@ -14,29 +14,34 @@ function byWeightedValue(a,b) {
14
14
  return v1 - v0;
15
15
  }
16
16
 
17
+ /**
18
+ *
19
+ * @author Alex Goldring
20
+ * @copyright Company Named Limited (c) 2025
21
+ */
17
22
  export class ResourceAllocationSolver {
18
- constructor() {
19
- /**
20
- *
21
- * @type {Map<any,Resource>}
22
- * @private
23
- */
24
- this.resources = new Map();
25
23
 
26
- /**
27
- *
28
- * @type {ResourceAllocationBid[]}
29
- * @private
30
- */
31
- this.bids = [];
24
+ /**
25
+ *
26
+ * @type {Map<any,Resource>}
27
+ * @private
28
+ */
29
+ resources = new Map();
30
+
31
+ /**
32
+ *
33
+ * @type {ResourceAllocationBid[]}
34
+ * @private
35
+ */
36
+ bids = [];
37
+
38
+ /**
39
+ *
40
+ * @type {ResourceAllocationBid[]}
41
+ * @private
42
+ */
43
+ allocations = [];
32
44
 
33
- /**
34
- *
35
- * @type {ResourceAllocationBid[]}
36
- * @private
37
- */
38
- this.allocations = [];
39
- }
40
45
 
41
46
  clear() {
42
47
  this.resources.clear();
@@ -1,4 +1,16 @@
1
- export class StrategicResourceAllocator {
1
+ /**
2
+ * @template A
3
+ * @example
4
+ * const allocator = new StrategicResourceAllocator();
5
+ *
6
+ * allocator.addTacticalModule(module); // add some tactical modules
7
+ *
8
+ * const resources = [new Resource(1, "a")];
9
+ * const actions = await allocator.allocate(resources); // list of actions that use resources
10
+ * @author Alex Goldring
11
+ * @copyright Company Named Limited (c) 2025
12
+ */
13
+ export class StrategicResourceAllocator<A> {
2
14
  /**
3
15
  *
4
16
  * @type {TacticalModule[]}
@@ -17,13 +29,14 @@ export class StrategicResourceAllocator {
17
29
  /**
18
30
  *
19
31
  * @param {TacticalModule} module
32
+ * @returns {boolean}
20
33
  */
21
- addTacticalModule(module: TacticalModule): void;
34
+ addTacticalModule(module: TacticalModule): boolean;
22
35
  /**
23
36
  * @template A
24
37
  * @param {Resource[]} resources
25
38
  * @returns {Promise<A[]>} actions
26
39
  */
27
- allocate<A>(resources: Resource[]): Promise<A[]>;
40
+ allocate<A_1>(resources: Resource[]): Promise<A_1[]>;
28
41
  }
29
42
  //# sourceMappingURL=StrategicResourceAllocator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StrategicResourceAllocator.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/StrategicResourceAllocator.js"],"names":[],"mappings":"AAIA;IAEQ;;;OAGG;IACH,SAFU,cAAc,EAAE,CAET;IAEjB;;;OAGG;IACH,6BAA8B;IAGlC;;;OAGG;IACH,kBAFW,CAAS,IAAgB,EAAhB,cAAc,EAAE,KAAE,OAAO,CAAC,cAAc,EAAE,CAAC,QAI9D;IAED;;;OAGG;IACH,0BAFW,cAAc,QAQxB;IAED;;;;OAIG;IACH,SAJa,CAAC,aACH,QAAQ,EAAE,GACR,OAAO,CAAC,CAAC,EAAE,CAAC,CAqFxB;CACJ"}
1
+ {"version":3,"file":"StrategicResourceAllocator.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/StrategicResourceAllocator.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,wCAXa,CAAC;IAaV;;;OAGG;IACH,SAFU,cAAc,EAAE,CAEb;IAEb;;;OAGG;IACH,6BAA0B;IAG1B;;;OAGG;IACH,kBAFW,CAAS,IAAgB,EAAhB,cAAc,EAAE,KAAE,OAAO,CAAC,cAAc,EAAE,CAAC,QAM9D;IAED;;;;OAIG;IACH,0BAHW,cAAc,GACZ,OAAO,CAQnB;IAED;;;;OAIG;IACH,yBAHW,QAAQ,EAAE,GACR,OAAO,CAAC,GAAC,EAAE,CAAC,CAuFxB;CACJ"}
@@ -1,40 +1,56 @@
1
- import { ResourceAllocationSolver } from "./ResourceAllocationSolver.js";
2
1
  import { assert } from "../../../core/assert.js";
2
+ import { array_push_if_unique } from "../../../core/collection/array/array_push_if_unique.js";
3
3
  import { buildPromiseChain } from "../../../core/process/buildPromiseChain.js";
4
+ import { ResourceAllocationSolver } from "./ResourceAllocationSolver.js";
4
5
 
6
+ /**
7
+ * @template A
8
+ * @example
9
+ * const allocator = new StrategicResourceAllocator();
10
+ *
11
+ * allocator.addTacticalModule(module); // add some tactical modules
12
+ *
13
+ * const resources = [new Resource(1, "a")];
14
+ * const actions = await allocator.allocate(resources); // list of actions that use resources
15
+ * @author Alex Goldring
16
+ * @copyright Company Named Limited (c) 2025
17
+ */
5
18
  export class StrategicResourceAllocator {
6
- constructor() {
7
- /**
8
- *
9
- * @type {TacticalModule[]}
10
- */
11
- this.modules = [];
12
19
 
13
- /**
14
- * @private
15
- * @type {Array<function(ActionSequence[]):Promise<ActionSequence[]>>}
16
- */
17
- this.sequenceTransformers = [];
18
- }
20
+ /**
21
+ *
22
+ * @type {TacticalModule[]}
23
+ */
24
+ modules = [];
25
+
26
+ /**
27
+ * @private
28
+ * @type {Array<function(ActionSequence[]):Promise<ActionSequence[]>>}
29
+ */
30
+ sequenceTransformers = [];
31
+
19
32
 
20
33
  /**
21
34
  * Add a sequence transformer, these are applied as a final step during resource allocation
22
35
  * @param {function(ActionSequence[]):Promise<ActionSequence[]>} t
23
36
  */
24
37
  addTransformer(t) {
38
+ assert.isFunction(t, 't');
39
+
25
40
  this.sequenceTransformers.push(t);
26
41
  }
27
42
 
28
43
  /**
29
44
  *
30
45
  * @param {TacticalModule} module
46
+ * @returns {boolean}
31
47
  */
32
48
  addTacticalModule(module) {
33
49
  assert.defined(module, 'module');
34
50
  assert.notNull(module, 'module');
35
51
  assert.equal(module.isTacticalModule, true, 'module.TacticalModule !== true');
36
52
 
37
- this.modules.push(module);
53
+ return array_push_if_unique(this.modules, module);
38
54
  }
39
55
 
40
56
  /**
@@ -43,6 +59,8 @@ export class StrategicResourceAllocator {
43
59
  * @returns {Promise<A[]>} actions
44
60
  */
45
61
  allocate(resources) {
62
+ assert.isArray(resources, 'resources');
63
+
46
64
 
47
65
  /**
48
66
  *
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Module is responsible for generating a set of bids given some resources
3
3
  * @template RT
4
+ * @author Alex Goldring
5
+ * @copyright Company Named Limited (c) 2025
4
6
  */
5
7
  export class TacticalModule<RT> {
6
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TacticalModule.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/TacticalModule.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,4BAFa,EAAE;IAGX;;;;OAIG;IACH,6BAHW,QAAQ,CAAC,IAAE,CAAC,EAAE,GACZ,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAI5C;IAIL;;;OAGG;IACH,2BAFU,OAAO,CAEwB;CAPxC"}
1
+ {"version":3,"file":"TacticalModule.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/TacticalModule.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,4BAJa,EAAE;IAKX;;;;OAIG;IACH,6BAHW,QAAQ,CAAC,IAAE,CAAC,EAAE,GACZ,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAI5C;IAIL;;;OAGG;IACH,2BAFU,OAAO,CAEwB;CAPxC"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Module is responsible for generating a set of bids given some resources
3
3
  * @template RT
4
+ * @author Alex Goldring
5
+ * @copyright Company Named Limited (c) 2025
4
6
  */
5
7
  export class TacticalModule {
6
8
  /**
@@ -3,6 +3,9 @@ export default Ticker;
3
3
  * Simulation tick generator
4
4
  * Dispatches "tick" every animation frame or "maxDelay" time, whichever happens to be soonest
5
5
  * This is essentially the timing bus that all the simulation systems subscribe to for their step advancement
6
+ *
7
+ * @author Alex Goldring
8
+ * @copyright Company Named Limited (c) 2025
6
9
  */
7
10
  declare class Ticker {
8
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Ticker.d.ts","sourceRoot":"","sources":["../../../../src/engine/simulation/Ticker.js"],"names":[],"mappings":";AAIA;;;;GAIG;AACH;IACI;;;OAGG;IACH,gBAFU,KAAK,CAEK;IAWpB;;;;OAIG;IACH,iBAFU,MAAM,CAAC,MAAM,CAAC,CAEF;IActB;;;OAGG;IACH,uBAFW,MAAM,QA8ChB;IAED,cAOC;IAED,eAQC;IAED,aAOC;;CACJ;kBAvHiB,aAAa;mBADZ,oCAAoC"}
1
+ {"version":3,"file":"Ticker.d.ts","sourceRoot":"","sources":["../../../../src/engine/simulation/Ticker.js"],"names":[],"mappings":";AAIA;;;;;;;GAOG;AACH;IACI;;;OAGG;IACH,gBAFU,KAAK,CAEK;IAWpB;;;;OAIG;IACH,iBAFU,MAAM,CAAC,MAAM,CAAC,CAEF;IActB;;;OAGG;IACH,uBAFW,MAAM,QA8ChB;IAED,cAOC;IAED,eAQC;IAED,aAOC;;CACJ;kBA1HiB,aAAa;mBADZ,oCAAoC"}
@@ -6,6 +6,9 @@ import Clock from '../Clock.js';
6
6
  * Simulation tick generator
7
7
  * Dispatches "tick" every animation frame or "maxDelay" time, whichever happens to be soonest
8
8
  * This is essentially the timing bus that all the simulation systems subscribe to for their step advancement
9
+ *
10
+ * @author Alex Goldring
11
+ * @copyright Company Named Limited (c) 2025
9
12
  */
10
13
  class Ticker {
11
14
  /**
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=behavior_to_dot.prototype.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"behavior_to_dot.prototype.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/behavior/behavior_to_dot.prototype.js"],"names":[],"mappings":""}
@@ -1,55 +0,0 @@
1
- import { SequenceBehavior } from "./composite/SequenceBehavior.js";
2
- import { SucceedingBehavior } from "./primitive/SucceedingBehavior.js";
3
- import { Behavior } from "./Behavior.js";
4
- import { ParallelBehavior } from "./composite/ParallelBehavior.js";
5
- import { behavior_to_dot } from "./behavior_to_dot.js";
6
- import { DelayBehavior } from "./util/DelayBehavior.js";
7
-
8
-
9
- class CenterCameraOnObject extends Behavior{
10
- object = "whiteboard"
11
- }
12
-
13
- class UserControlsDisable extends Behavior{
14
-
15
- }
16
-
17
- class PlayVideoInPopup extends Behavior{
18
- url = "url/how_to_use_whiteboard.mp4"
19
- }
20
-
21
- class DrawCurvesOnWhiteBoard extends Behavior{
22
- curve = "hello"
23
-
24
- }
25
-
26
- class UserControlsEnable extends Behavior{
27
-
28
- }
29
-
30
- const complex = SequenceBehavior.from([
31
- new SucceedingBehavior(),
32
- SequenceBehavior.from([
33
- new Behavior()
34
- ]),
35
- ParallelBehavior.from([
36
- new SucceedingBehavior(),
37
- DelayBehavior.from(17)
38
- ])
39
- ]);
40
-
41
- const tutorial = SequenceBehavior.from([ // will execute all members one after another
42
-
43
- ParallelBehavior.from([ // will execute all members at the same time, completes when last member completes
44
-
45
- new CenterCameraOnObject( ), // center camera on whiteboard
46
- new UserControlsDisable(),
47
- new PlayVideoInPopup() // plays a video in a popup, behavior finishes when video does
48
-
49
- ]),
50
- new DrawCurvesOnWhiteBoard(),
51
- new UserControlsEnable()
52
-
53
- ])
54
-
55
- console.log(behavior_to_dot(tutorial));