// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. #pragma once #include "AnimGraphNode_Base.h" #include "Animation/AnimNode_SequencePlayer.h" #include "EdGraph/EdGraphNodeUtils.h" // for FNodeTitleTextTable #include "AnimGraphNode_AssetPlayerBase.h" #include "AnimGraphNode_SequencePlayer.generated.h" UCLASS(MinimalAPI) class UAnimGraphNode_SequencePlayer : public UAnimGraphNode_AssetPlayerBase { GENERATED_UCLASS_BODY() UPROPERTY(EditAnywhere, Category=Settings) FAnimNode_SequencePlayer Node; // Sync group settings for this player. Sync groups keep related animations with different lengths synchronized. UPROPERTY(EditAnywhere, Category=Settings) FAnimationGroupReference SyncGroup; // UEdGraphNode interface virtual FLinearColor GetNodeTitleColor() const override; virtual FText GetTooltipText() const override; virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override; virtual FText GetMenuCategory() const override; // End of UEdGraphNode interface // UAnimGraphNode_Base interface virtual void ValidateAnimNodeDuringCompilation(class USkeleton* ForSkeleton, class FCompilerResultsLog& MessageLog) override; virtual void PreloadRequiredAssets() override; virtual void BakeDataDuringCompilation(class FCompilerResultsLog& MessageLog) override; virtual bool DoesSupportTimeForTransitionGetter() const override; virtual UAnimationAsset* GetAnimationAsset() const override; virtual const TCHAR* GetTimePropertyName() const override; virtual UScriptStruct* GetTimePropertyStruct() const override; virtual void GetAllAnimationSequencesReferred(TArray& ComplexAnims, TArray& AnimationSequences) const override; virtual void ReplaceReferredAnimations(const TMap& ComplexAnimsMap, const TMap& AnimSequenceMap) override; virtual void GetMenuActions(FBlueprintActionDatabaseRegistrar& ActionRegistrar) const override; virtual bool IsActionFilteredOut(class FBlueprintActionFilter const& Filter) override; // End of UAnimGraphNode_Base interface // UK2Node interface virtual void GetContextMenuActions(const FGraphNodeContextMenuBuilder& Context) const override; // End of UK2Node interface private: static FText GetTitleGivenAssetInfo(const FText& AssetName, bool bKnownToBeAdditive); /** Constructing FText strings can be costly, so we cache the node's title */ FNodeTitleTextTable CachedNodeTitles; /** Used for filtering in the Blueprint context menu when the sequence asset this node uses is unloaded */ FString UnloadedSkeletonName; };