Space Plunder
Loading...
Searching...
No Matches
AShipBrainController Class Reference

#include <ShipBrainController.h>

Inheritance diagram for AShipBrainController:
AAIControllerBase IControllerInterface ISaveLoad

Public Member Functions

 AShipBrainController ()
 
void UpdatePerceptionDetails () const
 
- Public Member Functions inherited from AAIControllerBase
 AAIControllerBase ()
 
virtual FVector GetPawnLocation () const override
 
virtual void GetControllerViewPoint (FVector &out_Location, FRotator &out_Rotation) const override
 
virtual bool SaveGame () override
 
virtual bool LoadGame () override
 
virtual ETeamAttitude::Type GetTeamAttitudeTowards (const AActor &Other) const override
 
virtual void SetGenericTeamId (const FGenericTeamId &NewTeamID) override
 
virtual FGenericTeamId GetGenericTeamId () const override
 

Protected Member Functions

virtual void BeginPlay () override
 
virtual void OnPossess (APawn *InPawn) override
 
void OnForgottenStimulusBP (FAIStimulus Stimulus)
 
void OnTargetPerceptionForgottenBP (AActor *Actor)
 
void OnPerceptionUpdatedBP (const TArray< AActor * > &UpdatedActors)
 
void OnTargetPerceptionUpdatedBP (AActor *Actor, FAIStimulus Stimulus)
 
void OnTargetPerceptionInfoUpdatedBP (FActorPerceptionUpdateInfo UpdateInfo)
 
void OnTargetSightUpdated (AActor *Actor, FAIStimulus Stimulus)
 
void OnTargetHearingUpdated (AActor *Actor, FAIStimulus Stimulus)
 
void OnTargetPredictionUpdated (AActor *Actor, FAIStimulus Stimulus)
 
void OnTargetDamageUpdated (AActor *Actor, FAIStimulus Stimulus)
 
void OnTargetTeamUpdated (AActor *Actor, FAIStimulus Stimulus)
 
void OnTargetTouchUpdated (AActor *Actor, FAIStimulus Stimulus)
 
void OnTargetActionUpdated (AActor *Actor, FAIStimulus Stimulus)
 
void ForgottenStimulus (FAIStimulus Stimulus)
 
void TargetPerceptionForgotten (AActor *Actor)
 
void PerceptionUpdated (const TArray< AActor * > &UpdatedActors)
 
void TargetPerceptionUpdated (AActor *Actor, FAIStimulus Stimulus)
 
void TargetPerceptionInfoUpdated (const FActorPerceptionUpdateInfo &UpdateInfo)
 
void TargetSightUpdated (AActor *Actor, const FAIStimulus &Stimulus)
 
void TargetHearingUpdated (AActor *Actor, const FAIStimulus &Stimulus)
 
void TargetPredictionUpdated (AActor *Actor, const FAIStimulus &Stimulus)
 
void TargetDamageUpdated (AActor *Actor, const FAIStimulus &Stimulus)
 
void TargetTeamUpdated (AActor *Actor, const FAIStimulus &Stimulus)
 
void TargetTouchUpdated (AActor *Actor, const FAIStimulus &Stimulus)
 
void TargetActionUpdated (AActor *Actor, const FAIStimulus &Stimulus)
 
void CharacterDeath ()
 
- Protected Member Functions inherited from AAIControllerBase
int32 GetTeamID () const
 
void LogDebugError (const FString &Message) const
 
void LogDebugError (const FString &Message, const int32 Value) const
 
void LogDebugError (const FString &Message, const float Value) const
 
void LogDebugWarning (const FString &Message) const
 
void LogDebugWarning (const FString &Message, const int32 Value) const
 
void LogDebugWarning (const FString &Message, const float Value) const
 
void LogDebugMessage (const FString &Message, const bool bWarning=false, const bool bError=false) const
 
void LogDebugMessage (const FString &Message, const int32 Value, const bool bWarning=false, const bool bError=false) const
 
void LogDebugMessage (const FString &Message, const float Value, const bool bWarning=false, const bool bError=false) const
 
void LogDebugMessage (const FString &Message, const bool bValue, const bool bWarning, const bool bError) const
 
void LogOnScreenMessage (const int32 Key, const FString &Message, FColor Color=FColor::Green) const
 
void SetCategoryName (const FLogCategoryBase &Category)
 

