24 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Dialogue|Node", Meta = (MultiLine = true))
28 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Dialogue|Node", Meta = (MultiLine = true))
32 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Dialogue|Node")
36 UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced, Category = "
Dialogue|Node")
41 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Dialogue|Node", Meta = (DlgSaveOnlyReference))
42 USoundBase* VoiceSoundWave =
nullptr;
46 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Dialogue|Node", Meta = (DlgSaveOnlyReference))
47 UDialogueWave* VoiceDialogueWave =
nullptr;
51 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Dialogue|Node", Meta = (DlgSaveOnlyReference))
60UCLASS(BlueprintType, ClassGroup = "
Dialogue")
68 FString GetDesc()
override
70 return TEXT(
"Sequence of speeches - each can have a different speaker independently from the node owner.\nThe node stays active and proceeds one step in the SpeechSequence (internal) array until everyone said everything.");
73 void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override;
77 void UpdateTextsValuesFromDefaultsAndRemappings(
const UDlgSystemSettings& Settings,
bool bEdges,
bool bUpdateGraphNode =
true)
override;
78 void UpdateTextsNamespacesAndKeys(
const UDlgSystemSettings& Settings,
bool bEdges,
bool bUpdateGraphNode =
true)
override;
79 bool HandleNodeEnter(
UDlgContext& Context, TSet<const UDlgNode*> NodesEnteredWithThisStep)
override;
80 bool ReevaluateChildren(
UDlgContext& Context, TSet<const UDlgNode*> AlreadyEvaluated)
override;
81 bool OptionSelected(int32 OptionIndex,
UDlgContext& Context)
override;
84 const FText& GetNodeText()
const override;
86 USoundBase* GetNodeVoiceSoundBase()
const override;
87 UDialogueWave* GetNodeVoiceDialogueWave()
const override;
88 FName GetSpeakerState()
const override;
89 void AddAllSpeakerStatesIntoSet(TSet<FName>& OutStates)
const override;
106 bool OptionSelectedFromReplicated(int32 OptionIndex,
UDlgContext& Context);
107 int32 GetSpeechSequenceIndex()
const {
return ActualIndex; }
110 void AutoGenerateInnerEdges();
113 UFUNCTION(BlueprintPure, Category =
"Dialogue|Node")
117 TArray<FDlgSpeechSequenceEntry>* GetMutableNodeSpeechSequence() {
return &SpeechSequence; }
120 UFUNCTION(BlueprintPure, Category =
"Dialogue|Node")
121 bool HasSpeechSequences()
const {
return SpeechSequence.Num() > 0; }
124 static FName GetMemberNameSpeechSequence() {
return GET_MEMBER_NAME_CHECKED(
UDlgNode_SpeechSequence, SpeechSequence); }
128 UPROPERTY(EditAnywhere, Category =
"Dialogue|Node")
136 int32 ActualIndex = INDEX_NONE;
FText Text
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dialogue|Node", Meta = (MultiLine = true))
FName Speaker
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dialogue|Node", Meta = (DisplayName = "Partic...
FName SpeakerState
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dialogue|Node")
FText EdgeText
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dialogue|Node", Meta = (MultiLine = true))