From 7aac7d9d753e6a1323039c188554ff333bf691c1 Mon Sep 17 00:00:00 2001 From: lumpn Date: Mon, 10 Apr 2023 18:56:20 +0800 Subject: [PATCH] Implemented line chopping --- .../Private/StevesUI/TypewriterTextWidget.cpp | 18 ++++-------------- .../Public/StevesUI/TypewriterTextWidget.h | 7 +++---- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/Source/StevesUEHelpers/Private/StevesUI/TypewriterTextWidget.cpp b/Source/StevesUEHelpers/Private/StevesUI/TypewriterTextWidget.cpp index ff0777b..80e8c06 100644 --- a/Source/StevesUEHelpers/Private/StevesUI/TypewriterTextWidget.cpp +++ b/Source/StevesUEHelpers/Private/StevesUI/TypewriterTextWidget.cpp @@ -42,7 +42,6 @@ TSharedRef URichTextBlockForTypewriter::RebuildWidget() UTypewriterTextWidget::UTypewriterTextWidget(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { - bHasMoreLineParts = false; bHasFinishedPlaying = true; } @@ -55,7 +54,6 @@ void UTypewriterTextWidget::SetText(const FText& InText) LineText->SetText(InText); - bHasMoreLineParts = false; bHasFinishedPlaying = true; } } @@ -102,7 +100,6 @@ void UTypewriterTextWidget::PlayNextLinePart(float Speed) LineText->SetText(FText::GetEmpty()); } - bHasMoreLineParts = false; bHasFinishedPlaying = true; OnTypewriterLineFinished.Broadcast(this); OnLineFinishedPlaying(); @@ -165,7 +162,7 @@ void UTypewriterTextWidget::PlayNextLinePart(float Speed) CalculateWrappedString(shortenedString); - RemainingLinePart.RightInline(count); + RemainingLinePart.RightChopInline(count); bHasMoreLineParts = true; } } @@ -190,16 +187,9 @@ void UTypewriterTextWidget::SkipToLineEnd() LineText->SetText(FText::FromString(CalculateSegments(nullptr))); } - if (bHasMoreLineParts) - { - OnTypewriterLinePartFinished.Broadcast(this); - } - else - { - bHasFinishedPlaying = true; - OnTypewriterLineFinished.Broadcast(this); - OnLineFinishedPlaying(); - } + bHasFinishedPlaying = true; + OnTypewriterLineFinished.Broadcast(this); + OnLineFinishedPlaying(); } void UTypewriterTextWidget::PlayNextLetter() diff --git a/Source/StevesUEHelpers/Public/StevesUI/TypewriterTextWidget.h b/Source/StevesUEHelpers/Public/StevesUI/TypewriterTextWidget.h index e453961..07a8b6b 100644 --- a/Source/StevesUEHelpers/Public/StevesUI/TypewriterTextWidget.h +++ b/Source/StevesUEHelpers/Public/StevesUI/TypewriterTextWidget.h @@ -56,10 +56,6 @@ class STEVESUEHELPERS_API UTypewriterTextWidget : public UUserWidget public: UTypewriterTextWidget(const FObjectInitializer& ObjectInitializer); - /// Event called when a line part has finished playing, whether on its own or when skipped to end - UPROPERTY(BlueprintAssignable) - FOnTypewriterLineFinished OnTypewriterLinePartFinished; - /// Event called when a line has finished playing, whether on its own or when skipped to end UPROPERTY(BlueprintAssignable) FOnTypewriterLineFinished OnTypewriterLineFinished; @@ -106,6 +102,9 @@ public: UFUNCTION(BlueprintCallable, Category = "Typewriter") bool HasFinishedPlayingLine() const { return bHasFinishedPlaying; } + UFUNCTION(BlueprintCallable, Category = "Typewriter") + bool HasMoreLineParts() const { return bHasMoreLineParts; } + UFUNCTION(BlueprintCallable, Category = "Typewriter") void PlayNextLinePart(float Speed = 1.0f);