Exemplo n.º 1
0
// deprecated
bool AAIController::PreparePathfinding(FPathFindingQuery& Query, const FVector& Dest, AActor* Goal, bool bUsePathfinding, TSubclassOf<class UNavigationQueryFilter> FilterClass)
{
	if (Goal)
	{
		FAIMoveRequest MoveReq(Goal);
		MoveReq.SetUsePathfinding(bUsePathfinding);
		MoveReq.SetNavigationFilter(FilterClass);

		return PreparePathfinding(MoveReq, Query);
	}

	FAIMoveRequest MoveReq(Dest);
	MoveReq.SetUsePathfinding(bUsePathfinding);
	MoveReq.SetNavigationFilter(FilterClass);

	return PreparePathfinding(MoveReq, Query);
}
Exemplo n.º 2
0
// deprecated
FAIRequestID AAIController::RequestPathAndMove(FPathFindingQuery& Query, AActor* Goal, float AcceptanceRadius, bool bStopOnOverlap, FCustomMoveSharedPtr CustomData)
{
	FAIMoveRequest MoveReq(Goal);
	MoveReq.SetAcceptanceRadius(AcceptanceRadius);
	MoveReq.SetStopOnOverlap(bStopOnOverlap);
	MoveReq.SetUserData(CustomData);

	return RequestPathAndMove(MoveReq, Query);
}
Exemplo n.º 3
0
// deprecated
FAIRequestID AAIController::RequestMove(FNavPathSharedPtr Path, AActor* Goal, float AcceptanceRadius, bool bStopOnOverlap, FCustomMoveSharedPtr CustomData)
{
	FAIMoveRequest MoveReq(Goal);
	MoveReq.SetAcceptanceRadius(AcceptanceRadius);
	MoveReq.SetStopOnOverlap(bStopOnOverlap);
	MoveReq.SetUserData(CustomData);

	return RequestMove(MoveReq, Path);
}
Exemplo n.º 4
0
EPathFollowingRequestResult::Type AAIController::MoveToActor(AActor* Goal, float AcceptanceRadius, bool bStopOnOverlap, bool bUsePathfinding, bool bCanStrafe, TSubclassOf<UNavigationQueryFilter> FilterClass, bool bAllowPartialPaths)
{
	FAIMoveRequest MoveReq(Goal);
	MoveReq.SetUsePathfinding(bUsePathfinding);
	MoveReq.SetAllowPartialPath(bAllowPartialPaths);
	MoveReq.SetNavigationFilter(FilterClass);
	MoveReq.SetAcceptanceRadius(AcceptanceRadius);
	MoveReq.SetStopOnOverlap(bStopOnOverlap);
	MoveReq.SetCanStrafe(bCanStrafe);

	return MoveTo(MoveReq);
}
Exemplo n.º 5
0
EPathFollowingRequestResult::Type AAIController::MoveToLocation(const FVector& Dest, float AcceptanceRadius, bool bStopOnOverlap, bool bUsePathfinding, bool bProjectDestinationToNavigation, bool bCanStrafe, TSubclassOf<UNavigationQueryFilter> FilterClass, bool bAllowPartialPaths)
{
	FAIMoveRequest MoveReq(Dest);
	MoveReq.SetUsePathfinding(bUsePathfinding);
	MoveReq.SetAllowPartialPath(bAllowPartialPaths);
	MoveReq.SetProjectGoalLocation(bProjectDestinationToNavigation);
	MoveReq.SetNavigationFilter(FilterClass);
	MoveReq.SetAcceptanceRadius(AcceptanceRadius);
	MoveReq.SetStopOnOverlap(bStopOnOverlap);
	MoveReq.SetCanStrafe(bCanStrafe);

	return MoveTo(MoveReq);
}
Exemplo n.º 6
0
EPathFollowingRequestResult::Type AAIController::MoveToActor(AActor* Goal, float AcceptanceRadius, bool bStopOnOverlap, bool bUsePathfinding, bool bCanStrafe, TSubclassOf<UNavigationQueryFilter> FilterClass, bool bAllowPartialPaths)
{
    // abort active movement to keep only one request running
    if (PathFollowingComponent && PathFollowingComponent->GetStatus() != EPathFollowingStatus::Idle)
    {
        PathFollowingComponent->AbortMove(*this, FPathFollowingResultFlags::ForcedScript | FPathFollowingResultFlags::NewRequest
                                          , FAIRequestID::CurrentRequest, EPathFollowingVelocityMode::Keep);
    }

    FAIMoveRequest MoveReq(Goal);
    MoveReq.SetUsePathfinding(bUsePathfinding);
    MoveReq.SetAllowPartialPath(bAllowPartialPaths);
    MoveReq.SetNavigationFilter(*FilterClass ? FilterClass : DefaultNavigationFilterClass);
    MoveReq.SetAcceptanceRadius(AcceptanceRadius);
    MoveReq.SetReachTestIncludesAgentRadius(bStopOnOverlap);
    MoveReq.SetCanStrafe(bCanStrafe);

    return MoveTo(MoveReq);
}