37 virtual void NativeConstruct()
override;
38 virtual void NativeTick(
const FGeometry& MyGeometry,
float InDeltaTime)
override;
39 virtual FReply NativeOnKeyDown(
const FGeometry& InGeometry,
const FKeyEvent& InKeyEvent)
override;
40 virtual FReply NativeOnMouseButtonDown(
const FGeometry& InGeometry,
const FPointerEvent& InMouseEvent)
override;
43 UFUNCTION(BlueprintCallable, Category =
"Cutscene")
44 void StartCutscene(
const TArray<FDT_ScenarioCutsceneTable>& InCutsceneRows);
46 UFUNCTION(BlueprintCallable, Category =
"Cutscene")
47 void AdvanceCutscene();
49 UFUNCTION(BlueprintCallable, Category =
"Cutscene")
52 UFUNCTION(BlueprintCallable, Category =
"Cutscene")
53 void ConfigureTypewriter(
bool bInUseTypewriter,
float InCharactersPerSecond);
55 UFUNCTION(BlueprintPure, Category =
"Cutscene")
56 bool IsCutsceneFinished()
const;
58 UFUNCTION(BlueprintPure, Category =
"Cutscene")
62 UFUNCTION(BlueprintImplementableEvent, Category =
"Cutscene")
63 void OnCutsceneStarted();
65 UFUNCTION(BlueprintImplementableEvent, Category = "
Cutscene")
66 void OnCutsceneLineChanged(const
FDT_ScenarioCutsceneTable& CutsceneRow, const FText& SpeakerNameText, const FText& DialogTextValue, const FText& CutscenePathText);
68 UFUNCTION(BlueprintImplementableEvent, Category = "
Cutscene")
69 void OnCutsceneDialogTextChanged(const FText& DialogTextValue);
71 UFUNCTION(BlueprintImplementableEvent, Category = "
Cutscene")
72 void OnCutsceneWaitingInput();
74 UFUNCTION(BlueprintImplementableEvent, Category = "
Cutscene")
75 void OnCutsceneFinished();
78 void ApplyCutsceneLine(const FText& SpeakerNameText, const FText& DialogTextValue, const FText& CutscenePathText);
79 void SetCutsceneImageInternal(const FText& CutscenePathText);
80 void SetDialogTextInternal(const FText& DialogTextValue);
81 bool IsAdvanceInputKey(const FKey& Key) const;
82 void FinishTypingCurrentLine();
83 void ShowCurrentLine();
84 void FinishCutscene();
87 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
UI|
Cutscene", meta = (BindWidget))
88 TObjectPtr<UWidget> DialogBox;
90 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
UI|
Cutscene", meta = (BindWidget))
91 TObjectPtr<UImage> CutsceneImage;
93 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
UI|
Cutscene", meta = (BindWidget))
94 TObjectPtr<UTextBlock> SpeakerName;
96 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
UI|
Cutscene", meta = (BindWidget))
97 TObjectPtr<UTextBlock> DialogText;
104 int32 CurrentRowIndex = INDEX_NONE;
105 FString CurrentDialogString;
107 bool bUseTypewriter = false;
108 float CharactersPerSecond = 40.0f;
109 float TypingProgress = 0.0f;