Protected Attributes

class UAdvancedAIPerceptionComponentAIPerceptionComponent
 
class UAISenseConfig_Hearing * HearingConfig
 
class UAISenseConfig_Prediction * PredictionConfig
 
class UAISenseConfig_Team * TeamConfig
 
class UAISenseConfig_ActionsActionsConfig
 
- Protected Attributes inherited from AAIControllerBase
FGenericTeamId TeamID
 
TObjectPtr< UBehaviorTree > Behaviour = nullptr
 
bool bDebuggingMode = false
 

Constructor & Destructor Documentation

◆ AShipBrainController()

AShipBrainController::AShipBrainController ( )
14{
15 AIPerceptionComponent = CreateDefaultSubobject<UAdvancedAIPerceptionComponent>("Perception");
16 // SightConfig = CreateDefaultSubobject<UAISenseConfig_Sight>(TEXT("Sight Perception"));
17 // SightConfig->DetectionByAffiliation.bDetectEnemies = true;
18 // SightConfig->DetectionByAffiliation.bDetectNeutrals = true;
19 // SightConfig->DetectionByAffiliation.bDetectFriendlies = true;
20
21 HearingConfig = CreateDefaultSubobject<UAISenseConfig_Hearing>(TEXT("Hearing Perception"));
22 HearingConfig->DetectionByAffiliation.bDetectEnemies = true;
23 HearingConfig->DetectionByAffiliation.bDetectNeutrals = true;
24 HearingConfig->DetectionByAffiliation.bDetectFriendlies = true;
25
26 PredictionConfig = CreateDefaultSubobject<UAISenseConfig_Prediction>(TEXT("Prediction Perception"));
27 TeamConfig = CreateDefaultSubobject<UAISenseConfig_Team>(TEXT("Team Perception"));
28 // DamageConfig = CreateDefaultSubobject<UAISenseConfig_Damage>(TEXT("Damage Perception"));
29 ActionsConfig = CreateDefaultSubobject<UAISenseConfig_Actions>(TEXT("Actions Perception"));
30 ActionsConfig->ActionRadius = 5000.0f;
31 ActionsConfig->DetectionByAffiliation.bDetectFriendlies = true;
32
33 AIPerceptionComponent->SetDominantSense(UAISense_Actions::StaticClass());
34
35}
class UAISenseConfig_Hearing * HearingConfig
Definition ShipBrainController.h:39
class UAISenseConfig_Prediction * PredictionConfig
Definition ShipBrainController.h:41
class UAdvancedAIPerceptionComponent * AIPerceptionComponent
Definition ShipBrainController.h:34
class UAISenseConfig_Team * TeamConfig
Definition ShipBrainController.h:43
class UAISenseConfig_Actions * ActionsConfig
Definition ShipBrainController.h:45
float ActionRadius
Definition AISenseConfig_Actions.h:31
FAISenseAffiliationFilter DetectionByAffiliation
Definition AISenseConfig_Actions.h:27

Member Function Documentation

◆ BeginPlay()

void AShipBrainController::BeginPlay ( )
overrideprotectedvirtual

Reimplemented from AAIControllerBase.

39{
40 Super::BeginPlay();
41}

◆ CharacterDeath()

void AShipBrainController::CharacterDeath ( )
protected
150{
151}

◆ ForgottenStimulus()

void AShipBrainController::ForgottenStimulus ( FAIStimulus Stimulus)
protected
102{
103}

◆ OnForgottenStimulusBP()

void AShipBrainController::OnForgottenStimulusBP ( FAIStimulus Stimulus)
protected

◆ OnPerceptionUpdatedBP()

void AShipBrainController::OnPerceptionUpdatedBP ( const TArray< AActor * > & UpdatedActors)
protected

◆ OnPossess()

void AShipBrainController::OnPossess ( APawn * InPawn)
overrideprotectedvirtual

Reimplemented from AAIControllerBase.

