Space Plunder
Loading...
Searching...
No Matches
InteractionInterface.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/InteractionData.h"
7#include "UObject/Interface.h"
8#include "InteractionInterface.generated.h"
9
10
11UINTERFACE(MinimalAPI,meta = (CannotImplementInterfaceInBlueprint))
12class UInteractionInterface : public UInterface
13{
14 GENERATED_BODY()
15};
16
17class INTERACTION_API IInteractionInterface
18{
19 GENERATED_BODY()
20public:
24 UFUNCTION(BlueprintCallable, Category = "Interaction")
25 virtual void OnInteract(AActor* Caller, const int32 SelectedInteraction = 0) = 0;
27 UFUNCTION(BlueprintCallable, Category = "Interaction")
28 virtual void OnEndInteract(AActor* Caller) = 0;
30 UFUNCTION(BlueprintCallable, Category = "Interaction")
31 virtual bool OnOverlap(AActor* Caller) = 0;
32 UFUNCTION(BlueprintCallable, Category = "Interaction")
33 virtual void OnEndOverlap(AActor* Caller) = 0;
34
35 //- Aiming At, Outline Objects, Show Prompts //
36 UFUNCTION(BlueprintCallable, Category = "Interaction")
37 virtual void StartFocus(AActor* Caller) = 0;
38 UFUNCTION(BlueprintCallable, Category = "Interaction")
39 virtual void EndFocus(AActor* Caller) = 0;
40 //- Turn On/Off switch
41 UFUNCTION(BlueprintCallable, Category = "Interaction")
42 virtual void ToggleSwitch(AActor* Caller, const bool bOn) = 0;
43
44 UFUNCTION(BlueprintCallable, Category = "Interaction")
45 virtual bool GetLoseFocusAfterInteract() const {return false;};
46
47 UFUNCTION(BlueprintCallable, Category = "Interaction")
48 virtual FVector GetInteractionLocation() const = 0;
49
50 UFUNCTION(BlueprintCallable, Category = "Interaction")
51 virtual float GetAimAssistInfluence() const {return 0.0f;};
52
53 UFUNCTION(BlueprintCallable, Category = "Interaction")
54 virtual FInteractionData& GetInteractionData() = 0;
55
56 UFUNCTION(BlueprintCallable, Category = "Interaction")
57 virtual void InteractionDataUpdated() const {};
58 UFUNCTION(BlueprintCallable, Category = "Interaction")
59 virtual void UpdateInteractionData() {};
60
61 UFUNCTION(BlueprintCallable, Category = "Interaction")
62 virtual UPrimitiveComponent* GetGrabComponent() const = 0;
63
64
65 // UFUNCTION(BlueprintCallable, Category = "Interaction")
66 // virtual bool GetCanPushOtherObjects() const = 0;
67
68
69 UFUNCTION(BlueprintCallable, Category = "Base Helpers")
70 virtual void SetOnlyInteractionVisible(const EInteractionType Interaction)
71 {
72 GetInteractionData().SetOnlyInteractionVisible(Interaction);
73 UpdateInteractionData();
74 };
75 UFUNCTION(BlueprintCallable, Category = "Base Helpers")
76 virtual bool SetInteractionHidden(const EInteractionType Interaction, const bool bValue)
77 {
78 const bool bHidden = GetInteractionData().SetInteractionHidden(Interaction, bValue);
79 UpdateInteractionData();
80 return bHidden;
81 };
82
83 UFUNCTION(BlueprintCallable, Category = "Base Helpers")
84 virtual bool SetInteractionAvailable(const EInteractionType Interaction, const bool bValue)
85 {
86 const bool bAvailable = GetInteractionData().SetInteractionAvailable(Interaction, bValue);
87 UpdateInteractionData();
88 return bAvailable;
89 };
90
91 UFUNCTION(BlueprintCallable, Category = "Base Helpers")
92 virtual bool SetInteractionHold(const EInteractionType Interaction, const bool bValue)
93 {
94 const bool bHold = GetInteractionData().SetInteractionHold(Interaction, bValue);
95 UpdateInteractionData();
96 return bHold;
97 };
98
99 UFUNCTION(BlueprintCallable, Category = "Base Helpers")
100 virtual TArray<FInteractionType> GetVisibleInteractions()
101 {
102 TArray<FInteractionType> Types;
103 return GetInteractionData().GetVisibleInteractions();
104 };
105
106 UFUNCTION(BlueprintCallable, Category = "Base Helpers")
107 virtual bool GetInteraction(FInteractionType& Type, const EInteractionType Interaction)
108 {
109 return GetInteractionData().GetInteraction(Type, Interaction);
110 };
111 UFUNCTION(BlueprintCallable, Category = "Base Helpers")
112 virtual bool GetDefaultInteraction(FInteractionType& Type)
113 {
114 UpdateInteractionData();
115 return GetInteractionData().GetDefaultInteraction(Type);
116 }
117};
EInteractionType
Definition BaseData.h:149
Definition InteractionInterface.h:18
Definition Interaction.Build.cs:6
Definition InteractionInterface.h:13
Definition BaseData.h:420
void SetOnlyInteractionVisible(const EInteractionType Interaction)
Definition BaseData.h:508
Definition BaseData.h:333