Files
UnrealEngineUWP/Engine/Source/Runtime/AIModule/Private/AIInterfaces.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

62 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "CoreMinimal.h"
#include "AIResourceInterface.h"
#include "GenericTeamAgentInterface.h"
UAIResourceInterface::UAIResourceInterface(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}
const FGenericTeamId FGenericTeamId::NoTeam(FGenericTeamId::NoTeamId);
FGenericTeamId FGenericTeamId::GetTeamIdentifier(const AActor* TeamMember)
{
const IGenericTeamAgentInterface* TeamAgent = Cast<const IGenericTeamAgentInterface>(TeamMember);
if (TeamAgent)
{
return TeamAgent->GetGenericTeamId();
}
return FGenericTeamId::NoTeam;
}
//----------------------------------------------------------------------//
// FGenericTeamId
//----------------------------------------------------------------------//
namespace
{
ETeamAttitude::Type DefaultTeamAttitudeSolver(FGenericTeamId A, FGenericTeamId B)
{
return A != B ? ETeamAttitude::Hostile : ETeamAttitude::Friendly;
}
}
FGenericTeamId::FAttitudeSolverFunction FGenericTeamId::AttitudeSolverImpl = &DefaultTeamAttitudeSolver;
ETeamAttitude::Type FGenericTeamId::GetAttitude(const AActor* A, const AActor* B)
{
const IGenericTeamAgentInterface* TeamAgentA = Cast<const IGenericTeamAgentInterface>(A);
return TeamAgentA == NULL || B == NULL ? ETeamAttitude::Neutral : TeamAgentA->GetTeamAttitudeTowards(*B);
}
void FGenericTeamId::SetAttitudeSolver(const FGenericTeamId::FAttitudeSolverFunction& Solver)
{
AttitudeSolverImpl = Solver;
}
void FGenericTeamId::ResetAttitudeSolver()
{
AttitudeSolverImpl = &DefaultTeamAttitudeSolver;
}
//----------------------------------------------------------------------//
// UGenericTeamAgentInterface
//----------------------------------------------------------------------//
UGenericTeamAgentInterface::UGenericTeamAgentInterface(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}