Add placed actor persistence foundation
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user