Skip to content

USMPropertyGraphSchema

Module: SMSystemEditor

Inherits from USMGraphK2Schema

Public Functions

Name
virtual void CreateDefaultNodesForGraph(UEdGraph & Graph) const override
virtual bool CanDuplicateGraph(UEdGraph * InSourceGraph) const override
virtual void HandleGraphBeingDeleted(UEdGraph & GraphBeingRemoved) const override
virtual void GetGraphDisplayInformation(const UEdGraph & Graph, FGraphDisplayInfo & DisplayInfo) const override
virtual bool TryCreateConnection(UEdGraphPin * A, UEdGraphPin * B) const override
virtual bool RequestVariableDropOnPin(UEdGraph * InGraph, FProperty * InVariableToDrop, UEdGraphPin * InPin, const FVector2f & InDropPosition, const FVector2f & InScreenPosition) const override
virtual void GetContextMenuActions(UToolMenu * Menu, UGraphNodeContextMenuContext * Context) const override

Public Functions Documentation

function CreateDefaultNodesForGraph

virtual void CreateDefaultNodesForGraph(
    UEdGraph & Graph
) const override

function CanDuplicateGraph

virtual bool CanDuplicateGraph(
    UEdGraph * InSourceGraph
) const override

function HandleGraphBeingDeleted

virtual void HandleGraphBeingDeleted(
    UEdGraph & GraphBeingRemoved
) const override

function GetGraphDisplayInformation

virtual void GetGraphDisplayInformation(
    const UEdGraph & Graph,
    FGraphDisplayInfo & DisplayInfo
) const override

This isn't currently called by UE4.


function TryCreateConnection

virtual bool TryCreateConnection(
    UEdGraphPin * A,
    UEdGraphPin * B
) const override

function RequestVariableDropOnPin

virtual bool RequestVariableDropOnPin(
    UEdGraph * InGraph,
    FProperty * InVariableToDrop,
    UEdGraphPin * InPin,
    const FVector2f & InDropPosition,
    const FVector2f & InScreenPosition
) const override

function GetContextMenuActions

virtual void GetContextMenuActions(
    UToolMenu * Menu,
    UGraphNodeContextMenuContext * Context
) const override

Replaces the engine's Split/Recombine Struct Pin context entries with ones that route through USMPropertyGraph::SplitResultPin / RecombineResultPin / SplitSubPin / RecombineSubPin so the plugin's bSplit flag, SplitPropertyGuids, and NestedSplitPaths stay in sync with the pin tree. Engine's own handlers hit GetDefault() directly and bypass schema polymorphism, so overriding SplitPin / RecombinePin would be a no-op here; replacing the menu entries is the only hook that catches the user path.