FlowGraph icon indicating copy to clipboard operation
FlowGraph copied to clipboard

Flow graph data pins refactor

Open LindyHopperGT opened this issue 1 month ago • 0 comments

  • Incremented UFlowGraph::GraphVersion to 2, created a data migration function (UpgradeAllFlowNodePins)
  • FlowPinType namespace templates for the bulk of the "Supply/Resolve" pipeline support for data pins
  • Updated standard FFlowPinType and FFlowDataPinValue subclasses to use them with the new resolve pipeline
  • Reworked FlowSchema's pin compatibility checks to be more orderly, simpler and data-driven connectivity
  • Created policies for schema connectivity rules for the standard types
  • Updated FFlowNamedDataPinProperty to use FFlowDataPinValue as its property payload (including migrate functions from the old data)
  • Updated FlowDataPinBlueprintLibrary with new auto-converts and functions to support data pin manipulation in blueprint
  • Updated FlowNodeBase with the new Resolve pathway entry points & related refactors
  • Updated FlowNode with the new Supply pathway entry points & related refactors
  • Updated FlowPin to deprecateEnum PinType and add ContainerType (for Array data pins) and PinTypeName (the replacement for PinType Enum)
  • Removed overrides TrySupplyDataPinAs... (now replaced by general version)
  • Removed TrySupplyDataPinAs... variants from the IFlowDataPinValueSupplierInterface (leaving only the general replacement)
  • Ported TryResolveDataPinAs... specialized versions to use the general version internally
  • Adapted uses of TryResolveDataPinAs... to the general version TryResolveDataPin
  • FlowNode (and AddOn) details customizations now inherit from TFlowDataPinValueOwnerCustomization, which adds a RequestRebuild() for rebuilding flow node details in a way that correctly rebuilds the FFlowDataPinValue customizations
  • Refactored FlowAsset's automatic pin generation mechanism to be more clean, simple and work with the new system
  • Details customizations for FFlowDataPinValue & specific subclasses
  • Details customization for IFlowDataPinValueOwnerInterface implementers (via template)
  • Added some details customization rebuild hooks into IFlowDataPinValueOwnerInterface to support FFlowDataPinValue details rebuilding
  • Updated some flow nodes to use new Resolve functions (eg, Log, DefineProperties, Start, FormatText, etc.)
  • Reworked FFlowPinSubsystem's api slightly
  • Created new test classes and assets in FlowGraph_DataPinsTest

LindyHopperGT avatar Dec 11 '25 19:12 LindyHopperGT