diff --git a/src/core/DiagonalMovement.js b/src/core/DiagonalMovement.js index 3cb3734c..5e9878cd 100644 --- a/src/core/DiagonalMovement.js +++ b/src/core/DiagonalMovement.js @@ -2,7 +2,8 @@ var DiagonalMovement = { Always: 1, Never: 2, IfAtMostOneObstacle: 3, - OnlyWhenNoObstacles: 4 + OnlyWhenNoObstacles: 4, + OnlyWhenObstacles: 5, }; module.exports = DiagonalMovement; \ No newline at end of file diff --git a/src/core/Grid.js b/src/core/Grid.js index 31ae6ee3..5d1d08f1 100644 --- a/src/core/Grid.js +++ b/src/core/Grid.js @@ -192,6 +192,11 @@ Grid.prototype.getNeighbors = function(node, diagonalMovement) { d1 = true; d2 = true; d3 = true; + } else if (diagonalMovement === DiagonalMovement.OnlyWhenObstacles) { + d0 = !(s3 || s0); + d1 = !(s0 || s1); + d2 = !(s1 || s2); + d3 = !(s2 || s3); } else { throw new Error('Incorrect value of diagonalMovement'); }