Skip to content

FSMGraphProperty_Base

Module: SMSystem

#include <SMGraphProperty_Base.h>

Inherits from FSMGraphProperty_Base_Runtime

Inherited by FSMGraphProperty, FSMTextGraphProperty

Description

struct FSMGraphProperty_Base;

EDITOR: The base struct for graph properties exposed on a node. Contains additional properties for configuration and compilation. Any graph property types should inherit from this.

Public Classes

Name
struct FVariableDetailsCustomizationConfiguration

Public Functions

Name
FSMGraphProperty_Base()
virtual const FGuid & SetGuid(const FGuid & NewGuid) override
const FGuid & SetGuid(const FGuid & NewGuid, int32 Index, bool bCountTemplate =true)
const FGuid & GenerateNewGuid()
const FGuid & GenerateNewGuidIfNotValid()
void InvalidateGuid()
const FGuid & SetTemplateGuid(const FGuid & NewGuid, bool bRefreshGuid =false)
const FGuid & GetTemplateGuid() const
const FGuid & GetUnmodifiedGuid() const
virtual bool ShouldAutoAssignVariable() const
virtual bool ShouldGenerateGuidFromVariable() const
virtual bool IsVariableReadOnly() const
virtual bool IsVariableHidden() const
virtual bool ShouldCompileReadOnlyVariables() const
virtual void GetVariableDetailsCustomization(FVariableDetailsCustomizationConfiguration & OutCustomizationConfiguration) const
virtual const FSMNodeWidgetInfo * GetWidgetInfo() const
virtual bool IsEditorThreadSafe() const
virtual UClass * GetGraphClass(UObject * Outer) const
virtual UClass * GetGraphSchemaClass(UObject * Outer) const
virtual const FString & GetGraphModuleName() const
virtual UPackage * GetEditorModule() const
virtual const FString & GetPropertyDisplayName() const
virtual int32 GetVerticalDisplayOrder() const
virtual bool AllowToggleGraphEdit() const
virtual bool ShouldDefaultToEditMode() const
FText GetDisplayName() const

Public Attributes

Name
FName VariableName
FEdGraphPinType VariableType
FMemberReference MemberReference
bool bIsInArray
bool bReadOnly
bool bHidden
FText RealDisplayName
int32 ArrayIndex

Protected Attributes

Name
FName GraphClassName
FName GraphSchemaClassName
FString GraphModuleClassName
TObjectPtr< UClass > CachedGraphClass
TObjectPtr< UClass > CachedSchemaClass
FGuid GuidUnmodified
FGuid TemplateGuid
int32 GuidIndex

Additional inherited members

Public Functions inherited from FSMGraphProperty_Base_Runtime

Name
FSMGraphProperty_Base_Runtime()
virtual ~FSMGraphProperty_Base_Runtime() =default
virtual void Initialize(FSMNode_Base * InOwningNode)
virtual void Execute(void * Params =nullptr)
virtual uint8 * GetResult() const
virtual void SetResult(uint8 * Value)
const FGuid & GetGuid() const
virtual const FGuid & SetOwnerGuid(const FGuid & NewGuid)
const FGuid & GetOwnerGuid() const
void SetIsDefaultValueOnly(bool bNewValue)
bool GetIsDefaultValueOnly() const
virtual FName GetResultPropertyName() const

Public Attributes inherited from FSMGraphProperty_Base_Runtime

Name
TArray< FSMExposedFunctionHandler > * GraphEvaluator
FSMGraphProperty_Base_Runtime * LinkedProperty

Protected Attributes inherited from FSMGraphProperty_Base_Runtime

Name
FGuid Guid
FGuid OwnerGuid
uint8 bIsDefaultValueOnly
FSMNode_Base * OwningNode

Public Functions Documentation

function FSMGraphProperty_Base

FSMGraphProperty_Base()

function SetGuid

virtual const FGuid & SetGuid(
    const FGuid & NewGuid
) override

Reimplements: FSMGraphProperty_Base_Runtime::SetGuid


function SetGuid

const FGuid & SetGuid(
    const FGuid & NewGuid,
    int32 Index,
    bool bCountTemplate =true
)

function GenerateNewGuid

const FGuid & GenerateNewGuid()

function GenerateNewGuidIfNotValid

const FGuid & GenerateNewGuidIfNotValid()

function InvalidateGuid

void InvalidateGuid()

function SetTemplateGuid

const FGuid & SetTemplateGuid(
    const FGuid & NewGuid,
    bool bRefreshGuid =false
)

function GetTemplateGuid

inline const FGuid & GetTemplateGuid() const

function GetUnmodifiedGuid

inline const FGuid & GetUnmodifiedGuid() const

function ShouldAutoAssignVariable

inline virtual bool ShouldAutoAssignVariable() const

