Files
UnrealEngineUWP/Engine/Source/Runtime/AIModule/Private/Navigation/PathFollowingManager.cpp
ryan durand 0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00

39 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Navigation/PathFollowingManager.h"
#include "Navigation/PathFollowingComponent.h"
#include "VisualLogger/VisualLogger.h"
#include "GameFramework/Controller.h"
UPathFollowingManager::UPathFollowingManager(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
struct FDelegatesInitializer
{
FDelegatesInitializer()
{
IPathFollowingManagerInterface::StopMovementDelegate().BindStatic(&UPathFollowingManager::StopMovement);
IPathFollowingManagerInterface::IsFollowingAPathDelegate().BindStatic(&UPathFollowingManager::IsFollowingAPath);
}
};
static FDelegatesInitializer DelegatesInitializer;
}
void UPathFollowingManager::StopMovement(const AController& Controller)
{
UE_VLOG(&Controller, LogNavigation, Log, TEXT("AController::StopMovement: %s STOP MOVEMENT"), *GetNameSafe(Controller.GetPawn()));
UPathFollowingComponent* PathFollowingComp = Controller.FindComponentByClass<UPathFollowingComponent>();
if (PathFollowingComp != nullptr)
{
PathFollowingComp->AbortMove(Controller, FPathFollowingResultFlags::MovementStop);
}
}
bool UPathFollowingManager::IsFollowingAPath(const AController& Controller)
{
UPathFollowingComponent* PathFollowingComp = Controller.FindComponentByClass<UPathFollowingComponent>();
return (PathFollowingComp != nullptr) && (PathFollowingComp->GetStatus() != EPathFollowingStatus::Idle);
}