9#include "AIPerceptionTypes.generated.h"
103 while ((RemainingChannelsToTest &
Flags) != 0 && ((1 << ++CurrentIndex) |
Flags) == 0)
105 RemainingChannelsToTest &= ~(1 << CurrentIndex);
109 inline explicit operator bool()
const
122 RemainingChannelsToTest &= ~(1 << CurrentIndex);
142 UPROPERTY(BlueprintReadWrite, Category =
"AI|Perception")
145 UPROPERTY(BlueprintReadWrite, Category = "AI|Perception")
148 UPROPERTY(BlueprintReadWrite, Category = "AI|Perception")
150 UPROPERTY(BlueprintReadWrite, Category = "AI|Perception")
152 UPROPERTY(BlueprintReadWrite, Category = "AI|Perception")
154 UPROPERTY(BlueprintReadWrite, Category = "AI|Perception")
160 uint32 bWantsToNotifyOnlyOnValueChange : 1;
162 UPROPERTY(BlueprintReadWrite, Category = "AI|Perception")
176 : Age(NeverHappenedAge), ExpirationAge(NeverHappenedAge), Strength(-1.f), StimulusLocation(
FAISystem::InvalidLocation)
185 inline float GetAge()
const {
return Strength > 0 ? Age : NeverHappenedAge; }
190 return Age < ExpirationAge;
195 inline void MarkExpired() { bExpired =
true; MarkNoLongerSensed(); }
200#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
217 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category =
"Sense")
227 inline bool ShouldDetectAll()
const {
return (bDetectEnemies && bDetectNeutrals && bDetectFriendlies); }
258 uint32 bHasStimulusToProcess : 1;
296 inline void MarkForStimulusProcessing() { bHasStimulusToProcess =
true; }
EAISenseNotifyType
Definition AIPerceptionTypes.h:28
FAIGenericID< FPerceptionListenerCounter > FPerceptionListenerID
Definition AIPerceptionTypes.h:22
FAINamedID< FAISenseCounter > FAISenseID
Definition AIPerceptionTypes.h:17
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
Definition NameTypes.h:617
Definition GenericTeamAgentInterface.h:82
Definition UnrealString.h.inl:34
Definition AIPerceptionSystem.h:31
Definition AIPerceptionTypes.h:306
TMap< FPerceptionListenerID, FPerceptionListener > FListenerMap
Definition AIPerceptionTypes.h:307
@ Neutral
Definition GenericTeamAgentInterface.h:17
@ Hostile
Definition GenericTeamAgentInterface.h:18
@ Friendly
Definition GenericTeamAgentInterface.h:16
Definition AIController.h:459
@ false
Definition radaudio_common.h:23
static FAINamedID< FAISenseCounter > InvalidID()
Definition AITypes.h:214
Definition AIPerceptionTypes.h:207
static bool ShouldSenseTeam(const IGenericTeamAgentInterface *TeamAgent, const AActor &TargetActor, uint8 AffiliationFlags)
Definition AIPerceptionTypes.h:237
static uint8 DetectAllFlags()
Definition AIPerceptionTypes.h:229
bool ShouldDetectAll() const
Definition AIPerceptionTypes.h:227
static bool ShouldSenseTeam(FGenericTeamId TeamA, FGenericTeamId TeamB, uint8 AffiliationFlags)
Definition AIPerceptionTypes.h:231
Definition AIPerceptionTypes.h:16
Definition AIPerceptionTypes.h:130
bool AgeStimulus(float ConstPerceptionAgingRate)
Definition AIPerceptionTypes.h:187
bool WantsToNotifyOnlyOnPerceptionChange() const
Definition AIPerceptionTypes.h:197
bool IsValid() const
Definition AIPerceptionTypes.h:198
bool IsActive() const
Definition AIPerceptionTypes.h:196
bool IsExpired() const
Definition AIPerceptionTypes.h:193
void MarkNoLongerSensed()
Definition AIPerceptionTypes.h:194
float GetAge() const
Definition AIPerceptionTypes.h:185
FResult
Definition AIPerceptionTypes.h:136
@ SensingSucceeded
Definition AIPerceptionTypes.h:137
FAIStimulus & SetWantsNotifyOnlyOnValueChange(bool InEnable)
Definition AIPerceptionTypes.h:183
FAIStimulus & SetExpirationAge(float InExpirationAge)
Definition AIPerceptionTypes.h:181
FAIStimulus & SetStimulusAge(float StimulusAge)
Definition AIPerceptionTypes.h:182
void MarkExpired()
Definition AIPerceptionTypes.h:195
bool WasSuccessfullySensed() const
Definition AIPerceptionTypes.h:192
Definition GenericTeamAgentInterface.h:24
static AIMODULE_API ETeamAttitude::Type GetAttitude(const AActor *A, const AActor *B)
Definition AIInterfaces.cpp:38
Definition AIPerceptionTypes.h:84
int32 operator*() const
Definition AIPerceptionTypes.h:114
FConstIterator(const FPerceptionChannelAllowList &InAllowList)
Definition AIPerceptionTypes.h:91
void FindNextAcceptedChannel()
Definition AIPerceptionTypes.h:99
void operator++()
Definition AIPerceptionTypes.h:119
Definition AIPerceptionTypes.h:36
FFlagsContainer AcceptedChannelsMask
Definition AIPerceptionTypes.h:39
FPerceptionChannelAllowList & AcceptChannel(FAISenseID Channel)
Definition AIPerceptionTypes.h:61
FFlagsContainer GetAcceptedChannelsMask() const
Definition AIPerceptionTypes.h:78
bool ShouldRespondToChannel(FAISenseID Channel) const
Definition AIPerceptionTypes.h:67
FPerceptionChannelAllowList()
Definition AIPerceptionTypes.h:42
int32 FFlagsContainer
Definition AIPerceptionTypes.h:37
void Clear()
Definition AIPerceptionTypes.h:45
bool IsEmpty() const
Definition AIPerceptionTypes.h:50
FPerceptionChannelAllowList & FilterOutChannel(FAISenseID Channel)
Definition AIPerceptionTypes.h:55
FPerceptionChannelAllowList & MergeFilterIn(const FPerceptionChannelAllowList &OtherFilter)
Definition AIPerceptionTypes.h:72
Definition AIPerceptionTypes.h:21
Definition AIPerceptionTypes.h:247
FPerceptionChannelAllowList Filter
Definition AIPerceptionTypes.h:250
AIMODULE_API void UpdateListenerProperties(UAIPerceptionComponent &Listener)
Definition AIPerceptionTypes.cpp:91
AIMODULE_API FName GetBodyActorName() const
Definition AIPerceptionTypes.cpp:113
AIMODULE_API const AActor * GetBodyActor() const
Definition AIPerceptionTypes.cpp:125
bool operator==(const FPerceptionListener &Other) const
Definition AIPerceptionTypes.h:269
AIMODULE_API const IGenericTeamAgentInterface * GetTeamAgent() const
Definition AIPerceptionTypes.cpp:130
bool HasSense(FAISenseID SenseID) const
Definition AIPerceptionTypes.h:278
static AIMODULE_API const FPerceptionListener NullListener
Definition AIPerceptionTypes.h:281
FVector CachedDirection
Definition AIPerceptionTypes.h:253
TWeakObjectPtr< UAIPerceptionComponent > Listener
Definition AIPerceptionTypes.h:248
AIMODULE_API uint32 GetBodyActorUniqueID() const
Definition AIPerceptionTypes.cpp:119
FVector CachedLocation
Definition AIPerceptionTypes.h:252
AIMODULE_API void CacheLocation()
Definition AIPerceptionTypes.cpp:83
FGenericTeamId TeamIdentifier
Definition AIPerceptionTypes.h:255
AIMODULE_API void ProcessStimuli()
Definition AIPerceptionTypes.cpp:106
bool HasAnyNewStimuli() const
Definition AIPerceptionTypes.h:275
FPerceptionListenerID GetListenerID() const
Definition AIPerceptionTypes.h:283
bool operator==(const UAIPerceptionComponent *Other) const
Definition AIPerceptionTypes.h:268
AIMODULE_API void RegisterStimulus(AActor *Source, const FAIStimulus &Stimulus)
Definition AIPerceptionTypes.cpp:100
Definition AIPerceptionTypes.h:300
FPerceptionChannelAllowList RelevantSenses
Definition AIPerceptionTypes.h:302
TWeakObjectPtr< AActor > SourceActor
Definition AIPerceptionTypes.h:301
Definition WeakObjectPtrTemplates.h:25
FORCEINLINE T * Get(bool bEvenIfPendingKill) const
Definition WeakObjectPtrTemplates.h:132