public PathRequest(IPathRequester pathRequester, PathValues pathValues, Func <Vector2?> destinationCreation, Action <bool> pathCompleteCallback) { DestinationCreation = destinationCreation; PathValues = pathValues; PathCompleteCallback = pathCompleteCallback; PathRequester = pathRequester; }
public PathRequest(IPathRequester pathRequester, PathValues pathValues, Func <Vector2[]> pathCreation, Action <bool> pathCompleteCallback) { PathCreation = pathCreation; PathValues = pathValues; PathRequester = pathRequester; PathCompleteCallback = pathCompleteCallback; }
public PathRequest(IPathRequester pathRequester, PathfindingMarker startMarker, PathfindingMarker endMarker, float maxJumpHeight) { this.pathRequester = pathRequester; this.startMarker = startMarker; this.endMarker = endMarker; this.maxJumpHeight = maxJumpHeight; }
public MultiPathRequest(IPathRequester pathRequester, List <PathfindingMarker> markers, float maxJumpHeight) { this.pathRequester = pathRequester; this.markers = markers; this.maxJumpHeight = maxJumpHeight; }
private void Complete() { IPathRequester pathRequester = _pathRequest.pathRequester; Logging.Log($"Pathfinder #{PathfinderIndex} completed {(_path.Count > 0 ? "Successfully" : "Unsuccessfully")}. Checked {_totalChecks} markers for {pathRequester}. It took {_framesTaken + 1} frames to complete."); pathRequester.PathCallback(Path, PathfinderIndex); _pathfindingPerfMarker.End(); }
public void RequestPath(IPathRequester pathRequester, Vector3 startPoint, Vector3 endPoint, float maxJumpHeight) { PathfindingMarker startMarker = _grid.FindNearestMarker(startPoint); PathfindingMarker endMarker = _grid.FindNearestMarker(endPoint); Logging.Log($"Trying to move from {startMarker.name} to {endMarker.name}!"); RequestPath(pathRequester, startMarker, endMarker, maxJumpHeight); }
public void RequestPath(IPathRequester requester, Vector3 start, Vector3 target, float radius = 0f) { PathRequest pathRequest = new PathRequest(); pathRequest.m_Requester = requester; pathRequest.m_Radius = radius; pathRequest.m_StartPos = start; pathRequest.m_TargetPos = target; pathRequest.m_RequestTime = Time.time; pathRequest.m_NavMeshPath = new NavMeshPath(); this.m_Requests.Add(pathRequest); }
private void FindPathsViaCoroutines() { int pathRequestsCount = _pathRequests.Count; if (pathRequestsCount != 0) { Logging.Log($"Searching for {pathRequestsCount} paths"); foreach (PathRequest pathRequest in _pathRequests) { const int defaultIndex = 0; var newPathfinder = AStarMarkerPathFinder.CreateInstance(pathRequest, pathfindingChecksPerFramePerFinder, defaultIndex); pathRequest.pathRequester.CurrentPathfinders = new IPathfinder[] { newPathfinder }; StartPathfinderCoroutine(newPathfinder); } _pathRequests.Clear(); } int multiPathRequestsCount = _multiPathRequests.Count; if (multiPathRequestsCount != 0) { Logging.Log($"Searching for {multiPathRequestsCount} multiPaths"); foreach (MultiPathRequest multiPathRequest in _multiPathRequests) { int requestAmount = multiPathRequest.markers.Count - 1; Logging.Log($"Multipath has {requestAmount} number of requests"); IPathRequester pathRequester = multiPathRequest.pathRequester; for (var index = 0; index < requestAmount; index++) { PathfindingMarker currStartMarker = multiPathRequest.markers[index]; PathfindingMarker currEndMarker = multiPathRequest.markers[index + 1]; var newPathRequest = new PathRequest(pathRequester, currStartMarker, currEndMarker, multiPathRequest.maxJumpHeight); var newPathfinder = AStarMarkerPathFinder.CreateInstance(newPathRequest, pathfindingChecksPerFramePerFinder, index); pathRequester.CurrentPathfinders[index] = newPathfinder; StartPathfinderCoroutine(newPathfinder); } } } _multiPathRequests.Clear(); }
public void RequestMultiPath(IPathRequester pathRequester, Vector3 startPoint, IEnumerable <Vector3> listOfPoints, float maxJumpHeight) { PathfindingMarker startMarker = _grid.FindNearestMarker(startPoint); if (startMarker == null) { Logging.LogWarning("Request MultiPath marker is null!"); return; } List <PathfindingMarker> listOfMarkersToGoThrough = listOfPoints.Select(point => _grid.FindNearestMarker(point)).ToList(); RequestMultiPath(pathRequester, startMarker, listOfMarkersToGoThrough, maxJumpHeight); }
private void RegisterPathRequester(IPathRequester pathRequester) { _unitPathRequestManager.RegisterRequester(pathRequester); }
public void RequestPath(IPathRequester requester, Vector3 start, GameObject target, float radius = 0f) { this.RequestPath(requester, start, target.transform.position, radius); }
public void RegisterRequester(IPathRequester pathRequester) { pathRequester.PathRequested += EvaluateIncomingRequest; }
public void RequestPath(IPathRequester pathRequester, PathfindingMarker startMarker, PathfindingMarker endMarker, float maxJumpHeight) { _pathRequests.Add(new PathRequest(pathRequester, startMarker, endMarker, maxJumpHeight)); }
public void RequestPath(IPathRequester pathRequester, Vector3 startPoint, PathfindingMarker endMarker, float maxJumpHeight) { PathfindingMarker startMarker = _grid.FindNearestMarker(startPoint); RequestPath(pathRequester, startMarker, endMarker, maxJumpHeight); }
public void GetMultiPath(IPathRequester pathRequester, PathfindingMarker startMarker, List <PathfindingMarker> pathMarkers, float maxJumpHeight) { CheckPathfindingManager(); pathfindingManager.RequestMultiPath(pathRequester, startMarker, pathMarkers, maxJumpHeight); }
public void GetPath(IPathRequester pathRequester, PathfindingMarker marker1, PathfindingMarker marker2, float maxJumpHeight) { CheckPathfindingManager(); pathfindingManager.RequestPath(pathRequester, marker1, marker2, maxJumpHeight); }
public void RequestMultiPath(IPathRequester pathRequester, PathfindingMarker startMarker, List <PathfindingMarker> listOfMarkers, float maxJumpHeight) { _multiPathRequests.Add(new MultiPathRequest(pathRequester, listOfMarkers, maxJumpHeight)); }