So I have a procedurally generated path, but I want to make sure that it is solvable by the PathFindingService before I put the player at the SpawnPoint, to do this, I've added the following, using the older FindPathAsync() method. (I tried the newer CreatePath() approach that is on the wiki, but Studio gives me an error saying: PathfindingService.CreatePath() is a new API and has not been fully deployed yet. I don't think it's working properly, though I'm not getting any bugs at run-time. My issue is that it is Async and yields until returning a path, but if there is not a path available, then there might be an infinite loop? Here's the snippet
local solvable = false
while not solvable do
local container = game.Workspace:FindFirstChild("MazeContainer")
if container then -- Get rid of the old path if it exists
container:Destroy()
container = nil
end
BuildMaze(FromDimensions(_sizeX, _sizeZ, _seed, _posY), _sizeX, _sizeZ, _posY, _buildX, _buildZ)
local path = pathfinding:FindPathAsync(startPoint, goalPoint)
wait (3) -- Give the async operation time to complete if it can
local wp = path:GetWaypoints()
if wp == nil or #wp < 2 then
_seed = _seed + 1 -- This seed wasn't solvable, move to the next iteration
else
solvable = true
end
end
I'd prefer to yield here (at the wait(3) line) until a result is found or not found, i.e. Enum.PathStatus.NoPath any tips on getting Studio to let me use the newer API?
