Save MVP player identity metadata

This commit is contained in:
2026-05-18 19:10:44 -07:00
parent a23f886cfa
commit 1e0d326657
5 changed files with 105 additions and 1 deletions
@@ -326,6 +326,18 @@ bool UAgrarianPersistenceSubsystem::CapturePlayerIntoSave(const AAgrarianGameCha
FAgrarianSavedPlayer SavedPlayer;
SavedPlayer.PlayerId = GetPlayerPersistenceId(Character);
SavedPlayer.Identity.StablePlayerId = SavedPlayer.PlayerId;
SavedPlayer.Identity.LastKnownPawnName = Character->GetName();
if (const APlayerState* PlayerState = Character->GetPlayerState())
{
SavedPlayer.Identity.PlayerName = PlayerState->GetPlayerName();
const FUniqueNetIdRepl& UniqueId = PlayerState->GetUniqueId();
if (UniqueId.IsValid())
{
SavedPlayer.Identity.NetworkId = UniqueId->ToString();
SavedPlayer.Identity.bUsedNetworkId = true;
}
}
SavedPlayer.Transform = Character->GetActorTransform();
SavedPlayer.Survival = SurvivalComponent->Survival;
SavedPlayer.CareHistory = SurvivalComponent->CareHistory;
@@ -448,6 +460,12 @@ FString UAgrarianPersistenceSubsystem::GetPlayerPersistenceId(const AAgrarianGam
if (const APlayerState* PlayerState = Character->GetPlayerState())
{
const FUniqueNetIdRepl& UniqueId = PlayerState->GetUniqueId();
if (UniqueId.IsValid())
{
return UniqueId->ToString();
}
const FString PlayerName = PlayerState->GetPlayerName();
if (!PlayerName.IsEmpty())
{
+24
View File
@@ -7,6 +7,27 @@
#include "AgrarianTypes.h"
#include "AgrarianSaveGame.generated.h"
USTRUCT(BlueprintType)
struct FAgrarianSavedPlayerIdentity
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Save")
FString StablePlayerId;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Save")
FString PlayerName;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Save")
FString NetworkId;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Save")
bool bUsedNetworkId = false;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Save")
FString LastKnownPawnName;
};
USTRUCT(BlueprintType)
struct FAgrarianSavedPlayer
{
@@ -15,6 +36,9 @@ struct FAgrarianSavedPlayer
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Save")
FString PlayerId;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Save")
FAgrarianSavedPlayerIdentity Identity;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Save")
FTransform Transform;