FlowGraph
FlowGraph copied to clipboard
Flow graph data pins refactor
- 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