| 198 | } |
| 199 | |
| 200 | protected: |
| 201 | template <class T> |
| 202 | void GetNodesInExecutionOrder_Recursive(UFlowNode* Node, TSet<TObjectKey<UFlowNode>>& IteratedNodes, TArray<T*>& OutNodes) const |
| 203 | { |
| 204 | IteratedNodes.Add(Node); |
| 205 | |
| 206 | if (T* NodeOfRequiredType = Cast<T>(Node)) |
| 207 | { |
| 208 | OutNodes.Emplace(NodeOfRequiredType); |
| 209 | } |
| 210 | |
| 211 | for (UFlowNode* ConnectedNode : Node->GatherConnectedNodes()) |
| 212 | { |
| 213 | if (ConnectedNode && !IteratedNodes.Contains(ConnectedNode)) |
| 214 | { |
| 215 | GetNodesInExecutionOrder_Recursive(ConnectedNode, IteratedNodes, OutNodes); |
| 216 | } |
| 217 | } |
| 218 | } |
| 219 | |
| 220 | public: |
| 221 | UFlowNode_CustomInput* TryFindCustomInputNodeByEventName(const FName& EventName) const; |
no test coverage detected