25 FoundResult->GraphNodes.Add(GraphNode);
33 const UClass* EventClass,
45 FoundResult->GraphNodes.Add(GraphNode);
67 GraphNode->GetDialogueNode().GetNodeEnterConditions()))
69 FoundResult->GraphNodes.Add(GraphNode);
78 EdgeNode->GetDialogueEdge().Conditions))
80 FoundResult->EdgeNodes.Add(EdgeNode);
103 if (GraphNode->IsRootNode())
109 const UDlgNode& Node = GraphNode->GetDialogueNode();
114 FoundResult->GraphNodes.Add(GraphNode);
120 FoundResult->GraphNodes.Add(GraphNode);
129 EdgeNode->GetDialogueEdge().Conditions))
131 FoundResult->EdgeNodes.Add(EdgeNode);
144 TSharedPtr<FDialogueSearchFoundResult>& FoundResult
153 if (GraphNode->IsRootNode())
159 const UDlgNode& Node = GraphNode->GetDialogueNode();
162 FoundResult->GraphNodes.Add(GraphNode);
168 if (
IsTextArgumentInArray(VariableName, ArgumentType, EdgeNode->GetDialogueEdge().GetTextArguments()))
170 FoundResult->EdgeNodes.Add(EdgeNode);
178 const FString GUIDToSearchFor = SearchString.TrimStartAndEnd();
181 const TArray<FString> GUIDStrings = {
182 GUID.ToString(EGuidFormats::Digits),
183 GUID.ToString(EGuidFormats::DigitsWithHyphens),
184 GUID.ToString(EGuidFormats::DigitsWithHyphensInBraces),
185 GUID.ToString(EGuidFormats::DigitsWithHyphensInParentheses),
186 GUID.ToString(EGuidFormats::HexValuesInBraces),
187 GUID.ToString(EGuidFormats::UniqueObjectGuid)
189 for (
const FString& GUIDString : GUIDStrings)
191 if (GUIDString.Contains(GUIDToSearchFor))
193 OutGUIDString = GUIDString;
209 if (
Name.Contains(SearchString))
211 OutNameString =
Name;
EDlgConditionType
UENUM(BlueprintType)
EDlgEventType
UENUM(BlueprintType)
EDlgTextArgumentType
UENUM(BlueprintType)
static bool IsCustomEventInArray(const UClass *EventClass, const TArray< FDlgEvent > &Events)
static bool DoesGUIDContainString(const FGuid &GUID, const FString &SearchString, FString &OutGUIDString)
static TSharedPtr< FDialogueSearchFoundResult > GetGraphNodesForCustomEvent(const UClass *EventClass, const UDlgDialogue *Dialogue)
static TSharedPtr< FDialogueSearchFoundResult > GetGraphNodesForEventEventName(FName EventName, const UDlgDialogue *Dialogue)
static bool DoesObjectClassNameContainString(const UObject *Object, const FString &SearchString, FString &OutNameString)
static TSharedPtr< FDialogueSearchFoundResult > GetGraphNodesForConditionEventCallName(FName ConditionName, const UDlgDialogue *Dialogue)
static bool IsConditionInArray(FName ConditionName, EDlgConditionType ConditionType, const TArray< FDlgCondition > &Conditions)
static bool IsEventInArray(FName EventName, EDlgEventType EventType, const TArray< FDlgEvent > &Events)
static void GetGraphNodesForTextArgumentVariable(FName VariableName, const UDlgDialogue *Dialogue, EDlgTextArgumentType ArgumentType, TSharedPtr< FDialogueSearchFoundResult > &FoundResult)
static bool IsTextArgumentInArray(FName TextArgumentName, EDlgTextArgumentType TextArgumentType, const TArray< FDlgTextArgument > &TextArguments)
static TSharedPtr< FDialogueSearchFoundResult > GetGraphNodesForVariablesOfNameAndType(FName VariableName, const UDlgDialogue *Dialogue, EDlgEventType EventType, EDlgConditionType ConditionType)
static FString CleanObjectName(FString Name)
TArray< UDialogueGraphNode_Base * > GetAllBaseDialogueGraphNodes() const
TArray< UDialogueGraphNode * > GetAllDialogueGraphNodes() const
UCLASS(BlueprintType, Meta = (DisplayThumbnail = "true"))
UCLASS(BlueprintType, Abstract, EditInlineNew, ClassGroup = "Dialogue")
virtual const TArray< FDlgTextArgument > & GetTextArguments() const
UFUNCTION(BlueprintPure, Category = "Dialogue|Node")
virtual const TArray< FDlgEvent > & GetNodeEnterEvents() const
UFUNCTION(BlueprintPure, Category = "Dialogue|Node")
virtual const TArray< FDlgCondition > & GetNodeEnterConditions() const
UFUNCTION(BlueprintPure, Category = "Dialogue|Node")
static TSharedPtr< FDialogueSearchFoundResult > Make()