Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
ChargeStateComponent.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "Components/ActorComponent.h"
6#include "ChargeStateComponent.generated.h"
7
8
9DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnChargeBeginDelegate);
10DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnChargePhaseChangedDelegate, int32, NewPhase);
12
13
14UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
15class CK_UE_API UChargeStateComponent : public UActorComponent
16{
17 GENERATED_BODY()
18
19public:
20 UChargeStateComponent();
21
22 void BeginCharge(const TArray<float>& InPhaseDurations);
23
24 void ChangePhase(int32 InNewPhase);
25
26 void EndCharge();
27
28 float GetProgressValue() const;
29
30 FORCEINLINE bool IsCharging() const { return bIsCharging; }
31
32 FORCEINLINE int32 GetCurrentPhase() const { return CurrentPhase; }
33
34 FORCEINLINE int32 GetMaxPhase() const { return PhaseDurations.Num(); }
35
36public:
37 UPROPERTY()
38 FOnChargeBeginDelegate OnChargeBegin;
39
40 UPROPERTY()
41 FOnChargePhaseChangedDelegate OnChargePhaseChanged;
42
43 UPROPERTY()
44 FOnChargeEndDelegate OnChargeEnd;
45
46protected:
47 UPROPERTY(Transient)
48 TArray<float> PhaseDurations;
49
50 UPROPERTY(Transient)
51 int32 CurrentPhase = 0;
52
53 UPROPERTY(Transient)
54 float PhaseStartWorldTime = 0.0f;
55
56 UPROPERTY(Transient)
57 float CurrentPhaseDuration = 0.0f;
58
59 UPROPERTY(Transient)
60 uint8 bIsCharging : 1;
61};
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnChargePhaseChangedDelegate, int32, NewPhase)
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnChargeBeginDelegate)