Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 44 additions & 20 deletions extensions/community/NavMeshPathfinding.json
Original file line number Diff line number Diff line change
Expand Up @@ -1399,8 +1399,12 @@
" // 0 = neighbor in same region.",
" // 1 = neighbor not in same region (neighbor may be the obstacle",
" // region or a real region).",
" for (var y = 1; y < grid.dimY() - 1; y++) {",
" for (var x = 1; x < grid.dimX() - 1; x++) {",
" var dimX = grid.dimX();",
" var dimY = grid.dimY();",
" var maxX = dimX - 1;",
" var maxY = dimY - 1;",
" for (var y = 1; y < maxY; y++) {",
" for (var x = 1; x < maxX; x++) {",
" var cell = grid.get(x, y);",
" // Note: This algorithm first sets the flag bits such that",
" // 1 = \"neighbor is in the same region\". At the end it inverts",
Expand Down Expand Up @@ -1439,8 +1443,12 @@
" //",
" // The process of building a contour will clear the flags on all cells",
" // that make up the contour to ensure they are only processed once.",
" for (var y = 1; y < grid.dimY() - 1; y++) {",
" for (var x = 1; x < grid.dimX() - 1; x++) {",
" dimX = grid.dimX();",
" dimY = grid.dimY();",
" maxX = dimX - 1;",
" maxY = dimY - 1;",
" for (var y = 1; y < maxY; y++) {",
" for (var x = 1; x < maxX; x++) {",
" var cell = grid.get(x, y);",
" if (cell.regionID === RasterizationCell.OBSTACLE_REGION_ID ||",
" cell.contourFlags === 0) {",
Expand Down Expand Up @@ -2940,8 +2948,12 @@
" // and are not already assigned to a region. Add these cells to",
" // the flooded cell list for processing.",
" floodedCells.length = 0;",
" for (var y = 1; y < grid.dimY() - 1; y++) {",
" for (var x = 1; x < grid.dimX() - 1; x++) {",
" var dimX = grid.dimX();",
" var dimY = grid.dimY();",
" var maxX = dimX - 1;",
" var maxY = dimY - 1;",
" for (var y = 1; y < maxY; y++) {",
" for (var x = 1; x < maxX; x++) {",
" var cell = grid.get(x, y);",
" if (cell.regionID === RasterizationCell.NULL_REGION_ID &&",
" cell.distanceToObstacle >= distance) {",
Expand Down Expand Up @@ -2988,8 +3000,12 @@
" // Find all cells that haven't been assigned regions by the main loop",
" // (up to the minimum distance).",
" floodedCells.length = 0;",
" for (var y = 1; y < grid.dimY() - 1; y++) {",
" for (var x = 1; x < grid.dimX() - 1; x++) {",
" dimX = grid.dimX();",
" dimY = grid.dimY();",
" maxX = dimX - 1;",
" maxY = dimY - 1;",
" for (var y = 1; y < maxY; y++) {",
" for (var x = 1; x < maxX; x++) {",
" var cell = grid.get(x, y);",
" if (cell.distanceToObstacle > distanceMin &&",
" cell.regionID === RasterizationCell.NULL_REGION_ID) {",
Expand Down Expand Up @@ -3178,17 +3194,21 @@
" * @param grid A field with cells obstacle information already generated.",
" */",
" RegionGenerator.prototype.generateDistanceField = function (grid) {",
" var dimX = grid.dimX();",
" var dimY = grid.dimY();",
" var maxX = dimX - 1;",
" var maxY = dimY - 1;",
" // close borders",
" for (var x = 0; x < grid.dimX(); x++) {",
" for (var x = 0; x < dimX; x++) {",
" var leftCell = grid.get(x, 0);",
" leftCell.distanceToObstacle = 0;",
" var rightCell = grid.get(x, grid.dimY() - 1);",
" var rightCell = grid.get(x, maxY);",
" rightCell.distanceToObstacle = 0;",
" }",
" for (var y = 1; y < grid.dimY() - 1; y++) {",
" for (var y = 1; y < maxY; y++) {",
" var topCell = grid.get(0, y);",
" topCell.distanceToObstacle = 0;",
" var bottomCell = grid.get(grid.dimX() - 1, y);",
" var bottomCell = grid.get(maxX, y);",
" bottomCell.distanceToObstacle = 0;",
" }",
" // The next two phases basically check the neighbors of a cell and",
Expand All @@ -3198,8 +3218,8 @@
" // 1st pass",
" // During this pass, the following neighbors are checked:",
" // (-1, 0) (-1, -1) (0, -1) (1, -1)",
" for (var y = 1; y < grid.dimY() - 1; y++) {",
" for (var x = 1; x < grid.dimX() - 1; x++) {",
" for (var y = 1; y < maxY; y++) {",
" for (var x = 1; x < maxX; x++) {",
" var cell = grid.get(x, y);",
" for (var _i = 0, _a = RegionGenerator.firstPassDeltas; _i < _a.length; _i++) {",
" var delta = _a[_i];",
Expand All @@ -3217,8 +3237,8 @@
" //",
" // Besides checking different neighbors, this pass performs its",
" // grid search in reverse order.",
" for (var y = grid.dimY() - 2; y >= 1; y--) {",
" for (var x = grid.dimX() - 2; x >= 1; x--) {",
" for (var y = maxY - 1; y >= 1; y--) {",
" for (var x = maxX - 1; x >= 1; x--) {",
" var cell = grid.get(x, y);",
" for (var _b = 0, _c = RegionGenerator.secondPassDeltas; _b < _c.length; _b++) {",
" var delta = _c[_b];",
Expand Down Expand Up @@ -3315,9 +3335,13 @@
" null,",
" ];",
" var nextRegionID = grid.regionCount;",
" var dimX = grid.dimX();",
" var dimY = grid.dimY();",
" var maxX = dimX - 1;",
" var maxY = dimY - 1;",
" // Iterate over the cells, trying to find obstacle region borders.",
" for (var y = 1; y < grid.dimY() - 1; y++) {",
" for (var x = 1; x < grid.dimX() - 1; x++) {",
" for (var y = 1; y < maxY; y++) {",
" for (var x = 1; x < maxX; x++) {",
" var cell = grid.get(x, y);",
" if (cell.contourFlags !== 0)",
" // Cell was processed in a previous iteration.",
Expand Down Expand Up @@ -3355,8 +3379,8 @@
" }",
" grid.regionCount = nextRegionID;",
" // Clear all flags.",
" for (var y = 1; y < grid.dimY() - 1; y++) {",
" for (var x = 1; x < grid.dimX() - 1; x++) {",
" for (var y = 1; y < maxY; y++) {",
" for (var x = 1; x < maxX; x++) {",
" var cell = grid.get(x, y);",
" cell.contourFlags = 0;",
" }",
Expand Down
Loading