KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
QuestOrderSlotWidget.cpp
이 파일의 문서화 페이지로 가기
1// Copyright (c) 2025 Doppleddiggong. All rights reserved. Unauthorized copying, modification, or distribution of this file, via any medium is strictly prohibited. Proprietary and confidential.
2
3
5
6#include "Components/Image.h"
7#include "Components/TextBlock.h"
8#include "Components/WidgetSwitcher.h"
9#include "Math/UnrealMathUtility.h"
10
11
12UQuestOrderSlotWidget::UQuestOrderSlotWidget(FObjectInitializer const& ObjectInitializer) : Super(ObjectInitializer)
13{
14 ConstructorHelpers::FObjectFinder<UTexture2D> readQuestTextureRef(TEXT("/Script/Engine.Texture2D'/Game/CustomContents/UI/Texture/Resource/Icon_Read.Icon_Read'"));
15 if (readQuestTextureRef.Succeeded())
16 {
17 ReadQuestTexture = readQuestTextureRef.Object;
18 }
19 ConstructorHelpers::FObjectFinder<UTexture2D> listenQuestTextureRef(TEXT("/Script/Engine.Texture2D'/Game/CustomContents/UI/Texture/Resource/Icon_Listen.Icon_Listen'"));
20 if (listenQuestTextureRef.Succeeded())
21 {
22 ListenQuestTexture = listenQuestTextureRef.Object;
23 }
24 ConstructorHelpers::FObjectFinder<UTexture2D> speakQuestTextureRef(TEXT("/Script/Engine.Texture2D'/Game/CustomContents/UI/Texture/Resource/Icon_Speak.Icon_Speak'"));
25 if (speakQuestTextureRef.Succeeded())
26 {
27 SpeakQuestTexture = speakQuestTextureRef.Object;
28 }
29 ConstructorHelpers::FObjectFinder<UTexture2D> writeQuestTextureRef(TEXT("/Script/Engine.Texture2D'/Game/CustomContents/UI/Texture/Resource/Icon_Write.Icon_Write'"));
30 if (writeQuestTextureRef.Succeeded())
31 {
32 WriteQuestTexture = writeQuestTextureRef.Object;
33 }
34}
35
36void UQuestOrderSlotWidget::SetQuestType(const char inQuestType)
37{
38 switch (inQuestType)
39 {
40 case 'R': Image_QuestType->SetBrushFromTexture(ReadQuestTexture); break;
41 case 'L': Image_QuestType->SetBrushFromTexture(ListenQuestTexture); break;
42 case 'S': Image_QuestType->SetBrushFromTexture(SpeakQuestTexture); break;
43 case 'W': Image_QuestType->SetBrushFromTexture(WriteQuestTexture); break;
44 default: break;
45 }
46}
47
49{
50 Image_Bg->SetColorAndOpacity(FColor::FromHex("00FF94FF"));
51}
52
54{
55 Image_Bg->SetColorAndOpacity(FColor::FromHex("FFCA50FF"));
56 WidgetSwitcher_Slot->SetActiveWidgetIndex(1);
57 PlayStampAnimation(GetWorld()->DeltaTimeSeconds);
58}
59
61{
62 auto easeOutElastic = [](float x)->float
63 {
64 const float c4 = (2 * PI) / 3;
65
66 if (x == 0)
67 {
68 return 0;
69 }
70 if (x == 1)
71 {
72 return 1;
73 }
74
75 return FMath::Pow(2, -10 * x) * FMath::Sin((x * 10 - 0.75) * c4) + 1;
76 };
77
78 GetWorld()->GetTimerManager().SetTimer(StampTimerHandle, [this, easeOutElastic, InDeltaTime]()
79 {
80 Image_Complete->SetRenderScale(FVector2D(StampStartScale - easeOutElastic(StampDX)));
81 StampDX += InDeltaTime;
82 if (StampDX >= 1.0f)
83 {
84 GetWorld()->GetTimerManager().ClearTimer(StampTimerHandle);
85 StampDX = 0;
86 }
87 }, InDeltaTime, true);
88}
TObjectPtr< class UWidgetSwitcher > WidgetSwitcher_Slot
void PlayStampAnimation(float InDeltaTime)
TObjectPtr< class UImage > Image_QuestType
TObjectPtr< class UTexture2D > ReadQuestTexture
TObjectPtr< class UTexture2D > WriteQuestTexture
TObjectPtr< class UTexture2D > SpeakQuestTexture
UQuestOrderSlotWidget(FObjectInitializer const &ObjectInitializer)
TObjectPtr< class UImage > Image_Bg
void SetQuestType(const char inQuestType)
TObjectPtr< class UTexture2D > ListenQuestTexture
TObjectPtr< class UImage > Image_Complete