// © 2025 Naked People Team. All Rights Reserved. #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(); 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(); SaveSubsystem->GetCurrentSave()->WardrobeItems.RemoveAll([ClothingItemInstance](const FItemSaveRecord& Item) { return Item.InstanceId == ClothingItemInstance->GetInstanceId(); }); } void AWardrobe::BeginPlay() { Super::BeginPlay(); USaveSubsystem* SaveSubsystem = UGameplayStatics::GetGameInstance(GetWorld())->GetSubsystem(); UGlobalSaveGameData* SaveGame = SaveSubsystem->GetCurrentSave(); for (const FItemSaveRecord& ItemSaveRecord : SaveGame->WardrobeItems) { UClothingItemInstance* NewItemInstance = UClothingItemInstance::CreateFromSave(this, ItemSaveRecord); ClothingItems.Push(NewItemInstance); } }