75 lines
2.2 KiB
C++
75 lines
2.2 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "Sections/MovieSceneCameraShakeSection.h"
|
|
#include "UObject/SequencerObjectVersion.h"
|
|
#include "MovieSceneTracksComponentTypes.h"
|
|
|
|
#include UE_INLINE_GENERATED_CPP_BY_NAME(MovieSceneCameraShakeSection)
|
|
|
|
|
|
UMovieSceneCameraShakeSection::UMovieSceneCameraShakeSection(const FObjectInitializer& ObjectInitializer)
|
|
: Super( ObjectInitializer )
|
|
{
|
|
ShakeClass_DEPRECATED = nullptr;
|
|
PlayScale_DEPRECATED = 1.f;
|
|
PlaySpace_DEPRECATED = ECameraShakePlaySpace::CameraLocal;
|
|
UserDefinedPlaySpace_DEPRECATED = FRotator::ZeroRotator;
|
|
|
|
EvalOptions.EnableAndSetCompletionMode
|
|
(GetLinkerCustomVersion(FSequencerObjectVersion::GUID) < FSequencerObjectVersion::WhenFinishedDefaultsToProjectDefault ?
|
|
EMovieSceneCompletionMode::RestoreState :
|
|
EMovieSceneCompletionMode::ProjectDefault);
|
|
}
|
|
|
|
void UMovieSceneCameraShakeSection::PostLoad()
|
|
{
|
|
if (ShakeClass_DEPRECATED != nullptr)
|
|
{
|
|
ShakeData.ShakeClass = ShakeClass_DEPRECATED;
|
|
}
|
|
|
|
if (PlayScale_DEPRECATED != 1.f)
|
|
{
|
|
ShakeData.PlayScale = PlayScale_DEPRECATED;
|
|
}
|
|
|
|
if (PlaySpace_DEPRECATED != ECameraShakePlaySpace::CameraLocal)
|
|
{
|
|
ShakeData.PlaySpace = PlaySpace_DEPRECATED;
|
|
}
|
|
|
|
if (UserDefinedPlaySpace_DEPRECATED != FRotator::ZeroRotator)
|
|
{
|
|
ShakeData.UserDefinedPlaySpace = UserDefinedPlaySpace_DEPRECATED;
|
|
}
|
|
|
|
Super::PostLoad();
|
|
}
|
|
|
|
UObject* UMovieSceneCameraShakeSection::GetSourceObject() const
|
|
{
|
|
return ShakeData.ShakeClass;
|
|
}
|
|
|
|
void UMovieSceneCameraShakeSection::ImportEntityImpl(UMovieSceneEntitySystemLinker* EntityLinker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity)
|
|
{
|
|
using namespace UE::MovieScene;
|
|
|
|
if (!ShakeData.ShakeClass)
|
|
{
|
|
return;
|
|
}
|
|
|
|
const FBuiltInComponentTypes* BuiltInComponents = FBuiltInComponentTypes::Get();
|
|
const FMovieSceneTracksComponentTypes* TrackComponents = FMovieSceneTracksComponentTypes::Get();
|
|
|
|
const FGuid ObjectBindingID = Params.GetObjectBindingID();
|
|
FMovieSceneCameraShakeComponentData ComponentData(ShakeData, *this);
|
|
|
|
OutImportedEntity->AddBuilder(
|
|
FEntityBuilder()
|
|
.AddConditional(BuiltInComponents->GenericObjectBinding, ObjectBindingID, ObjectBindingID.IsValid())
|
|
.Add(TrackComponents->CameraShake, ComponentData)
|
|
);
|
|
}
|