Skip to content

USMGraphNode_AnyStateNode¶

Module: SMSystemEditor

#include <SMGraphNode_AnyStateNode.h>

Inherits from USMGraphNode_StateNodeBase, USMGraphNode_Base, ISMEditorGraphNode_StateBaseInterface, UEdGraphNode, ISMEditorGraphNodeInterface

Description¶

class USMGraphNode_AnyStateNode;

Nodes without a graph that just serve to transfer their transitions to all other USMGraphNode_StateNodeBase in a single SMGraph.

Public Functions¶

Name
virtual void AllocateDefaultPins() override
virtual void PostPlacedNewNode() override
virtual void PostPasteNode() override
virtual void PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) override
virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override
virtual void OnRenameNode(const FString & NewName) override
virtual FName GetFriendlyNodeName() const override
virtual void ResetCachedValues() override
virtual FString GetNodeName() const override
virtual void SetNodeName_Direct(const FString & InNewName) override
virtual bool CanExistAtRuntime() const override
virtual UClass * GetNodeClass() const override
virtual FString GetStateName() const override
FLinearColor GetAnyStateColor() const

Protected Functions¶

Name
virtual FLinearColor Internal_GetBackgroundColor() const override

Public Attributes¶

Name
FGameplayTagQuery AnyStateTagQuery
FLinearColor AnyStateColor
uint8 bOverrideColor
uint8 bAllowInitialReentry

Additional inherited members¶

Public Classes inherited from USMGraphNode_StateNodeBase

Name
struct FOutputStateArgs

Public Functions inherited from USMGraphNode_StateNodeBase

Name
virtual bool GetCanRenameNode() const override
virtual void AutowireNewNode(UEdGraphPin * FromPin) override
virtual void DestroyNode() override
virtual void PostEditChangeChainProperty(FPropertyChangedChainEvent & PropertyChangedEvent) override
virtual void PinConnectionListChanged(UEdGraphPin * Pin) override
virtual void ImportDeprecatedProperties() override
virtual void OnNodeMoved(const FVector2D & NewPosition, bool bMarkDirty) override
virtual void OnBoundGraphRenamed(UObject * OldOuter, const FName OldName) override
virtual void PreCompile(FSMKismetCompilerContext & CompilerContext) override
virtual void OnNodeSelectionChanged(bool bSelected, TOptional< bool > bHovered =TOptional< bool >()) override
virtual void ResetNodeName() override
virtual FGameplayTagContainer & GetAnyStateTags() override
virtual void SetAnyStateTags(const FGameplayTagContainer & InAnyStateTags) override
virtual void SetRuntimeDefaults(FSMState_Base & State) const
virtual bool IsEndState(bool bCheckAnyState =true) const
virtual bool HasInputConnections() const
virtual bool HasOutputConnections() const
bool ShouldDefaultTransitionsToParallel() const
bool ShouldExcludeFromAnyState() const
bool HasTransitionToNode(const UEdGraphNode * Node) const
bool HasTransitionFromNode(const UEdGraphNode * Node) const
USMGraphNode_Base * GetPreviousNode(int32 Index =0) const
USMGraphNode_Base * GetNextNode(int32 Index =0) const
USMGraphNode_StateNodeBase * GetPreviousState(int32 Index =0, bool bIncludeReroute =false, bool bIncludeEntryState =false) const
USMGraphNode_StateNodeBase * GetNextState(int32 Index =0, bool bIncludeReroute =false, bool bForwardLinkState =false) const
USMGraphNode_TransitionEdge * GetPreviousTransition(int32 Index =0) const
USMGraphNode_TransitionEdge * GetNextTransition(int32 Index =0) const
void GetOutputStates(TArray< USMGraphNode_StateNodeBase * > & OutStates, const FOutputStateArgs & OutputStateArgs =FOutputStateArgs()) const
void GetInputTransitions(TArray< USMGraphNode_TransitionEdge * > & OutTransitions) const
void GetOutputTransitions(TArray< USMGraphNode_TransitionEdge * > & OutTransitions) const
int32 GetNumInputConnections() const
int32 GetNumOutputConnections() const
UEdGraphPin * GetConnectedEntryPin() const
FLinearColor GetBackgroundColorForNodeInstance(const USMNodeInstance * NodeInstance) const
const TSet< TObjectPtr< USMGraphNode_LinkStateNode > > & GetLinkStates() const
void RemoveInvalidLinkStates()
void RefreshConnectedTransitions()
FSMPropertyInteractionManager & GetPropertyInteractionManager() const

Friends inherited from USMGraphNode_StateNodeBase

Public Types inherited from USMGraphNode_Base

