private void LinkNodeDirectionNotWall(ref PathNode node, int x, int y, PathNode.DirectionNode direction) { if (!_board.HasWallAt(x, y)) { var hash = BoardPointStringPosition.Get(x, y); if (_pointToNode.ContainsKey(hash)) { node.Link(_pointToNode[hash], direction); } } }
private void LinkNodeDiagonalDirectionWall(ref PathNode node, int x, int y, PathNode.DirectionNode direction) { if (!_board.IsOutOfBoard(x, y)) { var element = _board.GetAt(x, y); switch (element) { case BoardElement.Brick: var hash = BoardPointStringPosition.Get(x, y); if (_pointToNode.ContainsKey(hash)) { node.Link(_pointToNode[hash], direction); } break; default: return; } } }