--[[
	
	----------------------------------------------------------------------------------
	
	API:
	
		- pathfinder:FindPath()
		- pathfinder:SetEmptyCutoff()
		- path:GetPointCoordinates()
		- path:CheckOcclusionAsync()
		
		EXAMPLES:
	
		- pathfinder = require(game.ServerScriptService.Pathfinder)
	
		- path = pathfinder:FindPath(startPosition, endPosition)
		
				- points = path:GetPointCoordinates()
				- index  = path:CheckOcclusionAsync(startIndex)
		
		- pathfinder:SetEmptyCutoff(ratio)
	
	----------------------------------------------------------------------------------
	
	HOW TO USE -- Example Code:
	
		local pathfinder = require(game.ServerScriptService.Pathfinder)
		local points, status = pathfinder:FindPath(startPosition, endPosition)
		
		-- Where 'startPosition' and 'endPosition' are Vector3 values that
		-- represent the start and end positions of the path.
		
	----------------------------------------------------------------------------------
	
	BENEFITS OVER PATHFINDINGSERVICE:
	
	-	Simplified path. Instead of having tons of points for every step
		of the way, this API will simplify the path by only keeping the
		important points: the start/end points for each straight or
		diagonal line.
		
	-	No distance cap. You can find a path between as far of a distance
		as you want. The API will connect multiple max-length paths from
		the PathfindingService for you and return a single list of points.	
	
--]]




local Pathfinder = {}
local API = {}
local MT = {}
