Files
UnrealEngine/Engine/Source/Runtime/MovieScene/Private/MovieSceneMetaData.cpp
2025-05-18 13:04:45 +08:00

100 lines
3.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MovieSceneMetaData.h"
#include "UObject/AssetRegistryTagsContext.h"
#include "UObject/Package.h"
#include "Engine/Level.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(MovieSceneMetaData)
const FName UMovieSceneMetaData::AssetRegistryTag_Author = "MovieSceneMetaData_Author";
const FName UMovieSceneMetaData::AssetRegistryTag_Created = "MovieSceneMetaData_Created";
const FName UMovieSceneMetaData::AssetRegistryTag_Notes = "MovieSceneMetaData_Notes";
UMovieSceneMetaData::UMovieSceneMetaData(const FObjectInitializer& ObjInit)
: Super(ObjInit)
, Created(0)
{
}
UMovieSceneMetaData* UMovieSceneMetaData::GetConfigInstance()
{
static UMovieSceneMetaData* ConfigInstance = NewObject<UMovieSceneMetaData>(GetTransientPackage(), "DefaultMovieSceneMetaData", RF_MarkAsRootSet);
return ConfigInstance;
}
UMovieSceneMetaData* UMovieSceneMetaData::CreateFromDefaults(UObject* Outer, FName Name)
{
if (Name != NAME_None)
{
check(!FindObject<UObject>(Outer, *Name.ToString()));
}
return CastChecked<UMovieSceneMetaData>(StaticDuplicateObject(GetConfigInstance(), Outer, Name, RF_NoFlags));
}
bool UMovieSceneMetaData::IsEmpty() const
{
return Author.IsEmpty() && Created == FDateTime(0) && Notes.IsEmpty();
}
FString UMovieSceneMetaData::GetAuthor() const
{
return Author;
}
FDateTime UMovieSceneMetaData::GetCreated() const
{
return Created;
}
FString UMovieSceneMetaData::GetNotes() const
{
return Notes;
}
void UMovieSceneMetaData::SetAuthor(FString InAuthor)
{
Author = InAuthor;
}
void UMovieSceneMetaData::SetCreated(FDateTime InCreated)
{
Created = InCreated;
}
void UMovieSceneMetaData::SetNotes(FString InNotes)
{
Notes = InNotes;
}
void UMovieSceneMetaData::ExtendAssetRegistryTags(FAssetRegistryTagsContext Context) const
{
IMovieSceneMetaDataInterface::ExtendAssetRegistryTags(Context);
Context.AddTag(FAssetRegistryTag(AssetRegistryTag_Author, Author, FAssetRegistryTag::ETagType::TT_Alphabetical, FAssetRegistryTag::TD_None));
Context.AddTag(FAssetRegistryTag(AssetRegistryTag_Created, Created.ToString(), FAssetRegistryTag::ETagType::TT_Chronological, FAssetRegistryTag::TD_Date | FAssetRegistryTag::TD_Time));
Context.AddTag(FAssetRegistryTag(AssetRegistryTag_Notes, Notes, FAssetRegistryTag::ETagType::TT_Alphabetical, FAssetRegistryTag::TD_None));
}
#if WITH_EDITOR
void UMovieSceneMetaData::ExtendAssetRegistryTagMetaData(TMap<FName, FAssetRegistryTagMetadata>& OutMetadata) const
{
OutMetadata.Add(AssetRegistryTag_Author, FAssetRegistryTagMetadata()
.SetDisplayName(NSLOCTEXT("MovieSceneMetaData", "Author_Label", "Author"))
.SetTooltip(NSLOCTEXT("MovieSceneMetaData", "Author_Tip", "Author of this metadata"))
);
OutMetadata.Add(AssetRegistryTag_Created, FAssetRegistryTagMetadata()
.SetDisplayName(NSLOCTEXT("MovieSceneMetaData", "Created_Label", "Created"))
.SetTooltip(NSLOCTEXT("MovieSceneMetaData", "Created_Tip", "The date that this metadata was created"))
);
OutMetadata.Add(AssetRegistryTag_Notes, FAssetRegistryTagMetadata()
.SetDisplayName(NSLOCTEXT("MovieSceneMetaData", "Notes_Label", "Notes"))
.SetTooltip(NSLOCTEXT("MovieSceneMetaData", "Notes_Tip", "Notes for this metadata"))
);
}
#endif