Name
enum uint8 ENodeReplicationEnableLevel

Public Functions inherited from USMGraphNode_Base

Name
virtual void Serialize(FArchive & Ar) override
virtual void PostLoad() override
virtual ~USMGraphNode_Base() override
virtual void DestroyNode() override
virtual void PostEditUndo() override
virtual TSharedPtr< INameValidatorInterface > MakeNameValidator() const override
virtual UObject * GetJumpTargetForDoubleClick() const override
virtual bool CanJumpToDefinition() const override
virtual void JumpToDefinition() const override
virtual bool CanCreateUnderSpecifiedSchema(const UEdGraphSchema * Schema) const override
virtual void ReconstructNode() override
virtual void PinConnectionListChanged(UEdGraphPin * Pin) override
virtual void ValidateNodeDuringCompilation(FCompilerResultsLog & MessageLog) const override
virtual TScriptInterface< ISMEditorGraphPropertyNodeInterface > GetEditorGraphProperty(FName PropertyName, const USMNodeInstance * NodeInstance, int32 ArrayIndex) const override
virtual TArray< TScriptInterface< ISMEditorGraphPropertyNodeInterface > > GetEditorGraphPropertyAsArray(FName PropertyName, const USMNodeInstance * NodeInstance, int32 ArrayIndex) const override
virtual TArray< TScriptInterface< ISMEditorGraphPropertyNodeInterface > > GetAllEditorGraphProperties(const USMNodeInstance * NodeInstance) const override
virtual USMNodeInstance * AddStackNode(TSubclassOf< USMNodeInstance > NodeClass, int32 StackIndex) override
virtual void RemoveStackNode(int32 StackIndex) override
virtual void ClearStackNodes() override
virtual bool SetNodeName(const FString & NewName, FText & OutErrorMessage) override
virtual void ResetNodeName() override
virtual TScriptInterface< ISMEditorGraphNode_StateBaseInterface > AsStateBaseInterface() override
virtual void PreCompile(FSMKismetCompilerContext & CompilerContext)
virtual void PreCompileNodeInstanceValidation(FCompilerResultsLog & CompilerContext, USMCompilerLog * CompilerLog, USMGraphNode_Base * OwningNode =nullptr)
virtual void OnCompile(FSMKismetCompilerContext & CompilerContext)
virtual void OnBoundGraphRenamed(UObject * OldOuter, const FName OldName)
virtual void ResetDebugState()
virtual void OnWidgetConstruct()
virtual void UpdateTime(float DeltaTime)
virtual void CheckSetErrorMessages()
virtual void ResetLogMessages()
virtual void OnNodeSelectionChanged(bool bSelected, TOptional< bool > bHovered =TOptional< bool >())
void UpdateErrorMessageFromLogs()
void AddNodeLogMessage(const FSMGraphNodeLog & Message)
bool TryGetNodeLogMessage(FString & OutMessage, int32 & OutSeverity) const
virtual void OnNodeMoved(const FVector2D & NewPosition, bool bMarkDirty)
void SetReadOnlyNodePosition()
virtual void GoToLocalGraph() const
virtual bool CanGoToLocalGraph() const
virtual TArray< TSubclassOf< USMGraphNode_Base > > GetAllowedDuplicateNodeNameTypes() const
virtual const FGuid & GetCorrectNodeGuid(bool * bIsRunTimeGuid =nullptr) const
const FGuid & GetRuntimeNodeGuidChecked() const
virtual void InitTemplate()
virtual void DestroyTemplate()
void RunAllConstructionScripts()
virtual bool CanRunConstructionScripts() const
virtual bool DoesNodePossiblyHaveConstructionScripts() const
bool IsRunningConstructionScripts() const
virtual FName GetNodeClassPropertyName() const
virtual void SetNodeClass(UClass * Class)
UClass * GetDefaultNodeClass() const
bool IsUsingDefaultNodeClass() const
bool IsNodeClassNative() const
virtual bool IsNodeFastPathEnabled() const
ENodeReplicationEnableLevel GetNodeReplicationEnableLevel() const
virtual FName GetNodeTemplatePropertyName()
virtual FName GetNodeStackPropertyName()
virtual FName GetNodeStackElementClassPropertyName() const
USMNodeInstance * GetNodeTemplate() const
USMNodeInstance * GetNodeTemplateFromGuid(const FGuid & Guid) const
virtual bool AreTemplatesFullyLoaded() const
virtual int32 GetIndexOfTemplate(const FGuid & Guid) const
virtual USMNodeInstance * GetTemplateFromIndex(int32 Index) const
virtual void GetAllNodeTemplates(TArray< USMNodeInstance * > & OutNodeInstances) const
T * GetNodeTemplateAs(bool bCheck =false) const
USMGraph * GetOwningStateMachineGraph() const
UEdGraph * GetBoundGraph() const
void ClearBoundGraph()
void CreateGraphPropertyGraphs(bool bGenerateNewGuids =false)
bool CreateGraphPropertyGraphsForTemplate(USMNodeInstance * Template, bool bGenerateNewGuids, TSet< FGuid > & LiveGuidsInOut, bool bResetNonVariableGuids =false)
void RemoveGraphPropertyGraphsForTemplate(USMNodeInstance * Template)
USMPropertyGraph * GetGraphPropertyGraph(const FGuid & Guid) const
USMGraphK2Node_PropertyNode_Base * GetGraphPropertyNode(const FGuid & Guid) const
USMGraphK2Node_PropertyNode_Base * GetGraphPropertyNode(const FName & VariableName, const USMNodeInstance * TemplateMatch =nullptr, int32 Index =INDEX_NONE) const
USMGraphK2Node_PropertyNode_Base * GetGraphPropertyNode(const FName & VariableName, const TOptional< FGuid > & InTemplateGuid, int32 Index =INDEX_NONE) const
TArray< USMGraphK2Node_PropertyNode_Base * > GetGraphPropertyNodes(const FName & VariableName, const USMNodeInstance * TemplateMatch =nullptr, int32 Index =INDEX_NONE) const
TArray< USMGraphK2Node_PropertyNode_Base * > GetGraphPropertyNodes(const FName & VariableName, const TOptional< FGuid > & InTemplateGuid, int32 Index =INDEX_NONE) const
const TMap< FGuid, TObjectPtr< USMPropertyGraph > > & GetAllPropertyGraphs() const
const TMap< FGuid, TObjectPtr< USMGraphK2Node_PropertyNode_Base > > & GetAllPropertyGraphNodes() const
TArray< USMGraphK2Node_PropertyNode_Base * > GetAllPropertyGraphNodesAsArray(const USMNodeInstance * TemplateMatch =nullptr) const
void InitPropertyGraphNodes(USMPropertyGraph * PropertyGraph, FSMGraphProperty_Base * Property)
void RefreshAllProperties(bool bModify, bool bSetFromPinFirst =true)
void RefreshPropertyByGuid(const FGuid & Guid, bool bModify, bool bSetFromPinFirst =true)
void ForceRecreateProperties()
void SetGraphPropertyDefaultsFromPins()
void SetPinsFromGraphProperties(bool bUseArchetype)
USMGraphK2Node_PropertyNode_Base * GetPropertyNodeUnderMouse() const
virtual bool SupportsPropertyGraphs() const
virtual UEdGraphPin * GetInputPin() const
virtual UEdGraphPin * GetOutputPin() const
UEdGraphNode * GetOutputNode() const
void GetAllOutputNodes(TArray< UEdGraphNode * > & OutNodes) const
void GetAllOutputNodesAs(TArray< T * > & OutNodes) const
virtual FLinearColor GetBackgroundColor() const
virtual FLinearColor GetActiveBackgroundColor() const
virtual const FSlateBrush * GetNodeIcon() const
bool CanPlaceBreakpoints() const
FBlueprintBreakpoint * GetBreakpoint() const
void CreateBreakpoint(bool bEnabled =true)
void CreateBreakpointForSingleStep()
bool HasTemporaryBreakpoint() const
void RemoveBreakpoint()
void SetBreakpointEnabled(bool bEnabled)
FSMNode_Base * FindRuntimeNode() const
FSMNode_Base * GetDebugNode() const
float GetDebugTime() const
virtual float GetMaxDebugTime() const
virtual bool IsDebugNodeActive() const
virtual bool WasDebugNodeActive() const
bool ConvertToCurrentVersion(bool bOnlyOnLoad =true)
bool SetToCurrentVersion()
void ForceSetVersion(int32 NewVersion)
virtual void ImportDeprecatedProperties()
bool IsBeingPasted() const
bool IsPreCompiling() const
bool IsEditUndo() const
void RequestSlateRefresh(bool bFullRefresh =false)
void RecordDuplicatedNodeGuid(const FGuid & InGuid)
void NotifySwapPropertyGraphArrayElements(const FName & InPropertyName, int32 IndexA, int32 IndexB, USMNodeInstance * InNodeInstance)
void RunPreCompileValidateForNodeInstance(const USMNodeInstance * InNodeInstance, USMCompilerLog * InCompilerLog)

