10void UDlgNode_Speech::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
12 Super::PostEditChangeProperty(PropertyChangedEvent);
14 const FName PropertyName = PropertyChangedEvent.Property !=
nullptr ? PropertyChangedEvent.Property->GetFName() : NAME_None;
29 Super::UpdateTextsValuesFromDefaultsAndRemappings(Settings, bEdges, bUpdateGraphNode);
35 Super::UpdateTextsNamespacesAndKeys(Settings, bEdges, bUpdateGraphNode);
45 FFormatNamedArguments OrderedArguments;
48 OrderedArguments.Add(DlgArgument.DisplayString, DlgArgument.ConstructFormatArgumentValue(Context,
OwnerName));
56 const bool bResult = Super::HandleNodeEnter(Context, NodesEnteredWithThisStep);
72 Node->FireNodeEnterEvents(Context);
89 if (AlreadyEvaluated.Contains(
this))
92 TEXT(
"ReevaluateChildren - Endless loop detected, a virtual parent became his own parent! "
93 "This is not supposed to happen, the dialogue is terminated.\nContext:\n\t%s"),
99 AlreadyEvaluated.Add(
this);
104 if (Edge.Evaluate(Context, { this }))
109 const bool bResult = Node->ReevaluateChildren(Context, AlreadyEvaluated);
122 return Super::ReevaluateChildren(Context, AlreadyEvaluated);
128 Super::GetAssociatedParticipants(OutArray);
131 if (TextArgument.ParticipantName != NAME_None)
133 OutArray.AddUnique(TextArgument.ParticipantName);
static void UpdateTextFromRemapping(const UDlgSystemSettings &Settings, FText &OutText)
static void UpdateTextNamespaceAndKey(const UObject *Object, const UDlgSystemSettings &Settings, FText &Text)
static FDlgLogger & Get()
void Errorf(const FmtType &Fmt, Types... Args)
UDlgNode * GetMutableNodeFromIndex(int32 NodeIndex) const
UFUNCTION(BlueprintPure, Category = "Dialogue|Data", DisplayName = "Get Node From Index")
TArray< FDlgEdge > & GetMutableOptionsArray()
bool IsValidNodeIndex(int32 NodeIndex) const
UFUNCTION(BlueprintPure, Category = "Dialogue|Data")
FString GetContextString() const
UFUNCTION(BlueprintPure, Category = "Dialogue|Context")
FGuid GetNodeGUIDForIndex(int32 NodeIndex) const
UFUNCTION(BlueprintPure, Category = "Dialogue|Data", DisplayName = "Get Node GUID For Index")
void SetNodeVisited(int32 NodeIndex, const FGuid &NodeGUID)
TArray< FDlgEdgeData > & GetAllMutableOptionsArray()
bool HandleNodeEnter(UDlgContext &Context, TSet< const UDlgNode * > NodesEnteredWithThisStep) override
TArray< FDlgTextArgument > TextArguments
UPROPERTY(EditAnywhere, EditFixedSize, Category = "Dialogue|Node")
void RebuildConstructedText(const UDlgContext &Context) override
FText Text
UPROPERTY(EditAnywhere, Category = "Dialogue|Node", Meta = (MultiLine = true))
void UpdateTextsValuesFromDefaultsAndRemappings(const UDlgSystemSettings &Settings, bool bEdges, bool bUpdateGraphNode=true) override
bool bVirtualParentFireDirectChildEnterEvents
UPROPERTY(EditAnywhere, Category = "Dialogue|Node")
int32 VirtualParentFirstSatisfiedDirectChildIndex
void GetAssociatedParticipants(TArray< FName > &OutArray) const override
static FName GetMemberNameTextArguments()
bool bIsVirtualParent
UPROPERTY(EditAnywhere, Category = "Dialogue|Node")
bool ReevaluateChildren(UDlgContext &Context, TSet< const UDlgNode * > AlreadyEvaluated) override
void RebuildTextArguments(bool bEdges, bool bUpdateGraphNode=true) override
static FName GetMemberNameText()
void UpdateTextsNamespacesAndKeys(const UDlgSystemSettings &Settings, bool bEdges, bool bUpdateGraphNode=true) override
UCLASS(BlueprintType, Abstract, EditInlineNew, ClassGroup = "Dialogue")
FName OwnerName
UPROPERTY(EditAnywhere, Category = "Dialogue|Node", Meta = (DisplayName = "Participant Name"))
TArray< FDlgEdge > Children
UPROPERTY(VisibleAnywhere, EditFixedSize, AdvancedDisplay, Category = "Dialogue|Node")
UCLASS(Config = Engine, DefaultConfig, meta = (DisplayName = "Dialogue System Settings"))