bard-legends-framework 0.8.28 → 0.8.30
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/dist/game-entities/base/attachable.test.js +4 -4
- package/dist/game-entities/base/attachable.test.js.map +1 -1
- package/dist/game-entities/entity/entity.test.js +9 -9
- package/dist/game-entities/entity/entity.test.js.map +1 -1
- package/dist/game-entities/entity/singleton-entity.test.js +4 -4
- package/dist/game-entities/entity/singleton-entity.test.js.map +1 -1
- package/dist/game-entities/scene/scene.d.ts +2 -1
- package/dist/game-entities/scene/scene.js +4 -1
- package/dist/game-entities/scene/scene.js.map +1 -1
- package/dist/game-entities/scene/scene.test.js +2 -2
- package/dist/game-entities/scene/scene.test.js.map +1 -1
- package/dist/game-entities/service/service.test.js +2 -2
- package/dist/game-entities/service/service.test.js.map +1 -1
- package/dist/game-entities/view/view.test.js +17 -17
- package/dist/game-entities/view/view.test.js.map +1 -1
- package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.d.ts +10 -12
- package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.js +9 -9
- package/dist/physics/module//342/232/234/357/270/217gateways/controllers/physics.controller.js.map +1 -1
- package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.d.ts +4 -6
- package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.js +2 -2
- package/dist/physics/module//342/232/234/357/270/217gateways/physics.gateway.js.map +1 -1
- package/dist/physics/module//360/237/223/220services/path-finding/availability-grid.service.js +6 -3
- package/dist/physics/module//360/237/223/220services/path-finding/availability-grid.service.js.map +1 -1
- package/dist/physics/module//360/237/223/220services/path-finding/path-finder.service.d.ts +2 -2
- package/dist/physics/module//360/237/223/220services/path-finding/path-finder.service.js +4 -6
- package/dist/physics/module//360/237/223/220services/path-finding/path-finder.service.js.map +1 -1
- package/dist/pixi/components/display-object-array.d.ts +18 -0
- package/dist/pixi/components/display-object-array.js +52 -0
- package/dist/pixi/components/display-object-array.js.map +1 -0
- package/dist/pixi/helpers/game-assets.js +3 -0
- package/dist/pixi/helpers/game-assets.js.map +1 -1
- package/dist/pixi/index.d.ts +1 -0
- package/dist/pixi/index.js +4 -1
- package/dist/pixi/index.js.map +1 -1
- package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.js +1 -1
- package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.js.map +1 -1
- package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.test.js +1 -1
- package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.test.js.map +1 -1
- package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.d.ts +2 -4
- package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.js +5 -5
- package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.js.map +1 -1
- package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.test.js +18 -18
- package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.test.js.map +1 -1
- package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.d.ts +2 -2
- package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.js +29 -36
- package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.js.map +1 -1
- package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.test.js +23 -23
- package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.test.js.map +1 -1
- package/package.json +2 -2
- package/package.json.bak +2 -2
|
@@ -5,25 +5,25 @@ const vitest_1 = require("vitest");
|
|
|
5
5
|
const path_finder_1 = require("./path-finder");
|
|
6
6
|
(0, vitest_1.describe)('PATH_FINDER', () => {
|
|
7
7
|
(0, vitest_1.test)('basic 1', () => {
|
|
8
|
-
let grid = helpers_lib_1.Grid
|
|
9
|
-
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, helpers_lib_1.Vector.zero,
|
|
8
|
+
let grid = new helpers_lib_1.Grid([[true]]);
|
|
9
|
+
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, helpers_lib_1.Vector.zero, helpers_lib_1.GridNeighborType.ALL);
|
|
10
10
|
(0, vitest_1.expect)(result.directPathAvailable).toBe(true);
|
|
11
11
|
(0, vitest_1.expect)(result.path.map(value => value.toVec2())).toEqual([{ x: 0, y: 0 }]);
|
|
12
12
|
});
|
|
13
13
|
(0, vitest_1.test)('basic 2', () => {
|
|
14
|
-
let grid = helpers_lib_1.Grid
|
|
15
|
-
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, helpers_lib_1.Vector.zero,
|
|
14
|
+
let grid = new helpers_lib_1.Grid([[false]]);
|
|
15
|
+
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, helpers_lib_1.Vector.zero, helpers_lib_1.GridNeighborType.ALL);
|
|
16
16
|
(0, vitest_1.expect)(result.directPathAvailable).toBe(true);
|
|
17
17
|
(0, vitest_1.expect)(result.path.map(value => value.toVec2())).toEqual([{ x: 0, y: 0 }]);
|
|
18
18
|
});
|
|
19
19
|
(0, vitest_1.test)('should give the shortest path without diagonals', () => {
|
|
20
|
-
let grid = helpers_lib_1.Grid
|
|
20
|
+
let grid = new helpers_lib_1.Grid([
|
|
21
21
|
[true, true, true, true],
|
|
22
22
|
[true, false, false, true],
|
|
23
23
|
[true, false, false, true],
|
|
24
24
|
[true, false, false, true]
|
|
25
25
|
]);
|
|
26
|
-
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(3, 3),
|
|
26
|
+
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(3, 3), helpers_lib_1.GridNeighborType.ORTOGONAL);
|
|
27
27
|
(0, vitest_1.expect)(result.directPathAvailable).toBe(true);
|
|
28
28
|
(0, vitest_1.expect)(result.path.map(value => value.toVec2())).toEqual([
|
|
29
29
|
{ x: 0, y: 0 },
|
|
@@ -36,13 +36,13 @@ const path_finder_1 = require("./path-finder");
|
|
|
36
36
|
]);
|
|
37
37
|
});
|
|
38
38
|
(0, vitest_1.test)('should give the shortest path 1', () => {
|
|
39
|
-
let grid = helpers_lib_1.Grid
|
|
39
|
+
let grid = new helpers_lib_1.Grid([
|
|
40
40
|
[true, true, true, true],
|
|
41
41
|
[true, false, false, true],
|
|
42
42
|
[true, false, false, true],
|
|
43
43
|
[true, false, false, true]
|
|
44
44
|
]);
|
|
45
|
-
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(3, 3),
|
|
45
|
+
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(3, 3), helpers_lib_1.GridNeighborType.ALL);
|
|
46
46
|
(0, vitest_1.expect)(result.directPathAvailable).toBe(true);
|
|
47
47
|
(0, vitest_1.expect)(result.path.map(value => value.toVec2())).toEqual([
|
|
48
48
|
{ x: 0, y: 0 },
|
|
@@ -54,13 +54,13 @@ const path_finder_1 = require("./path-finder");
|
|
|
54
54
|
]);
|
|
55
55
|
});
|
|
56
56
|
(0, vitest_1.test)('should give the shortest path 2', () => {
|
|
57
|
-
let grid = helpers_lib_1.Grid
|
|
57
|
+
let grid = new helpers_lib_1.Grid([
|
|
58
58
|
[true, true, true, false],
|
|
59
59
|
[true, false, false, false],
|
|
60
60
|
[true, true, false, true],
|
|
61
61
|
[true, false, true, true]
|
|
62
62
|
]);
|
|
63
|
-
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(3, 3),
|
|
63
|
+
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(3, 3), helpers_lib_1.GridNeighborType.ALL);
|
|
64
64
|
(0, vitest_1.expect)(result.directPathAvailable).toBe(true);
|
|
65
65
|
(0, vitest_1.expect)(result.path.map(value => value.toVec2())).toEqual([
|
|
66
66
|
{ x: 0, y: 0 },
|
|
@@ -71,13 +71,13 @@ const path_finder_1 = require("./path-finder");
|
|
|
71
71
|
]);
|
|
72
72
|
});
|
|
73
73
|
(0, vitest_1.test)('should give the shortest path 3', () => {
|
|
74
|
-
let grid = helpers_lib_1.Grid
|
|
74
|
+
let grid = new helpers_lib_1.Grid([
|
|
75
75
|
[true, false, false, true, false],
|
|
76
76
|
[true, false, true, false, true],
|
|
77
77
|
[true, false, true, false, true],
|
|
78
78
|
[false, true, false, false, true]
|
|
79
79
|
]);
|
|
80
|
-
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(4, 3),
|
|
80
|
+
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(4, 3), helpers_lib_1.GridNeighborType.ALL);
|
|
81
81
|
(0, vitest_1.expect)(result.directPathAvailable).toBe(true);
|
|
82
82
|
(0, vitest_1.expect)(result.path.map(value => value.toVec2())).toEqual([
|
|
83
83
|
{ x: 0, y: 0 },
|
|
@@ -93,13 +93,13 @@ const path_finder_1 = require("./path-finder");
|
|
|
93
93
|
]);
|
|
94
94
|
});
|
|
95
95
|
(0, vitest_1.test)('should give the shortest path backwards 3', () => {
|
|
96
|
-
let grid = helpers_lib_1.Grid
|
|
96
|
+
let grid = new helpers_lib_1.Grid([
|
|
97
97
|
[true, false, false, true, false],
|
|
98
98
|
[true, false, true, false, true],
|
|
99
99
|
[true, false, true, false, true],
|
|
100
100
|
[false, true, false, false, true]
|
|
101
101
|
]);
|
|
102
|
-
let result = path_finder_1.PathFinder.findPath(grid, new helpers_lib_1.Vector(4, 3), helpers_lib_1.Vector.zero,
|
|
102
|
+
let result = path_finder_1.PathFinder.findPath(grid, new helpers_lib_1.Vector(4, 3), helpers_lib_1.Vector.zero, helpers_lib_1.GridNeighborType.ALL);
|
|
103
103
|
(0, vitest_1.expect)(result.directPathAvailable).toBe(true);
|
|
104
104
|
(0, vitest_1.expect)(result.path.map(value => value.toVec2())).toEqual([
|
|
105
105
|
{ x: 4, y: 3 },
|
|
@@ -115,13 +115,13 @@ const path_finder_1 = require("./path-finder");
|
|
|
115
115
|
]);
|
|
116
116
|
});
|
|
117
117
|
(0, vitest_1.test)('should give the shortest path to closest position', () => {
|
|
118
|
-
let grid = helpers_lib_1.Grid
|
|
118
|
+
let grid = new helpers_lib_1.Grid([
|
|
119
119
|
[true, true, true, false],
|
|
120
120
|
[true, false, false, false],
|
|
121
121
|
[true, false, false, false],
|
|
122
122
|
[true, true, false, true]
|
|
123
123
|
]);
|
|
124
|
-
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(3, 3),
|
|
124
|
+
let result = path_finder_1.PathFinder.findPath(grid, helpers_lib_1.Vector.zero, new helpers_lib_1.Vector(3, 3), helpers_lib_1.GridNeighborType.ALL);
|
|
125
125
|
(0, vitest_1.expect)(result.directPathAvailable).toBe(false);
|
|
126
126
|
(0, vitest_1.expect)(result.path.map(value => value.toVec2())).toEqual([
|
|
127
127
|
{ x: 0, y: 0 },
|
|
@@ -135,7 +135,7 @@ const path_finder_1 = require("./path-finder");
|
|
|
135
135
|
let size = 800;
|
|
136
136
|
let centerPos = new Vector(Math.floor(size / 2), Math.floor(size / 2));
|
|
137
137
|
|
|
138
|
-
let bigGrid = Grid
|
|
138
|
+
let bigGrid = new Grid({ size: new Vector(size, size), defaultValue: true });
|
|
139
139
|
for (let x = 0; x < size; x++) {
|
|
140
140
|
for (let y = 0; y < size; y++) {
|
|
141
141
|
let vector = new Vector(x, y);
|
|
@@ -146,7 +146,7 @@ const path_finder_1 = require("./path-finder");
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
let start = new Date();
|
|
149
|
-
PathFinder.findPath(bigGrid, Vector.zero, new Vector(-1, -1),
|
|
149
|
+
PathFinder.findPath(bigGrid, Vector.zero, new Vector(-1, -1), GridNeighborType.ALL);
|
|
150
150
|
let end = new Date();
|
|
151
151
|
|
|
152
152
|
console.info(end.getTime() - start.getTime());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-finder.test.js","sourceRoot":"","sources":["../../../../../src/utilities/libraries/grid-algorithms/path-finder/path-finder.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"path-finder.test.js","sourceRoot":"","sources":["../../../../../src/utilities/libraries/grid-algorithms/path-finder/path-finder.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ export declare class VectorFieldPathFinder {
|
|
|
11
11
|
private getBestDirectionToTarget;
|
|
12
12
|
private getTheResultFromBestDirections;
|
|
13
13
|
private isNextPositionAvailable;
|
|
14
|
-
private
|
|
15
|
-
private getNeighborsWithDistances;
|
|
14
|
+
private getNeighborValues;
|
|
16
15
|
private getAreaPositions;
|
|
16
|
+
private vectorToNeighborDirection;
|
|
17
17
|
private getHighestWeight;
|
|
18
18
|
}
|
|
@@ -7,12 +7,12 @@ class VectorFieldPathFinder {
|
|
|
7
7
|
constructor(targetArea, availabilityGrid) {
|
|
8
8
|
this.targetArea = targetArea;
|
|
9
9
|
this.availabilityGrid = availabilityGrid;
|
|
10
|
-
this.highestWeight = this.getHighestWeight(availabilityGrid.size);
|
|
11
|
-
this.weightGrid = helpers_lib_1.Grid
|
|
12
|
-
this.directionsToTargetCache = helpers_lib_1.Grid
|
|
10
|
+
this.highestWeight = this.getHighestWeight(this.availabilityGrid.size);
|
|
11
|
+
this.weightGrid = new helpers_lib_1.Grid({ size: this.availabilityGrid.size, defaultValue: this.highestWeight });
|
|
12
|
+
this.directionsToTargetCache = new helpers_lib_1.Grid({ size: this.availabilityGrid.size, defaultValue: undefined });
|
|
13
13
|
let closedPositions = new vector_set_1.VectorSet();
|
|
14
14
|
let queue = new helpers_lib_1.Queue();
|
|
15
|
-
let targetPositions = this.getAreaPositions(availabilityGrid.
|
|
15
|
+
let targetPositions = this.getAreaPositions(this.availabilityGrid.cropAreaOutsideOfTheGrid(targetArea));
|
|
16
16
|
targetPositions.forEach(position => {
|
|
17
17
|
this.weightGrid.set(position, 0);
|
|
18
18
|
queue.add(position);
|
|
@@ -21,13 +21,12 @@ class VectorFieldPathFinder {
|
|
|
21
21
|
let currentPoint = queue.pop();
|
|
22
22
|
if (!closedPositions.has(currentPoint)) {
|
|
23
23
|
closedPositions.add(currentPoint);
|
|
24
|
-
let currentWeight = this.weightGrid.
|
|
25
|
-
|
|
26
|
-
neighbors.forEach(neighbor => {
|
|
24
|
+
let currentWeight = this.weightGrid.getOrFail(currentPoint);
|
|
25
|
+
this.getNeighborValues(currentPoint, this.availabilityGrid).forEach(neighbor => {
|
|
27
26
|
if (!closedPositions.has(neighbor.position)) {
|
|
28
|
-
let neighborsCurrentWeight = this.weightGrid.
|
|
27
|
+
let neighborsCurrentWeight = this.weightGrid.getOrFail(neighbor.position);
|
|
29
28
|
let newWeight = currentWeight + neighbor.distance;
|
|
30
|
-
if (availabilityGrid.
|
|
29
|
+
if (this.availabilityGrid.getOrFail(neighbor.position) && newWeight < neighborsCurrentWeight) {
|
|
31
30
|
this.weightGrid.set(neighbor.position, newWeight);
|
|
32
31
|
queue.add(neighbor.position);
|
|
33
32
|
}
|
|
@@ -43,27 +42,22 @@ class VectorFieldPathFinder {
|
|
|
43
42
|
return this.directionsToTargetCache.get(startingPosition);
|
|
44
43
|
}
|
|
45
44
|
else {
|
|
46
|
-
let
|
|
47
|
-
.map(neighborDirection => {
|
|
48
|
-
let neighborPosition = startingPosition.add(neighborDirection.direction);
|
|
49
|
-
return { position: neighborPosition, direction: neighborDirection.direction, distance: neighborDirection.distance };
|
|
50
|
-
})
|
|
51
|
-
.filter(neighbor => this.weightGrid.isPointWithinBounds(neighbor.position));
|
|
45
|
+
let neighborValues = this.getNeighborValues(startingPosition, this.availabilityGrid);
|
|
52
46
|
let result;
|
|
53
|
-
if (this.weightGrid.
|
|
54
|
-
let atLeastOneNeighborIsAvailable =
|
|
47
|
+
if (this.weightGrid.getOrFail(startingPosition) >= this.highestWeight) {
|
|
48
|
+
let atLeastOneNeighborIsAvailable = neighborValues.some(neighbor => this.availabilityGrid.get(neighbor.position));
|
|
55
49
|
if (atLeastOneNeighborIsAvailable) {
|
|
56
|
-
let atLeastOneNeighborIsUnavailable =
|
|
50
|
+
let atLeastOneNeighborIsUnavailable = neighborValues.some(neighbor => !this.availabilityGrid.get(neighbor.position));
|
|
57
51
|
if (atLeastOneNeighborIsUnavailable) {
|
|
58
|
-
result = this.getDirectionAwayFromObstacles(
|
|
52
|
+
result = this.getDirectionAwayFromObstacles(neighborValues);
|
|
59
53
|
}
|
|
60
54
|
else {
|
|
61
|
-
result = this.getBestDirectionToTarget(startingPosition,
|
|
55
|
+
result = this.getBestDirectionToTarget(startingPosition, neighborValues);
|
|
62
56
|
}
|
|
63
57
|
}
|
|
64
58
|
}
|
|
65
59
|
else {
|
|
66
|
-
result = this.getBestDirectionToTarget(startingPosition,
|
|
60
|
+
result = this.getBestDirectionToTarget(startingPosition, neighborValues);
|
|
67
61
|
}
|
|
68
62
|
this.directionsToTargetCache.set(startingPosition, result);
|
|
69
63
|
return result;
|
|
@@ -78,9 +72,9 @@ class VectorFieldPathFinder {
|
|
|
78
72
|
}
|
|
79
73
|
getBestDirectionToTarget(startingPosition, neighborDirections) {
|
|
80
74
|
let bestDirections = neighborDirections
|
|
81
|
-
.filter(neighbor => this.weightGrid.
|
|
75
|
+
.filter(neighbor => this.weightGrid.getOrFail(neighbor.position) < this.highestWeight)
|
|
82
76
|
.reduce((acc, neighbor) => {
|
|
83
|
-
let newWeight = this.weightGrid.
|
|
77
|
+
let newWeight = this.weightGrid.getOrFail(neighbor.position) + neighbor.distance;
|
|
84
78
|
if (newWeight < acc.bestWeight) {
|
|
85
79
|
acc.bestDirections = [neighbor.direction];
|
|
86
80
|
acc.bestWeight = newWeight;
|
|
@@ -104,20 +98,15 @@ class VectorFieldPathFinder {
|
|
|
104
98
|
}
|
|
105
99
|
}
|
|
106
100
|
isNextPositionAvailable(position, direction) {
|
|
107
|
-
let nextPosition = position.add(
|
|
108
|
-
return this.availabilityGrid.isPointWithinBounds(nextPosition) && this.availabilityGrid.
|
|
101
|
+
let nextPosition = position.add(this.vectorToNeighborDirection(direction));
|
|
102
|
+
return this.availabilityGrid.isPointWithinBounds(nextPosition) && this.availabilityGrid.getOrFail(nextPosition);
|
|
109
103
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
getNeighborsWithDistances(position, grid) {
|
|
117
|
-
let neighbors = [];
|
|
118
|
-
grid.getNeighborPositions(position).forEach(neighbor => neighbors.push({ position: neighbor, distance: 10 }));
|
|
119
|
-
grid.getDiagonalNeighborPositions(position).forEach(neighbor => neighbors.push({ position: neighbor, distance: 14 }));
|
|
120
|
-
return neighbors;
|
|
104
|
+
getNeighborValues(position, grid) {
|
|
105
|
+
return this.weightGrid.getNeighborDirections(position, helpers_lib_1.GridNeighborType.ALL).map(neighborDirection => ({
|
|
106
|
+
position: position.add(neighborDirection),
|
|
107
|
+
direction: neighborDirection,
|
|
108
|
+
distance: neighborDirection.x !== 0 && neighborDirection.y !== 0 ? 14 : 10
|
|
109
|
+
}));
|
|
121
110
|
}
|
|
122
111
|
getAreaPositions(area) {
|
|
123
112
|
let positions = [];
|
|
@@ -128,6 +117,10 @@ class VectorFieldPathFinder {
|
|
|
128
117
|
}
|
|
129
118
|
return positions;
|
|
130
119
|
}
|
|
120
|
+
vectorToNeighborDirection(vector) {
|
|
121
|
+
let roundedVector = vector.normalize().round();
|
|
122
|
+
return new helpers_lib_1.Vector(roundedVector.x, roundedVector.y);
|
|
123
|
+
}
|
|
131
124
|
getHighestWeight(size) {
|
|
132
125
|
return (size.x + size.y) * 20;
|
|
133
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-field-path-finder.js","sourceRoot":"","sources":["../../../../../src/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"vector-field-path-finder.js","sourceRoot":"","sources":["../../../../../src/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,13 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
7
7
|
(0, vitest_1.describe)('weight grid', () => {
|
|
8
8
|
(0, vitest_1.test)('basic 1', () => {
|
|
9
9
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
10
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
10
|
+
let availabilityGrid = new helpers_lib_1.Grid({ size: new helpers_lib_1.Vector(1, 1), defaultValue: true });
|
|
11
11
|
let pathFinder = new vector_field_path_finder_1.VectorFieldPathFinder(targetArea, availabilityGrid);
|
|
12
12
|
(0, vitest_1.expect)(pathFinder['weightGrid'].get(new helpers_lib_1.Vector(0, 0))).toBe(0);
|
|
13
13
|
});
|
|
14
14
|
(0, vitest_1.test)('basic 2', () => {
|
|
15
15
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 1, y: 1 } });
|
|
16
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
16
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
17
17
|
[true, true],
|
|
18
18
|
[true, true]
|
|
19
19
|
]);
|
|
@@ -25,7 +25,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
25
25
|
});
|
|
26
26
|
(0, vitest_1.test)('sample 1', () => {
|
|
27
27
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
28
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
28
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
29
29
|
[true, true],
|
|
30
30
|
[true, true]
|
|
31
31
|
]);
|
|
@@ -37,7 +37,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
37
37
|
});
|
|
38
38
|
(0, vitest_1.test)('sample 2', () => {
|
|
39
39
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 1, y: 1 } });
|
|
40
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
40
|
+
let availabilityGrid = new helpers_lib_1.Grid({ size: new helpers_lib_1.Vector(3, 3), defaultValue: true });
|
|
41
41
|
let pathFinder = new vector_field_path_finder_1.VectorFieldPathFinder(targetArea, availabilityGrid);
|
|
42
42
|
(0, vitest_1.expect)(pathFinder['weightGrid']['_grid']).toEqual([
|
|
43
43
|
[0, 0, 10],
|
|
@@ -47,7 +47,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
47
47
|
});
|
|
48
48
|
(0, vitest_1.test)('sample 3', () => {
|
|
49
49
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 1, y: 1 }, bottomRight: { x: 2, y: 2 } });
|
|
50
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
50
|
+
let availabilityGrid = new helpers_lib_1.Grid({ size: new helpers_lib_1.Vector(3, 3), defaultValue: true });
|
|
51
51
|
let pathFinder = new vector_field_path_finder_1.VectorFieldPathFinder(targetArea, availabilityGrid);
|
|
52
52
|
(0, vitest_1.expect)(pathFinder['weightGrid']['_grid']).toEqual([
|
|
53
53
|
[14, 10, 10],
|
|
@@ -57,7 +57,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
57
57
|
});
|
|
58
58
|
(0, vitest_1.test)('complex 1', () => {
|
|
59
59
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
60
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
60
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
61
61
|
[true, false, true],
|
|
62
62
|
[true, true, true],
|
|
63
63
|
[false, false, true],
|
|
@@ -74,7 +74,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
74
74
|
});
|
|
75
75
|
(0, vitest_1.test)('complex 2', () => {
|
|
76
76
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 1, y: 1 } });
|
|
77
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
77
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
78
78
|
[true, true, false, true],
|
|
79
79
|
[true, true, false, true],
|
|
80
80
|
[false, false, true, true]
|
|
@@ -89,7 +89,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
89
89
|
});
|
|
90
90
|
(0, vitest_1.test)('complex 3', () => {
|
|
91
91
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 2, y: 2 }, bottomRight: { x: 3, y: 3 } });
|
|
92
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
92
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
93
93
|
[true, true, false, true],
|
|
94
94
|
[true, true, false, true],
|
|
95
95
|
[false, false, true, true],
|
|
@@ -106,7 +106,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
106
106
|
});
|
|
107
107
|
(0, vitest_1.test)('unreachable area 1', () => {
|
|
108
108
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
109
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
109
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
110
110
|
[true, false, true, false, true],
|
|
111
111
|
[true, false, true, false, true],
|
|
112
112
|
[true, false, false, false, true],
|
|
@@ -127,7 +127,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
127
127
|
(0, vitest_1.describe)('getDirectionToTarget', () => {
|
|
128
128
|
(0, vitest_1.test)('sample 1', () => {
|
|
129
129
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
130
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
130
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
131
131
|
[true, true],
|
|
132
132
|
[true, true]
|
|
133
133
|
]);
|
|
@@ -136,7 +136,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
136
136
|
});
|
|
137
137
|
(0, vitest_1.test)('sample 2', () => {
|
|
138
138
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
139
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
139
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
140
140
|
[true, true, true],
|
|
141
141
|
[false, true, true]
|
|
142
142
|
]);
|
|
@@ -145,7 +145,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
145
145
|
});
|
|
146
146
|
(0, vitest_1.test)('sample 3', () => {
|
|
147
147
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
148
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
148
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
149
149
|
[true, false, true],
|
|
150
150
|
[true, false, true],
|
|
151
151
|
[true, true, true]
|
|
@@ -155,7 +155,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
155
155
|
});
|
|
156
156
|
(0, vitest_1.test)('sample 4', () => {
|
|
157
157
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
158
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
158
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
159
159
|
[true, false, false],
|
|
160
160
|
[true, false, false]
|
|
161
161
|
]);
|
|
@@ -166,18 +166,18 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
166
166
|
(0, vitest_1.describe)('edge cases', () => {
|
|
167
167
|
(0, vitest_1.test)('should create an instance', () => {
|
|
168
168
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
169
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
169
|
+
let availabilityGrid = new helpers_lib_1.Grid({ size: new helpers_lib_1.Vector(1, 1), defaultValue: true });
|
|
170
170
|
(0, vitest_1.expect)(new vector_field_path_finder_1.VectorFieldPathFinder(targetArea, availabilityGrid)).toBeTruthy();
|
|
171
171
|
});
|
|
172
172
|
(0, vitest_1.test)('should activate unavailable target cells of the target area', () => {
|
|
173
173
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
174
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
174
|
+
let availabilityGrid = new helpers_lib_1.Grid({ size: new helpers_lib_1.Vector(1, 1), defaultValue: false });
|
|
175
175
|
let pathFinder = new vector_field_path_finder_1.VectorFieldPathFinder(targetArea, availabilityGrid);
|
|
176
176
|
(0, vitest_1.expect)(pathFinder['weightGrid'].get(new helpers_lib_1.Vector(0, 0))).toBe(0);
|
|
177
177
|
});
|
|
178
178
|
(0, vitest_1.test)('should select closest grid cells if the target is outside of the grid', () => {
|
|
179
179
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 3, y: -1 }, bottomRight: { x: 3, y: 1 } });
|
|
180
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
180
|
+
let availabilityGrid = new helpers_lib_1.Grid({ size: new helpers_lib_1.Vector(3, 3), defaultValue: true });
|
|
181
181
|
let pathFinder = new vector_field_path_finder_1.VectorFieldPathFinder(targetArea, availabilityGrid);
|
|
182
182
|
(0, vitest_1.expect)(pathFinder['weightGrid']['_grid']).toEqual([
|
|
183
183
|
[20, 10, 0],
|
|
@@ -187,7 +187,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
187
187
|
});
|
|
188
188
|
(0, vitest_1.test)('should return undefined if starting position and its neighbors are unreachable', () => {
|
|
189
189
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
190
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
190
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
191
191
|
[true, false, false],
|
|
192
192
|
[true, false, false]
|
|
193
193
|
]);
|
|
@@ -196,7 +196,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
196
196
|
});
|
|
197
197
|
(0, vitest_1.test)('should find the direction if starting position is unreachable but there is a reachable neighbor', () => {
|
|
198
198
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
199
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
199
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
200
200
|
[true, true, false],
|
|
201
201
|
[true, false, false]
|
|
202
202
|
]);
|
|
@@ -205,19 +205,19 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
205
205
|
});
|
|
206
206
|
(0, vitest_1.test)('should return undefined if starting point is inside target area', () => {
|
|
207
207
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 1, y: 1 } });
|
|
208
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
208
|
+
let availabilityGrid = new helpers_lib_1.Grid({ size: new helpers_lib_1.Vector(2, 2), defaultValue: true });
|
|
209
209
|
let pathFinder = new vector_field_path_finder_1.VectorFieldPathFinder(targetArea, availabilityGrid);
|
|
210
210
|
(0, vitest_1.expect)(pathFinder.getDirectionToTarget(new helpers_lib_1.Vector(0, 0))).toBeUndefined();
|
|
211
211
|
});
|
|
212
212
|
(0, vitest_1.test)('should return closest cell result if starting point is outside of the grid', () => {
|
|
213
213
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
214
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
214
|
+
let availabilityGrid = new helpers_lib_1.Grid({ size: new helpers_lib_1.Vector(2, 1), defaultValue: true });
|
|
215
215
|
let pathFinder = new vector_field_path_finder_1.VectorFieldPathFinder(targetArea, availabilityGrid);
|
|
216
216
|
(0, vitest_1.expect)(pathFinder.getDirectionToTarget(new helpers_lib_1.Vector(2, 0))?.value).toEqual(helpers_lib_1.Radian.get270.value);
|
|
217
217
|
});
|
|
218
218
|
(0, vitest_1.test)('if average direction is pointing blocked path, it should pick random available direction', () => {
|
|
219
219
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
220
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
220
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
221
221
|
[true, true, true],
|
|
222
222
|
[true, false, true],
|
|
223
223
|
[true, true, true]
|
|
@@ -228,7 +228,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
228
228
|
});
|
|
229
229
|
(0, vitest_1.test)('finding path from unavailable space should point the direction away from the obstacle', () => {
|
|
230
230
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
231
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
231
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
232
232
|
[true, true, true, true],
|
|
233
233
|
[true, false, false, true],
|
|
234
234
|
[true, false, false, true],
|
|
@@ -240,7 +240,7 @@ const vector_field_path_finder_1 = require("./vector-field-path-finder");
|
|
|
240
240
|
});
|
|
241
241
|
(0, vitest_1.test)('finding path from unavailable space should point the direction to the best neighbor if all neighbors are available', () => {
|
|
242
242
|
let targetArea = helpers_lib_1.Rectangle.fromRect({ topLeft: { x: 0, y: 0 }, bottomRight: { x: 0, y: 0 } });
|
|
243
|
-
let availabilityGrid = helpers_lib_1.Grid
|
|
243
|
+
let availabilityGrid = new helpers_lib_1.Grid([
|
|
244
244
|
[true, false, true, false],
|
|
245
245
|
[true, false, true, true],
|
|
246
246
|
[true, true, true, true]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-field-path-finder.test.js","sourceRoot":"","sources":["../../../../../src/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vector-field-path-finder.test.js","sourceRoot":"","sources":["../../../../../src/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.test.ts"],"names":[],"mappings":"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"}
|