Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
CameraEffectSectionCondition.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
8#include "UObject/Object.h"
9#include "CameraEffectSectionCondition.generated.h"
10
12struct FCameraEffect;
13
14
15USTRUCT(Blueprintable, BlueprintType)
17{
18 GENERATED_BODY()
19
20public:
21 UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced, Category = "Condition")
23};
24
28UCLASS(Abstract, Blueprintable, BlueprintType, EditInlineNew)
29class CK_UE_API UCameraEffectSectionCondition : public UObject
30{
31 GENERATED_BODY()
32
33public:
34 virtual void Initialize(const FCameraEffect& CameraEffect, APlayerController* PC);
35
36 virtual bool CheckCondition(const UCameraEffectProcessor* Processor, const FCameraEffect& CameraEffect, APlayerController* PC) PURE_VIRTUAL(UCameraEffectSectionCondition::CheckCondition, return false;);
37
38protected:
39 virtual AGameCameraManager* GetCameraManager(const UWorld* InWorld) const;
40
41 // 쿨다운 진행 중이면 true 반환. bUseCoolDown == false이면 항상 false.
42 bool IsInCooldown(const UWorld* InWorld) const;
43
44protected:
45 FORCEINLINE bool IsActivated() const
46 {
47 return bActivated;
48 }
49
50 FORCEINLINE bool SetActivated(const bool InActivated)
51 {
52 return bActivated = InActivated;
53 }
54
55 FORCEINLINE int32 GetActivatedFrame() const
56 {
57 return ActivatedFrame;
58 }
59
60 FORCEINLINE void SetActivatedFrame(const int32 Frame)
61 {
62 ActivatedFrame = Frame;
63 }
64
65 FORCEINLINE void SetCooldownEndTime(const double InEndTime)
66 {
67 CooldownEndTime = InEndTime;
68 }
69
70protected:
71 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Condition", meta = (ClampMin = "0"))
72 int32 ActivationFrames = 0;
73
74 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Condition")
75 bool bUseCoolDown = false;
76
77 // 활성화 종료 후 재실행까지 대기 시간 (초). 0 = 쿨다운 없음
78 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Condition", meta = (ClampMin = "0.0", EditCondition = "bUseCoolDown", EditConditionHides))
79 float CooldownSeconds = 0.0f;
80
81private:
82 UPROPERTY(Transient)
83 int32 ActivatedFrame = 0;
84
85 UPROPERTY(Transient)
86 bool bActivated = false;
87
88 UPROPERTY(Transient)
89 double CooldownEndTime = 0.0;
90};
Definition GameCameraManager.h:28
Definition CameraEffectProcessor.h:25
Definition CameraEffectSectionCondition.h:30
virtual bool CheckCondition(const UCameraEffectProcessor *Processor, const FCameraEffect &CameraEffect, APlayerController *PC) PURE_VIRTUAL(UCameraEffectSectionCondition
Definition CameraEffectSectionCondition.h:36
FORCEINLINE bool IsActivated() const
Definition CameraEffectSectionCondition.h:45
FORCEINLINE void SetCooldownEndTime(const double InEndTime)
Definition CameraEffectSectionCondition.h:65
FORCEINLINE void SetActivatedFrame(const int32 Frame)
Definition CameraEffectSectionCondition.h:60
FORCEINLINE bool SetActivated(const bool InActivated)
Definition CameraEffectSectionCondition.h:50
FORCEINLINE int32 GetActivatedFrame() const
Definition CameraEffectSectionCondition.h:55
Definition CameraEffector.h:17
TObjectPtr< UCameraEffectSectionCondition > Condition
Definition CameraEffector.h:25
TObjectPtr< UCameraEffectProcessor > Processor
Definition CameraEffector.h:28
Definition CameraEffectSectionCondition.h:17