Protected Functions inherited from USMGraphNode_Base

Name
void DestroyAllPropertyGraphs()
virtual void PlaceDefaultInstanceNodes()
virtual void RunAllConstructionScripts_Internal()
virtual void RestoreArchetypeValuesPriorToConstruction()
bool IsSafeToConditionallyCompile(EPropertyChangeType::Type ChangeType) const
virtual void OnConvertToCurrentVersion(bool bOnlyOnLoad)
const FLinearColor * GetCustomBackgroundColor(const USMNodeInstance * NodeInstance =nullptr) const
void RemovePropertyGraph(USMPropertyGraph * PropertyGraph, bool RemoveFromMaps)
void HandlePropertyGraphArrayRemoval(TArray< FSMGraphProperty_Base * > & GraphProperties, TArray< TSharedPtr< FSMGraphProperty > > & TempGraphProperties, FProperty * TargetProperty, int32 RemovalIndex, int32 ArraySize, const FSMGraphProperty * OverrideGraphProperty, USMNodeInstance * Template)
void HandlePropertyGraphArrayInsertion(TArray< FSMGraphProperty_Base * > & GraphProperties, TArray< TSharedPtr< FSMGraphProperty > > & TempGraphProperties, FProperty * TargetProperty, int32 InsertionIndex, int32 ArraySize, const FSMGraphProperty * OverrideGraphProperty, USMNodeInstance * Template, bool bDuplicate =false)
void HandlePropertyGraphArraySwap(TArray< FSMGraphProperty_Base * > & GraphProperties, int32 IndexA, int32 IndexB, USMNodeInstance * Template)
void HandleOnPropertyChangedEvent(UObject * InObject, FPropertyChangedEvent & InPropertyChangedEvent)
int32 GetLoadedVersion() const

