Skip to content

Commit

Permalink
Fix menu for flipbook animation in sequencer
Browse files Browse the repository at this point in the history
  • Loading branch information
Maxwell21 committed Aug 18, 2018
1 parent 209d391 commit e585b2c
Showing 1 changed file with 41 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,31 @@ namespace FlipbookAnimationEditorConstants

#define LOCTEXT_NAMESPACE "FlipbookAnimationTrackEditor"

UPaperFlipbookComponent* AcquireFlipbookComponentFromObjectGuid(const FGuid& Guid, TSharedPtr<ISequencer> SequencerPtr)
{
UObject* BoundObject = SequencerPtr.IsValid() ? SequencerPtr->FindSpawnedObjectOrTemplate(Guid) : nullptr;

if (AActor* Actor = Cast<AActor>(BoundObject))
{
TInlineComponentArray<UPaperFlipbookComponent*> FlipbookComponents;
Actor->GetComponents(FlipbookComponents);

for (int32 j = 0; j < FlipbookComponents.Num(); ++j)
{
UPaperFlipbookComponent* FlipbookComp = FlipbookComponents[j];
if (FlipbookComp)
return FlipbookComp;
}
}
else if (UPaperFlipbookComponent* FlipbookComponent = Cast<UPaperFlipbookComponent>(BoundObject))
{
if (FlipbookComponent)
return FlipbookComponent;
}

return nullptr;
}

FFlipbookAnimationSection::FFlipbookAnimationSection(UMovieSceneSection& InSection, TWeakPtr<ISequencer> InSequencer)
: Section(*CastChecked<UMovieSceneFlipbookAnimationSection>(&InSection))
, Sequencer(InSequencer)
Expand Down Expand Up @@ -247,21 +272,25 @@ void FFlipbookAnimationTrackEditor::BuildObjectBindingTrackMenu(FMenuBuilder& Me
{
const TSharedPtr<ISequencer> ParentSequencer = GetSequencer();

// Load the asset registry module
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));
UPaperFlipbookComponent* PaperFlipbookComponent = AcquireFlipbookComponentFromObjectGuid(ObjectBinding, GetSequencer());
if (PaperFlipbookComponent)
{
// Load the asset registry module
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));

// Collect a full list of assets with the specified class
TArray<FAssetData> AssetDataList;
AssetRegistryModule.Get().GetAssetsByClass(UPaperFlipbook::StaticClass()->GetFName(), AssetDataList, true);
// Collect a full list of assets with the specified class
TArray<FAssetData> AssetDataList;
AssetRegistryModule.Get().GetAssetsByClass(UPaperFlipbook::StaticClass()->GetFName(), AssetDataList, true);

if (AssetDataList.Num())
{
UMovieSceneTrack* Track = nullptr;
if (AssetDataList.Num())
{
UMovieSceneTrack* Track = nullptr;

MenuBuilder.AddSubMenu(
LOCTEXT("AddAnimation", "Animation"), NSLOCTEXT("Sequencer", "AddAnimationTooltip", "Adds an animation track."),
FNewMenuDelegate::CreateRaw(this, &FFlipbookAnimationTrackEditor::AddAnimationSubMenu, ObjectBinding, Track)
);
MenuBuilder.AddSubMenu(
LOCTEXT("AddAnimation", "Animation"), NSLOCTEXT("Sequencer", "AddAnimationTooltip", "Adds an animation track."),
FNewMenuDelegate::CreateRaw(this, &FFlipbookAnimationTrackEditor::AddAnimationSubMenu, ObjectBinding, Track)
);
}
}
}
}
Expand Down

0 comments on commit e585b2c

Please sign in to comment.