Skip to content

FSMGraphProperty_Base_Runtime¶

Module: SMSystem

#include <SMGraphProperty_Base.h>

Inherited by FSMGraphProperty_Base, FSMGraphProperty_Runtime, FSMTextGraphProperty_Runtime

Description¶

struct FSMGraphProperty_Base_Runtime;

The base graph properties containing the bare essentials for run-time. Any run-time graph property types should inherit from this.

Public Functions¶

Name
FSMGraphProperty_Base_Runtime()
virtual ~FSMGraphProperty_Base_Runtime() =default
virtual void Initialize(FSMNode_Base * InOwningNode)
virtual void Execute(void * Params =nullptr, ESMGraphPropertyDirection Direction =ESMGraphPropertyDirection::Both)
virtual FORCEINLINE uint8 * GetResult() const
virtual FORCEINLINE void SetResult(uint8 * Value)
virtual const FGuid & SetGuid(const FGuid & NewGuid)
FORCEINLINE const FGuid & GetGuid() const
virtual const FGuid & SetOwnerGuid(const FGuid & NewGuid)
FORCEINLINE const FGuid & GetOwnerGuid() const
void SetIsDefaultValueOnly(bool bNewValue)
FORCEINLINE bool GetIsDefaultValueOnly() const
FORCEINLINE bool IsInputProperty() const
FORCEINLINE bool IsOutputProperty() const
virtual FORCEINLINE FName GetResultPropertyName() const
virtual FORCEINLINE bool CanAcceptPropertyFlag(const ESMGraphPropertyFlags Flag) const
FORCEINLINE bool HasAnyPropertyFlags(const ESMGraphPropertyFlags Flag) const
FORCEINLINE bool HasAllPropertyFlags(const ESMGraphPropertyFlags Flag) const
FORCEINLINE bool AddPropertyFlags(const ESMGraphPropertyFlags Flag)
FORCEINLINE void RemovePropertyFlags(const ESMGraphPropertyFlags Flag)
FORCEINLINE bool SetPropertyFlags(const ESMGraphPropertyFlags NewFlags)
FORCEINLINE ESMGraphPropertyFlags GetPropertyFlags() const
FName GetPropertyFlagsPropertyName()

Public Attributes¶

Protected Attributes¶

Name
FSMNode_Base * OwningNode
FGuid Guid
FGuid OwnerGuid

Public Functions Documentation¶

function FSMGraphProperty_Base_Runtime¶

FSMGraphProperty_Base_Runtime()

function ~FSMGraphProperty_Base_Runtime¶

virtual ~FSMGraphProperty_Base_Runtime() =default

function Initialize¶

virtual void Initialize(
    FSMNode_Base * InOwningNode
)

function Execute¶

virtual void Execute(
    void * Params =nullptr,
    ESMGraphPropertyDirection Direction =ESMGraphPropertyDirection::Both
)

function GetResult¶

inline virtual FORCEINLINE uint8 * GetResult() const

Reimplemented by: FSMTextGraphProperty_Runtime::GetResult, FSMTextGraphProperty::GetResult


function SetResult¶

inline virtual FORCEINLINE void SetResult(
    uint8 * Value
)

Reimplemented by: FSMTextGraphProperty_Runtime::SetResult, FSMTextGraphProperty::SetResult


function SetGuid¶

virtual const FGuid & SetGuid(
    const FGuid & NewGuid
)

Reimplemented by: FSMGraphProperty_Base::SetGuid


function GetGuid¶

inline FORCEINLINE const FGuid & GetGuid() const

function SetOwnerGuid¶

virtual const FGuid & SetOwnerGuid(
    const FGuid & NewGuid
)

function GetOwnerGuid¶

inline FORCEINLINE const FGuid & GetOwnerGuid() const

Returns the graph property owner of this node. Likely itself.


function SetIsDefaultValueOnly¶

inline void SetIsDefaultValueOnly(
    bool bNewValue
)

Set whether the variable contains a default value only.


function GetIsDefaultValueOnly¶

inline FORCEINLINE bool GetIsDefaultValueOnly() const

Does this variable only contain a default value.


function IsInputProperty¶

inline FORCEINLINE bool IsInputProperty() const

If this variable is configured for input.


function IsOutputProperty¶

inline FORCEINLINE bool IsOutputProperty() const

If this variable is configured for output.


function GetResultPropertyName¶

inline virtual FORCEINLINE FName GetResultPropertyName() const

Get the property name of the result field.

Reimplemented by: FSMTextGraphProperty::GetResultPropertyName


function CanAcceptPropertyFlag¶

inline virtual FORCEINLINE bool CanAcceptPropertyFlag(
    const ESMGraphPropertyFlags Flag
) const

Checks if a property flag may be accepted.

Reimplemented by: FSMTextGraphProperty::CanAcceptPropertyFlag


function HasAnyPropertyFlags¶

inline FORCEINLINE bool HasAnyPropertyFlags(
    const ESMGraphPropertyFlags Flag
) const

If a property flag exists on this graph property.


function HasAllPropertyFlags¶

inline FORCEINLINE bool HasAllPropertyFlags(
    const ESMGraphPropertyFlags Flag
) const

If all property flags exist on this graph property.


function AddPropertyFlags¶

inline FORCEINLINE bool AddPropertyFlags(
    const ESMGraphPropertyFlags Flag
)

Add a property flag to this graph property.

Return: true if the flag was successfully added.

Warning:

This generally shouldn't be called unless from a C++ constructor or values may not propagate correctly. Modifying property flags is handled automatically in Logic Driver.


function RemovePropertyFlags¶

inline FORCEINLINE void RemovePropertyFlags(
    const ESMGraphPropertyFlags Flag
)

Remove a property flag from this graph property.

Warning:

This generally shouldn't be called unless from a C++ constructor or values may not propagate correctly. Modifying property flags is handled automatically in Logic Driver.


function SetPropertyFlags¶

inline FORCEINLINE bool SetPropertyFlags(
    const ESMGraphPropertyFlags NewFlags
)

Set all property flags to a new value, providing all given flags may be accepted.

Return: true if all flags were set. If false then no new flags were set.

Warning:

This generally shouldn't be called unless from a C++ constructor or values may not propagate correctly. Modifying property flags is handled automatically in Logic Driver.


function GetPropertyFlags¶

inline FORCEINLINE ESMGraphPropertyFlags GetPropertyFlags() const

Retrieve all property flags.


function GetPropertyFlagsPropertyName¶

static inline FName GetPropertyFlagsPropertyName()

Get the property name for PropertyFlags.


Public Attributes Documentation¶

variable GraphEvaluator¶

TArray< FSMExposedFunctionHandler > * GraphEvaluator;

variable LinkedProperty¶

FSMGraphProperty_Base_Runtime * LinkedProperty;

If set then the linked property is the one that is actually executing, but this struct is the one being read from.


Protected Attributes Documentation¶

variable OwningNode¶

FSMNode_Base * OwningNode;

The node this graph property belongs to.


variable Guid¶

FGuid Guid;

variable OwnerGuid¶

FGuid OwnerGuid;

The graph property owner. If this struct is defined within a node class and instanced to a state machine then the guid of class CDO is the owner.


Private Attributes Documentation¶

variable PropertyFlags¶

uint8 PropertyFlags;

ESMGraphPropertyFlags runtime flags for this graph property.

This is EditDefaultsOnly even though it is never edited/displayed directly so we can make use of UE's propagation through handles in editor customization. It's uint8 so the handle propagation allows bitmask operations. Default enum expects singular values.