Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
SkillSlotWidget.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "UI/UserWidgetBase.h"
7#include "SkillSlotWidget.generated.h"
8
9class UImage;
10class UMaterialInstanceDynamic;
11class UOverlay;
12class UTextBlock;
13class UWidgetAnimation;
14
15UENUM(BlueprintType)
16enum class EInputIconType : uint8
17{
18 None,
19 Mouse,
21};
22
23UENUM(BlueprintType)
24enum class EMouseButtonType : uint8
25{
26 Left,
27 Right
28};
29
33UCLASS()
34class CK_UE_API USkillSlotWidget : public UUserWidgetBase
35{
36 GENERATED_BODY()
37
38public:
39 virtual void SetAbilitySystemComponent(AActor* InOwner) override;
40
41public:
42 FORCEINLINE EInputIconType GetInputIcon() const
43 {
44 return InputIcon;
45 }
46
47 FORCEINLINE const FText& GetKeyboardKeyText() const
48 {
49 return KeyboardKeyText;
50 }
51
52 FORCEINLINE EMouseButtonType GetMouseButton() const
53 {
54 return MouseButton;
55 }
56
57protected:
58 virtual void NativeConstruct() override;
59 virtual void NativeDestruct() override;
60
61 void StartCooldownUpdateTimer();
62 void StopCooldownUpdateTimer();
63 void UnbindCooldownTagEvent();
64 void UpdateCooldownProgress();
65 void BindCooldownTagEvent();
66 void SetCooldownProgress(float InProgress);
67 virtual void NativePreConstruct() override;
68 virtual void OnSlotRefreshed();
69
70#if WITH_EDITOR
71 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
72#endif
73
74protected:
75 UFUNCTION()
76 void OnCooldownStarted();
77
78 UFUNCTION()
79 void OnCooldownCompleted();
80
81 UFUNCTION()
82 void OnCooldownTagChanged(const FGameplayTag Tag, int32 NewCount);
83
84protected:
85 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|Cooldown")
86 bool bUseCooldownGauge = false;
87
88 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|Cooldown", meta = (Categories = "Cooldown", EditCondition = "bUseCooldownGauge", EditConditionHides))
89 bool bReverseGaugeFillDirection = false;
90
91 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|Cooldown", meta = (Categories = "Cooldown", EditCondition = "bUseCooldownGauge", EditConditionHides))
92 float SkillIconCooldownOpacity = 0.37f;
93
94 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|Cooldown", meta = (Categories = "Cooldown", EditCondition = "bUseCooldownGauge", EditConditionHides))
95 FGameplayTag CooldownTargetAbilityTag = FGameplayTag::EmptyTag;
96
97 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|Cooldown", meta = (Categories = "Cooldown", EditCondition = "bUseCooldownGauge", EditConditionHides))
98 FName ProgressParameterName = TEXT("Progress");
99
100protected:
101 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|HUD")
102 EInputIconType InputIcon;
103
104 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|HUD", meta = (EditCondition = "InputIcon == EInputIconType::Keyboard", EditConditionHides))
105 FText KeyboardKeyText;
106
107 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|HUD", meta = (EditCondition = "InputIcon == EInputIconType::Mouse", EditConditionHides))
108 EMouseButtonType MouseButton;
109
110 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|HUD", meta = (EditCondition = "InputIcon == EInputIconType::Keyboard", EditConditionHides))
111 FSlateBrush KeyBoxImageBrush;
112
113 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|HUD")
114 FSlateBrush IconBrush;
115
116 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI|HUD")
117 FSlateBrush GaugeBrush;
118
119protected:
120 UPROPERTY(BlueprintReadOnly, Category = "UI|HUD", meta = (BindWidget))
121 TObjectPtr<UImage> SkillIcon;
122
123 UPROPERTY(BlueprintReadOnly, Category = "UI|HUD", meta = (BindWidget))
124 TObjectPtr<UImage> GaugeIcon;
125
126 UPROPERTY(BlueprintReadOnly, Category = "UI|HUD", meta = (BindWidget))
127 TObjectPtr<UImage> ReadyGlowImage;
128
129#pragma region Mouse
130 UPROPERTY(BlueprintReadOnly, Category = "UI|HUD", meta = (BindWidget))
131 TObjectPtr<UImage> MouseLeftIcon;
132
133 UPROPERTY(BlueprintReadOnly, Category = "UI|HUD", meta = (BindWidget))
134 TObjectPtr<UImage> MouseRightIcon;
135
136 UPROPERTY(BlueprintReadOnly, Category = "UI|HUD", meta = (BindWidget))
137 TObjectPtr<UOverlay> MouseButtonIcon;
138#pragma endregion
139
140#pragma region Keyboard
141 UPROPERTY(BlueprintReadOnly, Category = "UI|HUD", meta = (BindWidget))
142 TObjectPtr<UTextBlock> KeyText;
143
144 UPROPERTY(BlueprintReadOnly, Category = "UI|HUD", meta = (BindWidget))
145 TObjectPtr<UImage> KeyBoxImage;
146
147 UPROPERTY(BlueprintReadOnly, Category = "UI|HUD", meta = (BindWidget))
148 TObjectPtr<UOverlay> KeyboardKeyIcon;
149#pragma endregion endregion
150
151 UPROPERTY(Transient, meta = (BindWidgetAnimOptional))
152 TObjectPtr<UWidgetAnimation> PingPong;
153
154protected:
155 UPROPERTY(Transient)
156 TObjectPtr<UMaterialInstanceDynamic> GaugeMaterial;
157
158private:
159 FDelegateHandle CooldownTagDelegateHandle;
160 FTimerHandle CooldownUpdateTimerHandle;
161 bool bCooldownActive = false;
162};
EMouseButtonType
Definition SkillSlotWidget.h:25
EInputIconType
Definition SkillSlotWidget.h:17
Definition SkillSlotWidget.h:35
FORCEINLINE EInputIconType GetInputIcon() const
Definition SkillSlotWidget.h:42
FORCEINLINE EMouseButtonType GetMouseButton() const
Definition SkillSlotWidget.h:52
FORCEINLINE const FText & GetKeyboardKeyText() const
Definition SkillSlotWidget.h:47
Definition UserWidgetBase.h:33