Used if this class should automatically assign itself to exposed variable properties.

Reimplemented by: FSMTextGraphProperty::ShouldAutoAssignVariable


function ShouldGenerateGuidFromVariable

inline virtual bool ShouldGenerateGuidFromVariable() const

Checked during duplication if the guid should be assigned from the variable.


function IsVariableReadOnly

virtual bool IsVariableReadOnly() const

If this variable should be considered read only when displaying on the node.


function IsVariableHidden

virtual bool IsVariableHidden() const

If this variable should not be displayed on the node.


function ShouldCompileReadOnlyVariables

inline virtual bool ShouldCompileReadOnlyVariables() const

If a read only graph should be compiled into the blueprint. If false then only the default value is stored.

Reimplemented by: FSMTextGraphProperty::ShouldCompileReadOnlyVariables


function GetVariableDetailsCustomization

inline virtual void GetVariableDetailsCustomization(
    FVariableDetailsCustomizationConfiguration & OutCustomizationConfiguration
) const

Called during variable customization when a variable in a node blueprint is selected.

Reimplemented by: FSMTextGraphProperty::GetVariableDetailsCustomization


function GetWidgetInfo

inline virtual const FSMNodeWidgetInfo * GetWidgetInfo() const

Return the widget info for this property.

Reimplemented by: FSMGraphProperty::GetWidgetInfo, FSMTextGraphProperty::GetWidgetInfo


function IsEditorThreadSafe

inline virtual bool IsEditorThreadSafe() const

If this property is considered thread safe in the editor. Nodes check this during compile and will update the overall editor thread safety of the owning node.

Reimplemented by: FSMTextGraphProperty::IsEditorThreadSafe


function GetGraphClass

virtual UClass * GetGraphClass(
    UObject * Outer
) const

Return the editor graph to use. The outer provided will be the editor module so the class can be retrieved.


function GetGraphSchemaClass

virtual UClass * GetGraphSchemaClass(
    UObject * Outer
) const

Return the editor graph schema to use. The outer provided will be the editor module so the class can be retrieved.


function GetGraphModuleName

virtual const FString & GetGraphModuleName() const

Return the simple name of the editor module to use for looking up the graph classes.


function GetEditorModule

virtual UPackage * GetEditorModule() const

Load and return the editor module package. This is what will be passed to GetGraphClass and GetGraphSchemaClass.


function GetPropertyDisplayName

virtual const FString & GetPropertyDisplayName() const

The desired name of this property. This may be used at some display points in the editor.


function GetVerticalDisplayOrder

inline virtual int32 GetVerticalDisplayOrder() const

The desired vertical location on the graph node for this widget to be displayed.

Deprecated:

Use DisplayOrder metadata for native properties or adjust the blueprint variable order in blueprints.

Reimplemented by: FSMGraphProperty::GetVerticalDisplayOrder, FSMTextGraphProperty::GetVerticalDisplayOrder


function AllowToggleGraphEdit

inline virtual bool AllowToggleGraphEdit() const

Should property be able to toggle between edit and view modes.

Reimplemented by: FSMTextGraphProperty::AllowToggleGraphEdit


function ShouldDefaultToEditMode

inline virtual bool ShouldDefaultToEditMode() const

Should property default to view or edit mode.

Reimplemented by: FSMTextGraphProperty::ShouldDefaultToEditMode


function GetDisplayName

FText GetDisplayName() const

Returns either the property display name or the RealDisplayName.


Public Attributes Documentation

variable VariableName

FName VariableName;

The node variable name to override.


variable VariableType

FEdGraphPinType VariableType;

variable MemberReference

FMemberReference MemberReference;

variable bIsInArray

bool bIsInArray;

variable bReadOnly

bool bReadOnly;

Display the variable as read only on the node.


variable bHidden

bool bHidden;

Prevent the variable from being displayed on the node. The property graph is still created and this variable will evaluate with EvaluateGraphProperties regardless of hidden status.


variable RealDisplayName

FText RealDisplayName;

Set when loaded in a graph node.


variable ArrayIndex

int32 ArrayIndex;

Set when loaded in a graph node in the event this is stored within an array.


Protected Attributes Documentation

variable GraphClassName

FName GraphClassName;

variable GraphSchemaClassName

FName GraphSchemaClassName;

variable GraphModuleClassName

FString GraphModuleClassName;

variable CachedGraphClass

TObjectPtr< UClass > CachedGraphClass;

variable CachedSchemaClass

TObjectPtr< UClass > CachedSchemaClass;

variable GuidUnmodified

FGuid GuidUnmodified;

The guid without the template.


variable TemplateGuid

FGuid TemplateGuid;

The guid of the template this belongs to.


variable GuidIndex

int32 GuidIndex;