44{
45 Super::OnPossess(InPawn);
46 if(Behaviour != nullptr)
47 {
48 RunBehaviorTree(Behaviour);
49 }
50 // CustomAICharacter = Cast<ACustomAICharacter>(InPawn);
51 // if(CustomAICharacter != nullptr)
52 // {
53 // AITraitsComponentReference = CustomAICharacter->GetTraitsComponent();
54 // CustomAICharacter->OnCharacterDeath.AddUniqueDynamic(this, &ACustomAIController::CharacterDeath);
55 // }
56 if(AIPerceptionComponent != nullptr)
57 {
59 AIPerceptionComponent->OnTargetPerceptionForgotten.AddUniqueDynamic(this, &AShipBrainController::TargetPerceptionForgotten);
60 AIPerceptionComponent->OnPerceptionUpdated.AddUniqueDynamic(this, &AShipBrainController::PerceptionUpdated);
61 AIPerceptionComponent->OnTargetPerceptionUpdated.AddUniqueDynamic(this, &AShipBrainController::TargetPerceptionUpdated);
62 AIPerceptionComponent->OnTargetPerceptionInfoUpdated.AddUniqueDynamic(this, &AShipBrainController::TargetPerceptionInfoUpdated);
63 // AIPerceptionComponent->On
64
65 //- Set Perception Based on Skills //
67 }
68 // if(AITraitsComponentReference != nullptr)
69 // {
70 // AITraitsComponentReference->OnAIStateChangedDelegate.AddUniqueDynamic(this, &ACustomAIController::AIStateChanged);
71 // AITraitsComponentReference->SetBlackboardComponent(GetBlackboardComponent());
72 // TeamID = UAIBPLib::GetTeamIDFromFaction(AITraitsComponentReference->GetFaction());
73 // SetGenericTeamId(FGenericTeamId(TeamID));
74 // UE_LOG(LogTemp, Warning, TEXT("TEAM ID: %i "), TeamID);
75 // }
76
77}
TObjectPtr< UBehaviorTree > Behaviour
Definition AIControllerBase.h:50
void TargetPerceptionUpdated(AActor *Actor, FAIStimulus Stimulus)
Definition ShipBrainController.cpp:113
void PerceptionUpdated(const TArray< AActor * > &UpdatedActors)
Definition ShipBrainController.cpp:109
void TargetPerceptionForgotten(AActor *Actor)
Definition ShipBrainController.cpp:105
void ForgottenStimulus(FAIStimulus Stimulus)
Definition ShipBrainController.cpp:101
void UpdatePerceptionDetails() const
Definition ShipBrainController.cpp:79
void TargetPerceptionInfoUpdated(const FActorPerceptionUpdateInfo &UpdateInfo)
Definition ShipBrainController.cpp:117
FOnForgottenStimulus OnForgottenStimulus
Definition AdvancedAIPerceptionComponent.h:20

◆ OnTargetActionUpdated()

void AShipBrainController::OnTargetActionUpdated ( AActor * Actor,
FAIStimulus Stimulus )
protected

◆ OnTargetDamageUpdated()

void AShipBrainController::OnTargetDamageUpdated ( AActor * Actor,
FAIStimulus Stimulus )
protected

◆ OnTargetHearingUpdated()

void AShipBrainController::OnTargetHearingUpdated ( AActor * Actor,
FAIStimulus Stimulus )
protected

◆ OnTargetPerceptionForgottenBP()

void AShipBrainController::OnTargetPerceptionForgottenBP ( AActor * Actor)
protected

◆ OnTargetPerceptionInfoUpdatedBP()

void AShipBrainController::OnTargetPerceptionInfoUpdatedBP ( FActorPerceptionUpdateInfo UpdateInfo)
protected

◆ OnTargetPerceptionUpdatedBP()

void AShipBrainController::OnTargetPerceptionUpdatedBP ( AActor * Actor,
FAIStimulus Stimulus )
protected

◆ OnTargetPredictionUpdated()

void AShipBrainController::OnTargetPredictionUpdated ( AActor * Actor,
FAIStimulus Stimulus )
protected

◆ OnTargetSightUpdated()

void AShipBrainController::OnTargetSightUpdated ( AActor * Actor,
FAIStimulus Stimulus )
protected

◆ OnTargetTeamUpdated()

void AShipBrainController::OnTargetTeamUpdated ( AActor * Actor,
FAIStimulus Stimulus )
protected

◆ OnTargetTouchUpdated()

void AShipBrainController::OnTargetTouchUpdated ( AActor * Actor,
FAIStimulus Stimulus )
protected

◆ PerceptionUpdated()

void AShipBrainController::PerceptionUpdated ( const TArray< AActor * > & UpdatedActors)
protected
110{
111}

