Fixed savegame
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -20,19 +20,6 @@ bool USaveSubsystem::SaveGame(const FString& SlotName) const
|
|||||||
return UGlobalSaveGameData::SaveGame(CurrentSave, SlotName);
|
return UGlobalSaveGameData::SaveGame(CurrentSave, SlotName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void USaveSubsystem::AddItem(const FItemSaveRecord& Record)
|
|
||||||
{
|
|
||||||
Items.Add(Record);
|
|
||||||
}
|
|
||||||
|
|
||||||
void USaveSubsystem::RemoveItem(const FGuid& InstanceId)
|
|
||||||
{
|
|
||||||
Items.RemoveAll([InstanceId](const FItemSaveRecord& Item)
|
|
||||||
{
|
|
||||||
return Item.InstanceId == InstanceId;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void USaveSubsystem::Initialize(FSubsystemCollectionBase& Collection)
|
void USaveSubsystem::Initialize(FSubsystemCollectionBase& Collection)
|
||||||
{
|
{
|
||||||
Super::Initialize(Collection);
|
Super::Initialize(Collection);
|
||||||
@@ -56,6 +43,16 @@ UGlobalSaveGameData* USaveSubsystem::GetCurrentSave()
|
|||||||
return CurrentSave;
|
return CurrentSave;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void USaveSubsystem::BP_LoadGame()
|
||||||
|
{
|
||||||
|
LoadGame();
|
||||||
|
}
|
||||||
|
|
||||||
|
void USaveSubsystem::BP_SaveGame()
|
||||||
|
{
|
||||||
|
SaveGame();
|
||||||
|
}
|
||||||
|
|
||||||
void USaveSubsystem::PopulateStartingData(UGlobalSaveGameData* Save) const
|
void USaveSubsystem::PopulateStartingData(UGlobalSaveGameData* Save) const
|
||||||
{
|
{
|
||||||
if (!Save)
|
if (!Save)
|
||||||
@@ -77,4 +74,4 @@ void USaveSubsystem::PopulateStartingData(UGlobalSaveGameData* Save) const
|
|||||||
Record.Init(Instance);
|
Record.Init(Instance);
|
||||||
Save->EquippedItems.Add(Record);
|
Save->EquippedItems.Add(Record);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,13 +19,16 @@ public:
|
|||||||
void LoadGame(const FString& SlotName = DefaultSaveSlotName);
|
void LoadGame(const FString& SlotName = DefaultSaveSlotName);
|
||||||
bool SaveGame(const FString& SlotName = DefaultSaveSlotName) const;
|
bool SaveGame(const FString& SlotName = DefaultSaveSlotName) const;
|
||||||
|
|
||||||
const TArray<FItemSaveRecord>& GetItems() const { return Items; }
|
|
||||||
void AddItem(const FItemSaveRecord& Record);
|
|
||||||
void RemoveItem(const FGuid& InstanceId);
|
|
||||||
|
|
||||||
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
|
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
|
||||||
|
|
||||||
UGlobalSaveGameData* GetCurrentSave();
|
UGlobalSaveGameData* GetCurrentSave();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
UFUNCTION(BlueprintCallable)
|
||||||
|
void BP_LoadGame();
|
||||||
|
|
||||||
|
UFUNCTION(BlueprintCallable)
|
||||||
|
void BP_SaveGame();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void PopulateStartingData(UGlobalSaveGameData* Save) const;
|
void PopulateStartingData(UGlobalSaveGameData* Save) const;
|
||||||
@@ -33,9 +36,6 @@ private:
|
|||||||
UPROPERTY()
|
UPROPERTY()
|
||||||
FString ActiveSlotName = DefaultSaveSlotName;
|
FString ActiveSlotName = DefaultSaveSlotName;
|
||||||
|
|
||||||
UPROPERTY()
|
|
||||||
TArray<FItemSaveRecord> Items;
|
|
||||||
|
|
||||||
UPROPERTY()
|
UPROPERTY()
|
||||||
TObjectPtr<UGlobalSaveGameData> CurrentSave;
|
TObjectPtr<UGlobalSaveGameData> CurrentSave;
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user