diff --git a/com/haxepunk/ai/path/NodeGraph.hx b/com/haxepunk/ai/path/NodeGraph.hx index 62d913d..4253793 100644 --- a/com/haxepunk/ai/path/NodeGraph.hx +++ b/com/haxepunk/ai/path/NodeGraph.hx @@ -108,10 +108,16 @@ class NodeGraph if (allowDiagonal) { - node.addNeighbor(getNode(x - 1, y - 1), DIAGONAL_COST); - node.addNeighbor(getNode(x + 1, y - 1), DIAGONAL_COST); - node.addNeighbor(getNode(x - 1, y + 1), DIAGONAL_COST); - node.addNeighbor(getNode(x + 1, y + 1), DIAGONAL_COST); + if(!grid.getTile(x, y - 1)) + { + if(!grid.getTile(x - 1, y)) node.addNeighbor(getNode(x - 1, y - 1), DIAGONAL_COST); + if(!grid.getTile(x + 1, y)) node.addNeighbor(getNode(x + 1, y - 1), DIAGONAL_COST); + } + if(!grid.getTile(x, y + 1)) + { + if(!grid.getTile(x - 1, y)) node.addNeighbor(getNode(x - 1, y + 1), DIAGONAL_COST); + if(!grid.getTile(x + 1, y)) node.addNeighbor(getNode(x + 1, y + 1), DIAGONAL_COST); + } } addNode(node); }