Save MVP player identity metadata
This commit is contained in:
@@ -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())
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user