44 lines
1015 B
C++
44 lines
1015 B
C++
// © 2025 Naked People Team. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "CommonUserWidget.h"
|
|
#include "NakedDesire/Clothing/ClothingSlotType.h"
|
|
#include "EquipmentSlotMenuWidget.generated.h"
|
|
|
|
class ANakedDesireCharacter;
|
|
class UButton;
|
|
|
|
UCLASS(Abstract)
|
|
class NAKEDDESIRE_API UEquipmentSlotMenuWidget : public UCommonUserWidget
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
// bInAtWardrobe makes Remove store the garment in the wardrobe instead of dropping it (§6.5).
|
|
void Init(EClothingSlotType InSlotType, bool bInAtWardrobe = false);
|
|
|
|
EClothingSlotType GetSlotType() const { return SlotType; }
|
|
|
|
DECLARE_MULTICAST_DELEGATE(FOnActionPerformed);
|
|
FOnActionPerformed OnActionPerformed;
|
|
|
|
protected:
|
|
virtual void NativeConstruct() override;
|
|
|
|
private:
|
|
UPROPERTY(meta = (BindWidget))
|
|
TObjectPtr<UButton> RemoveClothingBtn;
|
|
|
|
UPROPERTY()
|
|
TObjectPtr<ANakedDesireCharacter> Player;
|
|
|
|
UPROPERTY()
|
|
EClothingSlotType SlotType;
|
|
|
|
bool bAtWardrobe = false;
|
|
|
|
UFUNCTION()
|
|
void OnRemoveClothingClicked();
|
|
}; |