Public Attributes inherited from USMGraphNode_Base

Protected Attributes inherited from USMGraphNode_Base

Name
bool bPostEditChangeConstructionRequiresFullRefresh
TArray< FSMGraphNodeLog > CollectedLogs
TObjectPtr< UEdGraph > BoundGraph
FVector2D NodePosition
TObjectPtr< USMNodeInstance > NodeInstanceTemplate
TMap< FGuid, TObjectPtr< USMPropertyGraph > > GraphPropertyGraphs
TMap< FGuid, TObjectPtr< USMGraphK2Node_PropertyNode_Base > > GraphPropertyNodes
TMap< FGuid, TObjectPtr< USMNodeInstance > > GraphPropertyTemplates
TSet< FGuid > DuplicatedNodeGuids
TSharedPtr< FSlateBrush > CachedBrush
FString CachedTexture
FVector2D CachedTextureSize
FLinearColor CachedNodeTintColor
float DebugTotalTime
float MaxTimeToShowDebug
uint32 bIsDebugActive
uint32 bWasDebugActive
uint32 bIsPreCompiling
uint32 bJustPasted
uint32 bIsEditUndo
uint32 bCreatePropertyGraphsOnPropertyChange
uint32 bCreatePropertyGraphsSilently
uint32 bChangeFromRedirect

Friends inherited from USMGraphNode_Base

Name
class SGraphNode_BaseNode

Public Functions inherited from ISMEditorGraphNode_StateBaseInterface

Name
virtual FGameplayTagContainer & GetAnyStateTags() =0
images/classes/SMEditorGraphNode_StateBaseInterface/img/nd_img_GetAnyStateTags.png
virtual void SetAnyStateTags(const FGameplayTagContainer & InAnyStateTags) =0
images/classes/SMEditorGraphNode_StateBaseInterface/img/nd_img_SetAnyStateTags.png

Public Functions inherited from ISMEditorGraphNodeInterface

Name
virtual TScriptInterface< ISMEditorGraphPropertyNodeInterface > GetEditorGraphProperty(FName PropertyName, const USMNodeInstance * NodeInstance, int32 ArrayIndex =0) const =0
images/classes/SMEditorGraphNodeInterface/img/nd_img_GetEditorGraphProperty.png
virtual TArray< TScriptInterface< ISMEditorGraphPropertyNodeInterface > > GetEditorGraphPropertyAsArray(FName PropertyName, const USMNodeInstance * NodeInstance, int32 ArrayIndex =-1) const =0
images/classes/SMEditorGraphNodeInterface/img/nd_img_GetEditorGraphPropertyAsArray.png
virtual TArray< TScriptInterface< ISMEditorGraphPropertyNodeInterface > > GetAllEditorGraphProperties(const USMNodeInstance * NodeInstance) const =0
images/classes/SMEditorGraphNodeInterface/img/nd_img_GetAllEditorGraphProperties.png
virtual USMNodeInstance * AddStackNode(TSubclassOf< USMNodeInstance > NodeClass, int32 StackIndex =INDEX_NONE) =0
virtual void RemoveStackNode(int32 StackIndex =INDEX_NONE) =0
virtual void ClearStackNodes() =0
virtual bool SetNodeName(const FString & NewName, FText & OutErrorMessage) =0
images/classes/SMEditorGraphNodeInterface/img/nd_img_SetNodeName.png
virtual void ResetNodeName() =0
images/classes/SMEditorGraphNodeInterface/img/nd_img_ResetNodeName.png
virtual TScriptInterface< ISMEditorGraphNode_StateBaseInterface > AsStateBaseInterface() =0
images/classes/SMEditorGraphNodeInterface/img/nd_img_AsStateBaseInterface.png

