5#include "CoreMinimal.h"
7#include "Engine/DataAsset.h"
21#include "StageManifest.generated.h"
37 UPROPERTY(Transient, BlueprintReadOnly, Category =
"Wave")
40 UPROPERTY(Transient, BlueprintReadOnly, Category = "Wave")
57 UPROPERTY(Transient, BlueprintReadOnly, Category =
"Wave")
60 UPROPERTY(Transient, BlueprintReadOnly, Category = "Wave")
88 TArray<FWaveSpawnEntry> GetAllSpawnTables()
const;
91 bool IsLastWave()
const;
94 UPROPERTY(Transient, BlueprintReadOnly, Category =
"Wave")
97 UPROPERTY(Transient, BlueprintReadOnly, Category = "Wave")
102 TArray<FName> ParsedSpawnIDs;
113USTRUCT(BlueprintType)
131USTRUCT(BlueprintType)
147 UPROPERTY(Transient, BlueprintReadOnly, Category =
"Section")
176 UFUNCTION(BlueprintCallable, Category =
"Stage")
179 UFUNCTION(BlueprintCallable, Category =
"Toast")
182 UFUNCTION(BlueprintCallable, Category =
"Portrait")
185 UFUNCTION(BlueprintCallable, Category =
"Cutscene")
188 UFUNCTION(BlueprintCallable, Category =
"Tutorial")
191 UFUNCTION(BlueprintCallable, Category =
"Constellation")
194 UFUNCTION(BlueprintCallable, Category =
"Constellation")
198 UFUNCTION(BlueprintCallable, Category =
"Constellation")
207 UFUNCTION(BlueprintCallable, Category =
"Situation")
212 UFUNCTION(BlueprintCallable, Category = "Situation")
216 UFUNCTION(BlueprintCallable, Category = "Level")
220 UFUNCTION(BlueprintCallable, Category = "Level")
224 UFUNCTION(BlueprintPure, Category = "Level")
230 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category =
"DataTable")
233 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
236 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
239 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
242 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
245 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
248 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
251 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
254 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
257 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
260 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
263 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "DataTable")
271 template <typename TRow>
272 static
void FillRowMap(const TSoftObjectPtr<UDataTable>& TablePtr, const TCHAR* TableName, TMap<FName, TRow>& OutMap)
274 const UDataTable* Table = TablePtr.LoadSynchronous();
276 if (Table ==
nullptr)
278 LOG_WARNING(LogCKAsset,
"%s 로드 실패: DataTable이 nullptr입니다.", TableName);
282 for (
const TPair<FName, uint8*>& Pair : Table->GetRowMap())
284 if (
const TRow* Row =
reinterpret_cast<const TRow*
>(Pair.Value))
286 OutMap.Add(Pair.Key, *Row);
291 UPROPERTY(BlueprintReadOnly, Category =
"Stage", meta = (AllowPrivateAccess =
"true"))
294 UPROPERTY(BlueprintReadOnly, Category = "Stage", meta = (AllowPrivateAccess = "true"))
299 UPROPERTY(BlueprintReadOnly, Category = "Wave", meta = (AllowPrivateAccess = "true"))
310 UPROPERTY(BlueprintReadOnly, Category = "Constellation", meta = (AllowPrivateAccess = "true"))
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:39
Definition DataAssetBundle.h:19
Definition LevelStreamingData.h:19
Definition StageManifest.h:161
TSoftObjectPtr< UDataTable > LevelDataMap
Definition StageManifest.h:264
TMap< FName, FDT_SituationTable > SituationMap
Definition StageManifest.h:315
virtual void PostLoad() override
Definition StageManifest.cpp:253
virtual FPrimaryAssetId GetPrimaryAssetId() const override
Definition StageManifest.cpp:247
TSoftObjectPtr< UDataTable > MonsterDataMap
Definition StageManifest.h:240
virtual FDT_ScenarioCutsceneTable GetScenarioCutsceneTable(const FName &RowID)
Definition StageManifest.cpp:591
UStageManifest()
Definition StageManifest.cpp:230
TMap< FName, FMonsterDataCollection > MonsterMap
Definition StageManifest.h:300
virtual TArray< FDT_SituationTable > DrawSituationChoices(int32 PlayerLevel, const TArray< FName > &EquippedIDs, int32 DrawCount=3)
Definition StageManifest.cpp:495
virtual FDT_PortraitTable GetPortraitTable(const FName &RowID)
Definition StageManifest.cpp:579
virtual FDT_ConstellationTable GetConstellationTable(const FName &RowID)
Definition StageManifest.cpp:615
void BuildCache()
Definition StageManifest.cpp:285
virtual float GetRequiredExp(int32 Level)
Definition StageManifest.cpp:471
virtual FDT_ToastMessageTable GetToastMessageTable(const FName &RowID)
Definition StageManifest.cpp:567
TSoftObjectPtr< UDataTable > ToastMessageDataMap
Definition StageManifest.h:243
TMap< FName, FWaveDataCollection > WaveMap
Definition StageManifest.h:295
TMap< FName, FDT_PortraitTable > PortraitMap
Definition StageManifest.h:304
TSoftObjectPtr< UDataTable > SituationDataMap
Definition StageManifest.h:261
TSoftObjectPtr< UDataTable > ConstellationDataMap
Definition StageManifest.h:255
TMap< FName, FDT_ScenarioCutsceneTable > ScenarioCutsceneMap
Definition StageManifest.h:306
FORCEINLINE const TMap< FName, FDT_ConstellationTable > & GetConstellationMap() const
Definition StageManifest.h:202
virtual void OnBundleLoaded_Implementation(FGameplayTag BundleTag) override
Definition StageManifest.cpp:260
TMap< FName, FSectionData > SectionMap
Definition StageManifest.h:292
virtual FDT_ConstellationTable GetRandomConstellationTable()
Definition StageManifest.cpp:639
virtual FSectionData GetSectionTable(const FName &SectionID)
Definition StageManifest.cpp:656
TMap< FName, FDT_ConstellationTable > ConstellationMap
Definition StageManifest.h:311
virtual FDT_BuffTable GetBuffTable(const FName &RowID)
Definition StageManifest.cpp:627
TSoftObjectPtr< UDataTable > WaveDataMap
Definition StageManifest.h:234
bool HasLevelData() const
Definition StageManifest.h:225
TSoftObjectPtr< UDataTable > PortraitDataMap
Definition StageManifest.h:246
virtual FDT_SituationTable GetSituationTable(const FName &RowID)
Definition StageManifest.cpp:459
virtual FDT_TutorialTable GetTutorialTable(const FName &RowID)
Definition StageManifest.cpp:603
TSoftObjectPtr< UDataTable > TutorialDataMap
Definition StageManifest.h:252
TMap< FName, FDT_BuffTable > BuffMap
Definition StageManifest.h:313
TMap< FName, TArray< FWaveSpawnEntry > > SpawnMap
Definition StageManifest.h:297
TSoftObjectPtr< UDataTable > SpawnDataMap
Definition StageManifest.h:237
TMap< FName, FDT_TutorialTable > TutorialMap
Definition StageManifest.h:308
TSoftObjectPtr< UDataTable > ScenarioCutsceneDataMap
Definition StageManifest.h:249
virtual void OnBundleReleased_Implementation(FGameplayTag BundleTag) override
Definition StageManifest.cpp:267
virtual FDT_LevelTable GetLevelTable(int32 Level)
Definition StageManifest.cpp:483
static void FillRowMap(const TSoftObjectPtr< UDataTable > &TablePtr, const TCHAR *TableName, TMap< FName, TRow > &OutMap)
Definition StageManifest.h:272
TSoftObjectPtr< UDataTable > BuffDataMap
Definition StageManifest.h:258
TSoftObjectPtr< UDataTable > SectionDataMap
Definition StageManifest.h:231
TMap< int32, FDT_LevelTable > LevelMap
Definition StageManifest.h:317
TMap< FName, FDT_ToastMessageTable > ToastMessageMap
Definition StageManifest.h:302
Definition DT_BuffTable.h:15
Definition DT_ConstellationTable.h:19
Definition DT_LevelTable.h:14
Definition DT_PortraitTable.h:10
Definition DT_ScenarioCutsceneTable.h:10
Definition DT_SectionTable.h:8
Definition DT_SituationTable.h:20
Definition DT_ToastMessageTable.h:10
Definition FDT_TutorialTable.h:10
Definition DT_WaveTable.h:8
Definition StatTable.h:47
Definition StageManifest.h:29
FMonsterDataCollection(const FName Monster_ID)
Definition StageManifest.h:34
FMonsterDataCollection()
Definition StageManifest.h:33
Definition StageManifest.h:133
FSectionData(const FDT_SectionTable &Table, UStageManifest *InManifest)
Definition StageManifest.h:138
FSectionData()
Definition StageManifest.h:137
Definition StageManifest.h:115
FStageData()
Definition StageManifest.h:119
FStageData(UStageManifest *InManifest)
Definition StageManifest.h:120
Definition StageManifestHandle.h:13
Definition StageManifest.h:74
FWaveDataCollection()
Definition StageManifest.h:78
FWaveDataCollection(const FName InWave_ID, UStageManifest *InManifest)
Definition StageManifest.h:79
Definition StageManifest.h:47
FWaveSpawnData()
Definition StageManifest.h:51
FWaveSpawnData(const FName Wave_ID, const FStageManifestHandle &InHandle)
Definition StageManifest.h:52
Definition DT_SpawnTable.h:9