Completed phase 1

This commit is contained in:
2026-05-25 14:14:52 +03:00
parent 799fc8a4ae
commit 43ddad9217
22 changed files with 255 additions and 55 deletions
@@ -30,6 +30,5 @@ class NAKEDDESIRE_API AInteractableBase : public AActor, public IInteractionTarg
public:
AInteractableBase();
protected:
virtual void Tick(float DeltaSeconds) override;
};
@@ -3,3 +3,42 @@
#include "Wardrobe.h"
#include "Kismet/GameplayStatics.h"
#include "NakedDesire/SaveGame/GlobalSaveGameData.h"
#include "NakedDesire/SaveGame/ItemSaveRecord.h"
#include "NakedDesire/SaveGame/SaveSubsystem.h"
void AWardrobe::AddItem(UClothingItemInstance* ClothingItemInstance)
{
USaveSubsystem* SaveSubsystem = UGameplayStatics::GetGameInstance(GetWorld())->GetSubsystem<USaveSubsystem>();
ClothingItems.Push(ClothingItemInstance);
FItemSaveRecord ItemSaveRecord;
ItemSaveRecord.Init(ClothingItemInstance);
SaveSubsystem->GetCurrentSave()->WardrobeItems.Push(ItemSaveRecord);
}
void AWardrobe::RemoveItem(UClothingItemInstance* ClothingItemInstance) const
{
USaveSubsystem* SaveSubsystem = UGameplayStatics::GetGameInstance(GetWorld())->GetSubsystem<USaveSubsystem>();
SaveSubsystem->GetCurrentSave()->WardrobeItems.RemoveAll([ClothingItemInstance](const FItemSaveRecord& Item)
{
return Item.InstanceId == ClothingItemInstance->GetInstanceId();
});
}
void AWardrobe::BeginPlay()
{
Super::BeginPlay();
USaveSubsystem* SaveSubsystem = UGameplayStatics::GetGameInstance(GetWorld())->GetSubsystem<USaveSubsystem>();
UGlobalSaveGameData* SaveGame = SaveSubsystem->GetCurrentSave();
for (const FItemSaveRecord& ItemSaveRecord : SaveGame->WardrobeItems)
{
UClothingItemInstance* NewItemInstance = UClothingItemInstance::CreateFromSave(this, ItemSaveRecord);
ClothingItems.Push(NewItemInstance);
}
}
@@ -17,4 +17,9 @@ class NAKEDDESIRE_API AWardrobe : public AInteractableBase
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced)
TArray<TObjectPtr<UClothingItemInstance>> ClothingItems;
void AddItem(UClothingItemInstance* ClothingItemInstance);
void RemoveItem(UClothingItemInstance* ClothingItemInstance) const;
virtual void BeginPlay() override;
};