feat: cleanup ds data asset
This commit is contained in:
@@ -56,6 +56,18 @@ struct FRRDADataHolderHeaterData
|
||||
TMap<TSubclassOf<UFGItemDescriptor>, URRDAHeaterDataAsset*> Data;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FRRDADataHolderDSBuildingData
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY()
|
||||
URRDADataAssetDSAdapterCovers* AdapterCovers;
|
||||
|
||||
UPROPERTY()
|
||||
URRDADataAssetDSModAdapter* ModAdapter;
|
||||
};
|
||||
|
||||
UCLASS()
|
||||
class REFINEDRDAPI_API URRDADataAssetSubsystem : public UGameInstanceSubsystem
|
||||
{
|
||||
@@ -85,12 +97,13 @@ public:
|
||||
void ReCacheHeaterDataAssets();
|
||||
void ReCacheGeneratorDataAssets();
|
||||
void ReCacheDSModAdapterDataAssets();
|
||||
void ReCacheDSAdapterCoversDataAssets();
|
||||
|
||||
public:
|
||||
// Dirt Functions
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|FF")
|
||||
int32 GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const;
|
||||
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|FF")
|
||||
URRDADirtDataAsset* GetDataForDirtItem(TSubclassOf<UFGItemDescriptor> Item) const;
|
||||
|
||||
@@ -99,21 +112,28 @@ public:
|
||||
|
||||
// DS Mod Adapter Functions
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|DS")
|
||||
int32 GetAllModAdapterBuildingClasses(TArray<TSubclassOf<AFGBuildableFactory>>& OutBuildingClasses) const;
|
||||
|
||||
int32 GetAllDSBuildingClasses(TArray<TSubclassOf<AFGBuildableFactory>>& OutBuildingClasses) const;
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|DS")
|
||||
URRDADataAssetDSModAdapter* GetModAdapterDataAssetForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|DS")
|
||||
TArray<URRDADataAssetDSModAdapter*> GetAllModAdapterDataAssets() const;
|
||||
|
||||
// DS Adapter Covers Functions
|
||||
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|DS")
|
||||
URRDADataAssetDSAdapterCovers* GetDSAdapterCoverDataAssetForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|DS")
|
||||
TArray<URRDADataAssetDSAdapterCovers*> GetAllDSAdapterCoverDataAssets() const;
|
||||
|
||||
// Turbine Functions
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
bool GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
||||
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
URRDATurbineDataAsset* GetTurbineItemData(TSubclassOf<UFGItemDescriptor>Item, int32 Tier) const;
|
||||
|
||||
URRDATurbineDataAsset* GetTurbineItemData(TSubclassOf<UFGItemDescriptor> Item, int32 Tier) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
bool GetAllTurbineRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
||||
|
||||
@@ -126,9 +146,9 @@ public:
|
||||
// Cooler Functions
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
bool GetAllCoolerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDACoolerType Type) const;
|
||||
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
URRDACoolerDataAsset* GetCoolerItemData(TSubclassOf<UFGItemDescriptor>Item, ERRDACoolerType Type) const;
|
||||
URRDACoolerDataAsset* GetCoolerItemData(TSubclassOf<UFGItemDescriptor> Item, ERRDACoolerType Type) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
URRDACoolerDataAsset* GetDefaultCoolerAsset(ERRDACoolerType Type) const;
|
||||
@@ -143,10 +163,10 @@ public:
|
||||
// Boiler Functions
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
bool GetAllBoilerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
||||
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
URRDABoilerDataAsset* GetBoilerItemData(TSubclassOf<UFGItemDescriptor>Item, int32 Tier) const;
|
||||
|
||||
URRDABoilerDataAsset* GetBoilerItemData(TSubclassOf<UFGItemDescriptor> Item, int32 Tier) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
bool GetAllBoilerRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
||||
|
||||
@@ -159,10 +179,10 @@ public:
|
||||
// Heater Functions
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
bool GetAllHeaterItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const;
|
||||
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
URRDAHeaterDataAsset* GetHeaterItemData(TSubclassOf<UFGItemDescriptor>Item, ERRDAHeaterType Type) const;
|
||||
|
||||
URRDAHeaterDataAsset* GetHeaterItemData(TSubclassOf<UFGItemDescriptor> Item, ERRDAHeaterType Type) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
bool GetAllHeaterRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const;
|
||||
|
||||
@@ -178,7 +198,7 @@ public:
|
||||
* @param OutDataAssets - Set of data assets
|
||||
* @return true if found any data assets
|
||||
*/
|
||||
template<class T>
|
||||
template <class T>
|
||||
bool FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets);
|
||||
|
||||
public:
|
||||
@@ -186,20 +206,20 @@ public:
|
||||
TMap<TSubclassOf<UFGItemDescriptor>, URRDADirtDataAsset*> mDirtAssets;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||
TMap<TSubclassOf<AFGBuildableFactory>, URRDADataAssetDSModAdapter*> mDSModAdapterAssets;
|
||||
|
||||
TMap<TSubclassOf<AFGBuildableFactory>, FRRDADataHolderDSBuildingData> mDSBuildingData;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||
TMap<int32, URRDAGeneratorDataAsset*> mGeneratorAssets;
|
||||
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||
TMap<int32, FRRDADataHolderTurbineData> mTurbineAssets;
|
||||
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||
TMap<int32, FRRDADataHolderBoilerData> mBoilerAssets;
|
||||
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||
TMap<ERRDACoolerType, FRRDADataHolderCoolerData> mCoolerAssets;
|
||||
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||
TMap<ERRDAHeaterType, FRRDADataHolderHeaterData> mHeaterAssets;
|
||||
|
||||
@@ -211,10 +231,9 @@ public:
|
||||
};
|
||||
|
||||
template <class T>
|
||||
bool URRDADataAssetSubsystem::FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets)
|
||||
{
|
||||
bool URRDADataAssetSubsystem::FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets) {
|
||||
OutDataAssets.Empty();
|
||||
|
||||
|
||||
// Find list of all UStat, and USkill assets in Content Browser.
|
||||
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(FName("AssetRegistry"));
|
||||
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
|
||||
@@ -225,24 +244,21 @@ bool URRDADataAssetSubsystem::FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets)
|
||||
// Split assets into separate arrays.
|
||||
for (const FAssetData& Asset : AssetList) {
|
||||
UObject* Obj = Asset.GetAsset();
|
||||
|
||||
|
||||
T* CastedAsset = Cast<T>(Obj);
|
||||
if(!CastedAsset)
|
||||
{
|
||||
if (!CastedAsset) {
|
||||
UE_LOG(LogRRDApi, Warning, TEXT("Invalid asset type: %s"), *Asset.AssetName.ToString());
|
||||
continue;
|
||||
}
|
||||
|
||||
if(URRDADataAssetBase* BaseAsset = Cast<URRDADataAssetBase>(Obj))
|
||||
{
|
||||
if(URRDADataAssetBase::IsEnabled(BaseAsset, GetWorld()))
|
||||
{
|
||||
if (URRDADataAssetBase* BaseAsset = Cast<URRDADataAssetBase>(Obj)) {
|
||||
if (URRDADataAssetBase::IsEnabled(BaseAsset, GetWorld())) {
|
||||
UE_LOG(LogRRDApi, Log, TEXT("Found %s"), *BaseAsset->GetPathName());
|
||||
OutDataAssets.Add(CastedAsset);
|
||||
mEnabledDataAssets.Add(BaseAsset);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
UE_LOG(LogRRDApi, Warning, TEXT("Asset Disabled: %s"), *BaseAsset->GetPathName());
|
||||
mDisabledDataAssets.Add(BaseAsset);
|
||||
}
|
||||
@@ -250,4 +266,4 @@ bool URRDADataAssetSubsystem::FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets)
|
||||
|
||||
UE_LOG(LogRRDApi, Warning, TEXT("Found %d of: %s"), OutDataAssets.Num(), *T::StaticClass()->GetPathName());
|
||||
return OutDataAssets.Num() > 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user