@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.
- package/package.json +1 -1
- package/src/core/binary/BinaryBuffer.d.ts +11 -1
- package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
- package/src/core/binary/BinaryBuffer.js +18 -8
- package/src/core/collection/array/array_push_if_unique.d.ts +4 -3
- package/src/core/collection/array/array_push_if_unique.d.ts.map +1 -1
- package/src/core/collection/array/array_push_if_unique.js +4 -3
- package/src/core/geom/3d/quaternion/quat_decode_from_uint32.d.ts +4 -0
- package/src/core/geom/3d/quaternion/quat_decode_from_uint32.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat_decode_from_uint32.js +4 -0
- package/src/core/geom/3d/quaternion/quat_encode_to_uint32.d.ts +4 -0
- package/src/core/geom/3d/quaternion/quat_encode_to_uint32.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat_encode_to_uint32.js +4 -0
- package/src/core/geom/Vector3.d.ts +2 -1
- package/src/core/geom/Vector3.d.ts.map +1 -1
- package/src/core/geom/Vector3.js +2 -1
- package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +1 -0
- package/src/engine/ecs/EntityManager.d.ts +3 -0
- package/src/engine/ecs/EntityManager.d.ts.map +1 -1
- package/src/engine/ecs/EntityManager.js +3 -0
- package/src/engine/ecs/EntityObserver.d.ts.map +1 -1
- package/src/engine/ecs/EntityObserver.js +3 -0
- package/src/engine/ecs/EntityReference.d.ts +10 -8
- package/src/engine/ecs/EntityReference.d.ts.map +1 -1
- package/src/engine/ecs/EntityReference.js +10 -8
- package/src/engine/ecs/System.d.ts.map +1 -1
- package/src/engine/ecs/System.js +3 -0
- package/src/engine/ecs/parent/ParentEntity.d.ts.map +1 -1
- package/src/engine/ecs/parent/ParentEntity.js +4 -1
- package/src/engine/ecs/storage/BinaryBufferDeSerializer.d.ts +17 -1
- package/src/engine/ecs/storage/BinaryBufferDeSerializer.d.ts.map +1 -1
- package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +20 -1
- package/src/engine/ecs/storage/BinaryBufferSerializer.d.ts +17 -0
- package/src/engine/ecs/storage/BinaryBufferSerializer.d.ts.map +1 -1
- package/src/engine/ecs/storage/BinaryBufferSerializer.js +31 -7
- package/src/engine/ecs/transform/Transform.d.ts +0 -1
- package/src/engine/ecs/transform/Transform.d.ts.map +1 -1
- package/src/engine/ecs/transform/Transform.js +0 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +2 -0
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.js +2 -0
- package/src/engine/input/devices/InputDeviceSwitch.d.ts.map +1 -1
- package/src/engine/input/devices/InputDeviceSwitch.js +3 -0
- package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
- package/src/engine/input/devices/KeyboardDevice.js +5 -1
- package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
- package/src/engine/input/devices/PointerDevice.js +3 -0
- package/src/engine/intelligence/behavior/Behavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/Behavior.js +3 -1
- package/src/engine/intelligence/behavior/SelectorBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/SelectorBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/SelectorBehavior.js +2 -0
- package/src/engine/intelligence/behavior/behavior_to_dot.d.ts +4 -0
- package/src/engine/intelligence/behavior/behavior_to_dot.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/behavior_to_dot.js +4 -0
- package/src/engine/intelligence/behavior/composite/CompositeBehavior.d.ts +3 -0
- package/src/engine/intelligence/behavior/composite/CompositeBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/composite/CompositeBehavior.js +3 -0
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts +3 -0
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/composite/ParallelBehavior.js +3 -0
- package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts +3 -0
- package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +3 -0
- package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts +5 -0
- package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.js +6 -1
- package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.d.ts +5 -0
- package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.js +6 -1
- package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.d.ts +3 -0
- package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.js +3 -0
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts +3 -0
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatBehavior.js +3 -0
- package/src/engine/intelligence/behavior/decorator/RepeatUntilFailureBehavior.d.ts +3 -0
- package/src/engine/intelligence/behavior/decorator/RepeatUntilFailureBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatUntilFailureBehavior.js +3 -0
- package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts +5 -0
- package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.js +6 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts +3 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +3 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts +3 -0
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.js +3 -0
- package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts +3 -0
- package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/DieBehavior.js +3 -0
- package/src/engine/intelligence/behavior/ecs/EntityBehavior.d.ts +5 -0
- package/src/engine/intelligence/behavior/ecs/EntityBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/EntityBehavior.js +8 -3
- package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/KillBehavior.js +2 -0
- package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/SendEventBehavior.js +2 -0
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js +2 -0
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +2 -0
- package/src/engine/intelligence/behavior/primitive/FailingBehavior.d.ts +5 -0
- package/src/engine/intelligence/behavior/primitive/FailingBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/FailingBehavior.js +5 -0
- package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts +5 -0
- package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/PromiseBehavior.js +5 -0
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.js +2 -0
- package/src/engine/intelligence/behavior/selector/WeightedElement.d.ts +2 -0
- package/src/engine/intelligence/behavior/selector/WeightedElement.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedElement.js +2 -0
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.js +2 -0
- package/src/engine/intelligence/behavior/util/BranchBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/util/BranchBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/BranchBehavior.js +2 -0
- package/src/engine/intelligence/behavior/util/DelayBehavior.d.ts +3 -1
- package/src/engine/intelligence/behavior/util/DelayBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/DelayBehavior.js +3 -1
- package/src/engine/intelligence/behavior/util/LogMessageBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/util/LogMessageBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/LogMessageBehavior.js +2 -0
- package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts +2 -0
- package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/RandomDelayBehavior.js +2 -0
- package/src/engine/intelligence/blackboard/Blackboard.d.ts.map +1 -1
- package/src/engine/intelligence/blackboard/Blackboard.js +5 -1
- package/src/engine/intelligence/mcts/MonteCarlo.d.ts +2 -0
- package/src/engine/intelligence/mcts/MonteCarlo.d.ts.map +1 -1
- package/src/engine/intelligence/mcts/MonteCarlo.js +2 -0
- package/src/engine/intelligence/mcts/MoveEdge.d.ts +2 -0
- package/src/engine/intelligence/mcts/MoveEdge.d.ts.map +1 -1
- package/src/engine/intelligence/mcts/MoveEdge.js +2 -0
- package/src/engine/intelligence/mcts/StateNode.d.ts +2 -0
- package/src/engine/intelligence/mcts/StateNode.d.ts.map +1 -1
- package/src/engine/intelligence/mcts/StateNode.js +2 -0
- package/src/engine/intelligence/optimization/RandomOptimizer.d.ts +8 -8
- package/src/engine/intelligence/optimization/RandomOptimizer.d.ts.map +1 -1
- package/src/engine/intelligence/optimization/RandomOptimizer.js +37 -40
- package/src/engine/intelligence/resource/ActionSequence.d.ts +3 -1
- package/src/engine/intelligence/resource/ActionSequence.d.ts.map +1 -1
- package/src/engine/intelligence/resource/ActionSequence.js +10 -13
- package/src/engine/intelligence/resource/Resource.d.ts +2 -0
- package/src/engine/intelligence/resource/Resource.d.ts.map +1 -1
- package/src/engine/intelligence/resource/Resource.js +2 -0
- package/src/engine/intelligence/resource/ResourceAllocation.d.ts +5 -0
- package/src/engine/intelligence/resource/ResourceAllocation.d.ts.map +1 -1
- package/src/engine/intelligence/resource/ResourceAllocation.js +5 -0
- package/src/engine/intelligence/resource/ResourceAllocationBid.d.ts +4 -1
- package/src/engine/intelligence/resource/ResourceAllocationBid.d.ts.map +1 -1
- package/src/engine/intelligence/resource/ResourceAllocationBid.js +4 -1
- package/src/engine/intelligence/resource/ResourceAllocationSolver.d.ts +5 -0
- package/src/engine/intelligence/resource/ResourceAllocationSolver.d.ts.map +1 -1
- package/src/engine/intelligence/resource/ResourceAllocationSolver.js +26 -21
- package/src/engine/intelligence/resource/StrategicResourceAllocator.d.ts +16 -3
- package/src/engine/intelligence/resource/StrategicResourceAllocator.d.ts.map +1 -1
- package/src/engine/intelligence/resource/StrategicResourceAllocator.js +32 -14
- package/src/engine/intelligence/resource/TacticalModule.d.ts +2 -0
- package/src/engine/intelligence/resource/TacticalModule.d.ts.map +1 -1
- package/src/engine/intelligence/resource/TacticalModule.js +2 -0
- package/src/engine/simulation/Ticker.d.ts +3 -0
- package/src/engine/simulation/Ticker.d.ts.map +1 -1
- package/src/engine/simulation/Ticker.js +3 -0
- package/src/engine/intelligence/behavior/behavior_to_dot.prototype.d.ts +0 -2
- package/src/engine/intelligence/behavior/behavior_to_dot.prototype.d.ts.map +0 -1
- 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
|
-
*
|
|
14
|
+
*
|
|
15
|
+
* @type {S|null}
|
|
14
16
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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:
|
|
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
|
|
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
|
-
*
|
|
9
|
+
*
|
|
10
|
+
* @type {A[]}
|
|
8
11
|
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* @type {A[]}
|
|
13
|
-
*/
|
|
14
|
-
this.actions = [];
|
|
12
|
+
actions = [];
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/Resource.js"],"names":[],"mappings":"AAEA
|
|
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"}
|
|
@@ -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,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @template A
|
|
3
|
-
* A bid represents
|
|
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
|
|
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
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceAllocationSolver.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/ResourceAllocationSolver.js"],"names":[],"mappings":"AAgBA;
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
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):
|
|
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<
|
|
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":"
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TacticalModule.d.ts","sourceRoot":"","sources":["../../../../../src/engine/intelligence/resource/TacticalModule.js"],"names":[],"mappings":"AAAA
|
|
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"}
|
|
@@ -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
|
|
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 +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));
|