Completed phase 1
This commit is contained in:
@@ -8,10 +8,10 @@
|
||||
UGlobalSaveGameData* UGlobalSaveGameData::CreateNewSaveGame()
|
||||
{
|
||||
UGlobalSaveGameData* NewSave = Cast<UGlobalSaveGameData>(UGameplayStatics::CreateSaveGameObject(StaticClass()));
|
||||
NewSave->Money = STARTING_MONEY;
|
||||
|
||||
if (!NewSave)
|
||||
return nullptr;
|
||||
|
||||
NewSave->Money = STARTING_MONEY;
|
||||
|
||||
return NewSave;
|
||||
}
|
||||
@@ -41,12 +41,7 @@ UGlobalSaveGameData* UGlobalSaveGameData::LoadGame(const FString& SlotName)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool UGlobalSaveGameData::SaveGame(const FString& SlotName)
|
||||
bool UGlobalSaveGameData::SaveGame(UGlobalSaveGameData* SaveGameData, const FString& SlotName)
|
||||
{
|
||||
if (UGlobalSaveGameData* Save = CreateNewSaveGame())
|
||||
{
|
||||
return UGameplayStatics::SaveGameToSlot(Save, SlotName, SLOT_PLAYER);
|
||||
}
|
||||
|
||||
return false;
|
||||
return UGameplayStatics::SaveGameToSlot(SaveGameData, SlotName, SLOT_PLAYER);
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ class NAKEDDESIRE_API UGlobalSaveGameData : public USaveGame
|
||||
public:
|
||||
static UGlobalSaveGameData* LoadOrCreateSaveGame(const FString& SlotName = DefaultSaveSlotName);
|
||||
static UGlobalSaveGameData* LoadGame(const FString& SlotName = DefaultSaveSlotName);
|
||||
static bool SaveGame(const FString& SlotName = DefaultSaveSlotName);
|
||||
static bool SaveGame(UGlobalSaveGameData* SaveGameData, const FString& SlotName = DefaultSaveSlotName);
|
||||
|
||||
UPROPERTY(SaveGame)
|
||||
bool HaveSeenTutorial = false;
|
||||
@@ -31,6 +31,9 @@ public:
|
||||
UPROPERTY(SaveGame)
|
||||
TArray<FItemSaveRecord> EquippedItems;
|
||||
|
||||
UPROPERTY(SaveGame)
|
||||
TArray<FItemSaveRecord> DroppedItems;
|
||||
|
||||
UPROPERTY(SaveGame)
|
||||
int32 DaysPassed = 0;
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "NakedDesire/Clothing/ClothingItemInstance.h"
|
||||
#include "NakedDesire/Clothing/ClothingItem.h"
|
||||
#include "ItemSaveRecord.generated.h"
|
||||
|
||||
class UClothingItem;
|
||||
class UClothingItemInstance;
|
||||
|
||||
USTRUCT()
|
||||
struct NAKEDDESIRE_API FItemSaveRecord
|
||||
@@ -21,4 +23,16 @@ struct NAKEDDESIRE_API FItemSaveRecord
|
||||
|
||||
UPROPERTY(SaveGame)
|
||||
FGuid ParentId;
|
||||
|
||||
UPROPERTY(SaveGame)
|
||||
FTransform WorldTransform;
|
||||
|
||||
void Init(const UClothingItemInstance* ClothingItemInstance);
|
||||
};
|
||||
|
||||
inline void FItemSaveRecord::Init(const UClothingItemInstance* ClothingItemInstance)
|
||||
{
|
||||
InstanceId = ClothingItemInstance->GetInstanceId();
|
||||
Definition = ClothingItemInstance->GetClothingItem();
|
||||
Condition = ClothingItemInstance->Condition;
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
|
||||
void USaveSubsystem::LoadGame(const FString& SlotName)
|
||||
{
|
||||
UGlobalSaveGameData* Save = UGlobalSaveGameData::LoadGame(SlotName);
|
||||
CurrentSave = UGlobalSaveGameData::LoadGame(SlotName);
|
||||
}
|
||||
|
||||
bool USaveSubsystem::SaveGame(const FString& SlotName)
|
||||
bool USaveSubsystem::SaveGame(const FString& SlotName) const
|
||||
{
|
||||
return UGlobalSaveGameData::SaveGame(SlotName);
|
||||
return UGlobalSaveGameData::SaveGame(CurrentSave, SlotName);
|
||||
}
|
||||
|
||||
void USaveSubsystem::AddItem(const FItemSaveRecord& Record)
|
||||
@@ -31,3 +31,13 @@ void USaveSubsystem::Initialize(FSubsystemCollectionBase& Collection)
|
||||
|
||||
LoadGame();
|
||||
}
|
||||
|
||||
UGlobalSaveGameData* USaveSubsystem::GetCurrentSave()
|
||||
{
|
||||
if (!CurrentSave)
|
||||
{
|
||||
CurrentSave = UGlobalSaveGameData::LoadOrCreateSaveGame(ActiveSlotName);
|
||||
}
|
||||
|
||||
return CurrentSave;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ class NAKEDDESIRE_API USaveSubsystem : public UGameInstanceSubsystem
|
||||
|
||||
public:
|
||||
void LoadGame(const FString& SlotName = DefaultSaveSlotName);
|
||||
bool SaveGame(const FString& SlotName = DefaultSaveSlotName);
|
||||
bool SaveGame(const FString& SlotName = DefaultSaveSlotName) const;
|
||||
|
||||
const TArray<FItemSaveRecord>& GetItems() const { return Items; }
|
||||
void AddItem(const FItemSaveRecord& Record);
|
||||
@@ -23,6 +23,8 @@ public:
|
||||
|
||||
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
|
||||
|
||||
UGlobalSaveGameData* GetCurrentSave();
|
||||
|
||||
private:
|
||||
UPROPERTY()
|
||||
FString ActiveSlotName = DefaultSaveSlotName;
|
||||
|
||||
Reference in New Issue
Block a user