This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AgrarianGameArchive/Source/AgrarianGame/AgrarianPersistentActorComponent.cpp
T

45 lines
1.0 KiB
C++

// Copyright Pacificao. All Rights Reserved.
#include "AgrarianPersistentActorComponent.h"
UAgrarianPersistentActorComponent::UAgrarianPersistentActorComponent()
{
PrimaryComponentTick.bCanEverTick = false;
}
bool UAgrarianPersistentActorComponent::IsSaveable() const
{
return ActorTypeId != NAME_None && GetOwner() != nullptr;
}
FAgrarianSavedWorldActor UAgrarianPersistentActorComponent::CaptureSaveState() const
{
FAgrarianSavedWorldActor SavedActor;
SavedActor.ActorTypeId = ActorTypeId;
SavedActor.StringState = StringState;
SavedActor.NumberState = NumberState;
if (bSaveTransform && GetOwner())
{
SavedActor.Transform = GetOwner()->GetActorTransform();
}
return SavedActor;
}
void UAgrarianPersistentActorComponent::ApplySaveState(const FAgrarianSavedWorldActor& SavedActor)
{
StringState = SavedActor.StringState;
NumberState = SavedActor.NumberState;
if (ActorTypeId == NAME_None)
{
ActorTypeId = SavedActor.ActorTypeId;
}
if (bSaveTransform && GetOwner())
{
GetOwner()->SetActorTransform(SavedActor.Transform);
}
}