50 lines
1.4 KiB
C++
50 lines
1.4 KiB
C++
// © 2025 Naked People Team. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "GameFramework/Actor.h"
|
|
#include "NakedDesire/Interaction/Interactable.h"
|
|
#include "ItemPickup.generated.h"
|
|
|
|
class UWidgetComponent;
|
|
class UBoxComponent;
|
|
class UClothingItemInstance;
|
|
|
|
UCLASS(Abstract)
|
|
class NAKEDDESIRE_API AItemPickup : public AActor, public IInteractable
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
AItemPickup();
|
|
|
|
public:
|
|
virtual void Interact_Implementation(ANakedDesireCharacter* Player) override;
|
|
virtual bool CanInteract_Implementation(ANakedDesireCharacter* Player) const override;
|
|
virtual void HideInteractionHint_Implementation() override;
|
|
virtual void ShowInteractionFocusHint_Implementation() override;
|
|
virtual void ShowInteractionProximityHint_Implementation() override;
|
|
|
|
void SetItem(UClothingItemInstance* InItem);
|
|
UClothingItemInstance* GetItem() const { return ClothingItemInstance; }
|
|
|
|
protected:
|
|
virtual void BeginPlay() override;
|
|
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
|
|
|
|
private:
|
|
UPROPERTY()
|
|
TObjectPtr<UClothingItemInstance> ClothingItemInstance;
|
|
|
|
UPROPERTY(EditDefaultsOnly)
|
|
TObjectPtr<UStaticMeshComponent> Mesh;
|
|
|
|
UPROPERTY(EditDefaultsOnly)
|
|
TObjectPtr<UBoxComponent> Collider;
|
|
|
|
UPROPERTY(EditDefaultsOnly)
|
|
TObjectPtr<UWidgetComponent> InteractionHint;
|
|
|
|
void ApplyOutline(UStaticMeshComponent* InMesh, bool bEnabled, int32 StencilValue);
|
|
};
|