43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/Interface.h"
|
|
#include "Interactable.generated.h"
|
|
|
|
class ANakedDesireCharacter;
|
|
|
|
UINTERFACE(MinimalAPI, BlueprintType)
|
|
class UInteractable : public UInterface
|
|
{
|
|
GENERATED_BODY()
|
|
};
|
|
|
|
class NAKEDDESIRE_API IInteractable
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
// Returns true if this actor can currently be interacted with by the given player
|
|
UFUNCTION(BlueprintNativeEvent)
|
|
bool CanInteract(ANakedDesireCharacter* Player) const;
|
|
|
|
// Executes the interaction (called server-side)
|
|
UFUNCTION(BlueprintNativeEvent)
|
|
void Interact(ANakedDesireCharacter* Player);
|
|
|
|
// Text shown in the interaction prompt UI
|
|
UFUNCTION(BlueprintNativeEvent)
|
|
FText GetInteractionPrompt() const;
|
|
|
|
// Called (client-side) when this actor enters the player's proximity radius
|
|
UFUNCTION(BlueprintNativeEvent)
|
|
void ShowInteractionProximityHint();
|
|
|
|
// Called (client-side) when this actor becomes the focused interaction target
|
|
UFUNCTION(BlueprintNativeEvent)
|
|
void ShowInteractionFocusHint();
|
|
|
|
// Called (client-side) when this actor loses proximity or focus
|
|
UFUNCTION(BlueprintNativeEvent)
|
|
void HideInteractionHint();
|
|
}; |