Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
StageFlowDefinition.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Engine/LevelScriptActor.h"
8#include "GameplayTagContainer.h"
10#include "UObject/Object.h"
11#include "StageFlowDefinition.generated.h"
12
14class AEventGate;
17class ULevelStreaming;
18
19
25UCLASS(Blueprintable)
26class CK_UE_API AUStageFlowDefinition : public ALevelScriptActor, public IStreamingEventListenerInterface
27{
28 GENERATED_BODY()
29
30public:
31 static AUStageFlowDefinition* GetStageFlowDefinition(const ULevel* CurrentLoadedLevel, ULevelStreamingData* Data);
32
33public:
34 //
35 UFUNCTION()
36 virtual void OnLevelLoaded(ULevel* NewLevel, const ULevelStreamingData* LevelStreamingData) final;
37
38 //
39 UFUNCTION()
40 virtual void OnLevelUnloaded() final;
41
42 //
43 UFUNCTION()
44 virtual void OnLevelStreamingStarted() final;
45
46 //
47 UFUNCTION()
48 virtual void OnLevelStreamingEnded() final;
49
50 //플레이어 무기가 변경되었을 때.
51 UFUNCTION()
52 void OnPlayerWeaponChanged(FGameplayTag PreviousWeaponTag, FGameplayTag NewWeaponTag);
53
54protected:
55 UFUNCTION(BlueprintCallable, meta=(BlueprintPrivate="true"))
56 virtual void BeginPlay() override;
57
58 //
59 UFUNCTION(BlueprintCallable, meta=(BlueprintPrivate="true"))
60 virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
61
62 //첫 번째 웨이브 스폰 준비가 완료됐을 때.
63 UFUNCTION()
64 void OnWaveReadyToSpawn(const FWaveDataCollection& SpawnData);
65
66 //웨이브가 시작됐을 때.
67 UFUNCTION()
68 void OnWaveStarted(const FWaveDataCollection& WaveDataCollection, const int32 CurrentWaveIndex);
69
70 //웨이브가 클리어됐을 때.
71 UFUNCTION()
72 void OnWaveCleared(const FWaveDataCollection& WaveDataCollection, const int32 ClearedWaveIndex, const int32 NextWaveIndex);
73
74 //모든 웨이브가 클리어됐을 때.
75 UFUNCTION()
76 void OnAllWavesCleared();
77
78protected:
79 //
80 UFUNCTION(BlueprintImplementableEvent, Category = "Stage|Flow")
81 void OnLevelLoaded_Internal(const ULevelStreamingData* LevelStreamingData);
82
83 //
84 UFUNCTION(BlueprintImplementableEvent, Category = "Stage|Flow")
85 void OnLevelUnloaded_Internal();
86
87 //
88 UFUNCTION(BlueprintImplementableEvent, Category = "Stage|Flow")
89 void OnLevelStreamingStarted_Internal();
90
91 //
92 UFUNCTION(BlueprintImplementableEvent, Category = "Stage|Flow")
93 void OnLevelStreamingEnded_Internal();
94
95 //첫 번째 웨이브 스폰 준비가 완료됐을 때.
96 UFUNCTION(BlueprintImplementableEvent, Category = "Stage|Flow|Wave")
97 void OnWaveReadyToSpawn_Internal(const FWaveDataCollection& SpawnData);
98
99 //웨이브가 시작됐을 때.
100 UFUNCTION(BlueprintImplementableEvent, Category = "Stage|Flow|Wave")
101 void OnWaveStarted_Internal(const FWaveDataCollection& WaveDataCollection, const int32 CurrentWaveIndex);
102
103 //웨이브가 클리어됐을 때.
104 UFUNCTION(BlueprintImplementableEvent, Category = "Stage|Flow|Wave")
105 void OnWaveCleared_Internal(const FWaveDataCollection& WaveDataCollection, const int32 ClearedWaveIndex, const int32 NextWaveIndex);
106
107 //모든 웨이브가 클리어됐을 때.
108 UFUNCTION(BlueprintImplementableEvent, Category = "Stage|Flow|Wave")
109 void OnAllWavesCleared_Internal();
110
111 //플레이어 무기가 교체되었을 때.
112 UFUNCTION(BlueprintImplementableEvent, Category = "Stage|Flow|Weapon")
113 void OnPlayerWeaponChanged_Internal(FGameplayTag PreviousWeaponTag, FGameplayTag NewWeaponTag);
114
115public:
117 UFUNCTION(BlueprintPure, Category = "Stage|Flow")
118 FORCEINLINE ULevel* GetStreamedLevel() const
119 {
120 return CurrentLevel.Get();
121 }
122
123 UFUNCTION(BlueprintPure, Category = "Stage|Flow")
124 FORCEINLINE AMainPlayerCharacter* GetPlayer() const
125 {
126 return Player.Get();
127 }
128
129 UFUNCTION(BlueprintPure, Category = "Stage|Flow")
130 FORCEINLINE ULevelStreamingData* GetStreamingData() const
131 {
132 return StreamingData.Get();
133 }
134
135 UPROPERTY(Transient)
137
138 UPROPERTY(Transient)
139 TWeakObjectPtr<UWorld> CachedWorld;
140
141 UPROPERTY(Transient)
142 TWeakObjectPtr<ULevel> CurrentLevel;
143
144 UPROPERTY(Transient)
145 TObjectPtr<ULevelStreamingData> StreamingData;
146};
Definition EventGate.h:31
Definition MainPlayerCharacter.h:39
Definition StageFlowDefinition.h:27
Definition StreamingEventListenerInterface.h:23
Definition LevelStreamingData.h:19
Definition LevelStreamingEffect.h:121
Definition StageManifest.h:74