Public Functions Documentation¶

function AllocateDefaultPins¶

virtual void AllocateDefaultPins() override

Reimplements: USMGraphNode_StateNodeBase::AllocateDefaultPins


function PostPlacedNewNode¶

virtual void PostPlacedNewNode() override

Reimplements: USMGraphNode_StateNodeBase::PostPlacedNewNode


function PostPasteNode¶

virtual void PostPasteNode() override

Reimplements: USMGraphNode_StateNodeBase::PostPasteNode


function PostEditChangeProperty¶

virtual void PostEditChangeProperty(
    FPropertyChangedEvent & PropertyChangedEvent
) override

Reimplements: USMGraphNode_Base::PostEditChangeProperty


function GetNodeTitle¶

virtual FText GetNodeTitle(
    ENodeTitleType::Type TitleType
) const override

Reimplements: USMGraphNode_StateNodeBase::GetNodeTitle


function OnRenameNode¶

virtual void OnRenameNode(
    const FString & NewName
) override

Reimplements: USMGraphNode_StateNodeBase::OnRenameNode


function GetFriendlyNodeName¶

inline virtual FName GetFriendlyNodeName() const override

Reimplements: USMGraphNode_Base::GetFriendlyNodeName


function ResetCachedValues¶

virtual void ResetCachedValues() override

Reset any cached values saved. Note this is for UI related caching and won't run by default without the editor.

Reimplements: USMGraphNode_Base::ResetCachedValues


function GetNodeName¶

inline virtual FString GetNodeName() const override

Retrieve the node name assigned in the editor. This is generally the graph name contained in the node and what is assigned to the run-time variation of the node.

Return: The node name used in the editor.

Note:

This isn't guaranteed to be the same result that USMNodeInstance::GetNodeName() returns since this method can be called before the run-time node is created. Additionally some names may later be adjusted by the compiler.

Reimplements: USMGraphNode_Base::GetNodeName


function SetNodeName_Direct¶

virtual void SetNodeName_Direct(
    const FString & InNewName
) override

Set the name of the node without performing sanitization or validation, typically renaming the graph. Instead of calling this method SetNodeName() should be used instead.

Reimplements: USMGraphNode_Base::SetNodeName_Direct


function CanExistAtRuntime¶

inline virtual bool CanExistAtRuntime() const override

If this is a node that gets compiled into the runtime blueprint.

Reimplements: USMGraphNode_Base::CanExistAtRuntime


function GetNodeClass¶

virtual UClass * GetNodeClass() const override

Return the correct node class. This should be a TSubClass property in child nodes.

Reimplements: USMGraphNode_Base::GetNodeClass


function GetStateName¶

virtual FString GetStateName() const override

Reimplements: USMGraphNode_StateNodeBase::GetStateName


function GetAnyStateColor¶

FLinearColor GetAnyStateColor() const

The color is based on the hash of the query, the editor settings, or a custom color.


Protected Functions Documentation¶

function Internal_GetBackgroundColor¶

virtual FLinearColor Internal_GetBackgroundColor() const override

Reimplements: USMGraphNode_StateNodeBase::Internal_GetBackgroundColor


Public Attributes Documentation¶

variable AnyStateTagQuery¶

FGameplayTagQuery AnyStateTagQuery;

Define a query to limit the number of states impacted by this Any State node. Add tags to each state's AnyStateTags. Only valid in the editor.


variable AnyStateColor¶

FLinearColor AnyStateColor;

Chose the color of the Any State, will override any tag colors.


variable bOverrideColor¶

uint8 bOverrideColor;

Manually choose a color for this Any State.


variable bAllowInitialReentry¶

uint8 bAllowInitialReentry;

Allows the initial transitions to evaluate even when the active state is an initial state of this node. Default behavior prevents this.


Private Attributes Documentation¶

variable NodeName¶

FText NodeName;

variable CachedColor¶

TOptional< FLinearColor > CachedColor;