Space Plunder
Loading...
Searching...
No Matches
AIActionsInterface.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Data/AIDataTypes.h"
7#include "UObject/Interface.h"
8#include "AIActionsInterface.generated.h"
9
10enum class EAIStimuliType : uint8;
11
12UINTERFACE(MinimalAPI, meta = (CannotImplementInterfaceInBlueprint))
13class UAIActionsInterface : public UInterface
14{
15 GENERATED_BODY()
16};
17
18
19class AITOOLKIT_API IAIActionsInterface
20{
21 GENERATED_BODY()
22
23public:
25 UFUNCTION(BlueprintCallable, Category="AI Actions")
26 virtual void CrouchAction(const bool bCrouch = true) = 0;
27
28 UFUNCTION(BlueprintCallable, Category="AI Actions")
29 virtual void Aim(const bool bStartAiming = true) = 0;
30 UFUNCTION(BlueprintCallable, Category="AI Actions")
31 virtual void ShootAction(const bool bStartShooting = true) = 0;
32 UFUNCTION(BlueprintCallable, Category="AI Actions")
33 virtual void ShootAtTargetAction(const bool bStartShooting = true, const FVector& TargetLocation = FVector::ZeroVector) = 0;
34 //- Returns the Reload Duration //
35 UFUNCTION(BlueprintCallable, Category="AI Actions")
36 virtual float Reload() = 0;
38 UFUNCTION(BlueprintCallable, Category="AI Actions")
39 virtual bool CheckAmmo(bool& bNeedToReload) const = 0;
41 UFUNCTION(BlueprintCallable, Category="AI Actions")
42 virtual bool GetHasWeapon() const = 0;
49 UFUNCTION(BlueprintCallable, Category="AI Actions")
50 virtual uint8 GetWeaponFireMode() const = 0;
52 UFUNCTION(BlueprintCallable, Category="AI Actions")
53 virtual float GetWeaponFireRate() const = 0;
54
55
56 UFUNCTION(BlueprintCallable, Category="AI Actions")
57 virtual void UpdateMovementSpeed(const EAIMovementSpeed MovementSpeed, const EAIMovementType MovementType) = 0;
58 UFUNCTION(BlueprintCallable, Category="AI Actions")
59 virtual FVector PredictLocation(AActor* TargetActor) = 0;
60 UFUNCTION(BlueprintCallable, Category="AI Actions")
61 virtual bool PickupObject(const AActor* TargetObject) = 0;
62 UFUNCTION(BlueprintCallable, Category="AI Actions")
63 virtual FVector GetLastKnownLocation(AActor* TargetActor, const TArray<EAISense>& Senses) = 0;
64
65 //- Returns Animation Duration //
66 UFUNCTION(BlueprintCallable, Category="AI Actions")
67 virtual float MeleeAttack() = 0;
68 UFUNCTION(BlueprintCallable, Category="AI Actions")
69 virtual float PlayAnimationMontage(UAnimMontage* Montage, const float PlayRate = 1.0f, const float InTimeToStartMontageAt = 0.0f, const bool bStopAllMontages = true) = 0;
70
71
72 UFUNCTION(BlueprintCallable, Category = "AI Actions")
73 virtual TArray<AActor*> GetHostileActors() const = 0;
74 // UFUNCTION(BlueprintCallable, Category = "AI Actions")
75 // virtual TArray<FHostileActorInfo> GetHostileActorsInfo() const = 0;
76
77 UFUNCTION(BlueprintCallable, Category = "AI Actions")
78 virtual TArray<AActor*> GetPerceivedObjects(const TArray<EAIStimuliType> Filters) const = 0;
79
80 UFUNCTION(BlueprintCallable, Category = "AI Actions")
81 virtual AActor* GetBestHostileActor() const = 0;
82
83
84
85 UFUNCTION(BlueprintCallable, Category = "AI Actions")
86 virtual float GetMaxHealth() const = 0;
87
88
89 // UFUNCTION(BlueprintCallable, Category="AI Actions")
90 // virtual FVector GetLocation() = 0;
91 //
92 // UFUNCTION(BlueprintCallable, Category="AI Actions|Patrol")
93 // virtual float GetPatrolPointWaitTime() = 0;
94 // UFUNCTION(BlueprintCallable, Category="AI Actions|Patrol")
95 // virtual AActor* GetNextPatrolPoint(bool& bIsBridgeAvailable) = 0;
96 // UFUNCTION(BlueprintCallable, Category="AI Actions|Patrol")
97 // virtual AActor* GetPreviousPatrolPoint(bool& bIsBridgeAvailable) = 0;
98 // UFUNCTION(BlueprintCallable, Category="AI Actions|Patrol")
99 // virtual AActor* GetNextBridgePatrolPoint() = 0;
100
101
102
103
104};
EAIMovementSpeed
Definition AIDataTypes.h:84
EAIMovementType
Definition AIDataTypes.h:93
EAISense
Definition AIDataTypes.h:60
EAIStimuliType
Definition BaseData.h:198
Definition AIActionsInterface.h:20
Definition AIActionsInterface.h:14