Files
Naked-Desire/Source/NakedDesire/Interactables/ItemPickup.h
T
2026-06-03 15:17:02 +03:00

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);
};