5#include "Components/ActorComponent.h"
6#include "ProjectXAIPerception.generated.h"
11#define ECC_AISight ECC_GameTraceChannel4
22USTRUCT(BlueprintType, meta = (
DisplayName =
"Stimulus Data"))
25 GENERATED_USTRUCT_BODY()
27 UPROPERTY(BlueprintReadWrite, Category =
"AI|Perception")
30 UPROPERTY(BlueprintReadWrite, Category = "AI|Perception")
34USTRUCT(BlueprintType, meta = (
DisplayName = "Sensed Actor's Data"))
37 GENERATED_USTRUCT_BODY()
39 UPROPERTY(BlueprintReadWrite, Category =
"AI|Perception")
42 UPROPERTY(BlueprintReadWrite, Category = "AI|Perception")
50 return Target && Target == rhs.
Target;
56UCLASS( ClassGroup=(
Custom), meta=(BlueprintSpawnableComponent) )
57class PROJECTX_API UProjectXAIPerception :
public UActorComponent
62 UProjectXAIPerception();
64 bool PassesConeCheck(const FVector ActorLocation, const FVector StartLocation, const FVector LookDirection) const;
66 void ReportDamageEvent(class AActor* Victim, const
float Damage, struct FDamageEvent const& DamageEvent, const class AController* EventInstigator, const class AActor* DamageCauser, const class APlayerState* InstigatorPlayerState);
68 void OnPawnPosessed(APawn* InPawn);
70 virtual
void BeginPlay() override;
74 float PeripheralVisionAngleCos;
75 float SquareVisionRange;
78 virtual
void TickComponent(
float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
81 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
82 float VisionRange = 2000.0f;
84 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
85 float ArmorMaxStrength = 0.0f;
87 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
88 float TargetDamagedMaxStrength = 0.0f;
90 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
91 float SightMaxStrength = 2.0f;
93 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
94 float SightMaxStrengthAlly = 2.0f;
96 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
97 float PeripheralVisionAngleDegrees = 90.0f;
99 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
100 int32 MaxVisionTargets = 3;
103 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
104 float HearingRange = 700.0f;
106 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
107 float HearingMaxStrength = 3.0f;
109 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
110 float HearingMaxStrengthAlly = 3.0f;
112 UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Perception")
113 float DamageMaxStrength = 10.0f;
115 UPROPERTY(BlueprintAssignable, Category = "Perception Events")
116 FPerceptionUpdateSignature OnPerceptionUpdated;
119 void UpdateTargetVisibilityInfo();
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FPerceptionUpdateSignature, TArray< FProjectXPerceptionInfo >, UpdatedActors)
EStimulusType
Definition: ProjectXAIPerception.h:15
Definition: ProjectXAIController.h:52
FText DisplayName
Definition: ProjectXAIController.h:58
Definition: ProjectXAIPerception.h:24
Definition: ProjectXAIPerception.h:36
bool operator==(const FProjectXPerceptionInfo &rhs) const
Definition: ProjectXAIPerception.h:48
AActor * Target
Definition: ProjectXAIPerception.h:40