◆ TargetActionUpdated()

void AShipBrainController::TargetActionUpdated ( AActor * Actor,
const FAIStimulus & Stimulus )
protected
146{
147}

◆ TargetDamageUpdated()

void AShipBrainController::TargetDamageUpdated ( AActor * Actor,
const FAIStimulus & Stimulus )
protected
134{
135}

◆ TargetHearingUpdated()

void AShipBrainController::TargetHearingUpdated ( AActor * Actor,
const FAIStimulus & Stimulus )
protected
126{
127}

◆ TargetPerceptionForgotten()

void AShipBrainController::TargetPerceptionForgotten ( AActor * Actor)
protected
106{
107}

◆ TargetPerceptionInfoUpdated()

void AShipBrainController::TargetPerceptionInfoUpdated ( const FActorPerceptionUpdateInfo & UpdateInfo)
protected
118{
119}

◆ TargetPerceptionUpdated()

void AShipBrainController::TargetPerceptionUpdated ( AActor * Actor,
FAIStimulus Stimulus )
protected
114{
115}

◆ TargetPredictionUpdated()

void AShipBrainController::TargetPredictionUpdated ( AActor * Actor,
const FAIStimulus & Stimulus )
protected
130{
131}

◆ TargetSightUpdated()

void AShipBrainController::TargetSightUpdated ( AActor * Actor,
const FAIStimulus & Stimulus )
protected
122{
123}

◆ TargetTeamUpdated()

void AShipBrainController::TargetTeamUpdated ( AActor * Actor,
const FAIStimulus & Stimulus )
protected
138{
139}

◆ TargetTouchUpdated()

void AShipBrainController::TargetTouchUpdated ( AActor * Actor,
const FAIStimulus & Stimulus )
protected
142{
143}

◆ UpdatePerceptionDetails()

void AShipBrainController::UpdatePerceptionDetails ( ) const
80{
81 TRACE_CPUPROFILER_EVENT_SCOPE(AShipBrainController::UpdatePerceptionDetails);
82 // if(AIPerceptionComponent != nullptr && AITraitsComponentReference != nullptr)
83 // {
84 // AIPerceptionComponent->SetHearingRange(AITraitsComponentReference->GetHearingRange());
85 // //@BUG Max Age Doesn't Work in the Perception System //
86 // //@see https://forums.unrealengine.com/t/aiperception-max-age-broken-or-not-implemented-correctly-while-setting-up-senses-in-editor/318932
87 // // AIPerceptionComponent->SetMaxAge(HearingConfig->StaticClass(), AITraitsComponentReference->GetHearingMaxAge());
88 // // AIPerceptionComponent->SetMaxAge(SightConfig->StaticClass(), AITraitsComponentReference->GetSightMaxAge());
89 // // AIPerceptionComponent->SetHearingMaxAge(AITraitsComponentReference->GetHearingMaxAge());
90 // AIPerceptionComponent->SetSightRange(AITraitsComponentReference->GetSightRange());
91 // AIPerceptionComponent->SetLoseSightRange(AITraitsComponentReference->GetLoseSightRange());
92 // AIPerceptionComponent->SetVisionAngle(AITraitsComponentReference->GetSightAngle());
93 // AIPerceptionComponent->SetAutoSuccessRange(AITraitsComponentReference->GetSightAutoDetectRange());
94 // AIPerceptionComponent->SetPOVBackwardOffset(AITraitsComponentReference->GetSightPOVBackwardsOffset());
95 // // AIPerceptionComponent->SetSightMaxAge(AITraitsComponentReference->GetSightMaxAge());
96 // // SetNearClippingRadius
97 // }
98}

Member Data Documentation

◆ ActionsConfig

class UAISenseConfig_Actions* AShipBrainController::ActionsConfig
protected

◆ AIPerceptionComponent

class UAdvancedAIPerceptionComponent* AShipBrainController::AIPerceptionComponent
protected

◆ HearingConfig

class UAISenseConfig_Hearing* AShipBrainController::HearingConfig
protected

◆ PredictionConfig

class UAISenseConfig_Prediction* AShipBrainController::PredictionConfig
protected

◆ TeamConfig

class UAISenseConfig_Team* AShipBrainController::TeamConfig
protected

The documentation for this class was generated from the following files: