Rework interaction system

This commit is contained in:
2026-05-28 21:53:34 +03:00
parent 891a0744a0
commit 6f0aa5274c
26 changed files with 496 additions and 216 deletions
@@ -0,0 +1,49 @@
// © 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;
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);
};