#pragma once #include "CoreMinimal.h" #include "Perception/AIPerceptionTypes.h" #include "HostileGuntowerModule.h" #include "HostileTargetingGuntowerModule.generated.h" class AActor; UCLASS(Blueprintable) class AHostileTargetingGuntowerModule : public AHostileGuntowerModule { GENERATED_BODY() public: protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true)) TArray SensedTargets; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float TurretRotationSpeed; UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true)) AActor* TargetedActor; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float TargetingRotationSpeed; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FName TargetingFromBone; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) float TimeUntilForgetTarget; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) bool AlwaysUpdateAimRotation; public: AHostileTargetingGuntowerModule(); virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; UFUNCTION(BlueprintCallable) void OnPerceptionUpdated(AActor* sensedActor, FAIStimulus Stimulus); };