// © 2025 Naked People Team. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "NakedDesire/Player/PrivateBodyPartType.h"
#include "NakedDesire/MissionBuilder/GoalRestriction.h"
#include "ExposeBodyPartRestriction.generated.h"

class UClothingItemInstance;

UCLASS(EditInlineNew)
class NAKEDDESIRE_API UExposeBodyPartRestriction : public UGoalRestriction
{
	GENERATED_BODY()

	FDelegateHandle EquipClothingHandle;
	FDelegateHandle UnequipClothingHandle;

	UPROPERTY(EditDefaultsOnly)
	EPrivateBodyPartType BodyPart;

protected:
	virtual void Init(ANakedDesireCharacter* PlayerCharacter) override;
	virtual void Stop() override;
	virtual FText GetDescription() const override;

private:
	UFUNCTION()
	void EquipClothing(const UClothingItemInstance* ClothingItemInstance);

	UFUNCTION()
	void UnequipClothing(const UClothingItemInstance* ClothingItemInstance);
	
	void CheckClothing();
};
