// © 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 ClothingItemInstance; UPROPERTY(EditDefaultsOnly) TObjectPtr Mesh; UPROPERTY(EditDefaultsOnly) TObjectPtr Collider; UPROPERTY(EditDefaultsOnly) TObjectPtr InteractionHint; void ApplyOutline(UStaticMeshComponent* InMesh, bool bEnabled, int32 StencilValue); };