|
|
|
@@ -6,9 +6,10 @@
|
|
|
|
|
#include "AssetRegistry/AssetRegistryModule.h"
|
|
|
|
|
#include "DataAssets/RRDABoilerDataAsset.h"
|
|
|
|
|
#include "DataAssets/RRDACoolerDataAsset.h"
|
|
|
|
|
#include "DataAssets/RRDAGeneratorDataAsset.h"
|
|
|
|
|
#include "DataAssets/RRDADataAssetDSModAdapter.h"
|
|
|
|
|
#include "DataAssets/RRDAHeaterDataAsset.h"
|
|
|
|
|
#include "DataAssets/RRDATurbineDataAsset.h"
|
|
|
|
|
#include "Logging/StructuredLog.h"
|
|
|
|
|
|
|
|
|
|
URRDADataAssetSubsystem::URRDADataAssetSubsystem() {}
|
|
|
|
|
|
|
|
|
@@ -56,12 +57,11 @@ void URRDADataAssetSubsystem::Deinitialize()
|
|
|
|
|
mCoolerAssets.Empty();
|
|
|
|
|
mHeaterAssets.Empty();
|
|
|
|
|
mGeneratorAssets.Empty();
|
|
|
|
|
mDSModAdapterAssets.Empty();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void URRDADataAssetSubsystem::StartScanForDataAssets()
|
|
|
|
|
{
|
|
|
|
|
// UAssetManager& Manager = UAssetManager::Get();
|
|
|
|
|
// Manager.LoadPrimaryAssetsWithType(FPrimaryAssetType("RRDADataAsset"));
|
|
|
|
|
mDisabledDataAssets.Empty();
|
|
|
|
|
mEnabledDataAssets.Empty();
|
|
|
|
|
|
|
|
|
@@ -71,6 +71,7 @@ void URRDADataAssetSubsystem::StartScanForDataAssets()
|
|
|
|
|
ReCacheHeaterDataAssets();
|
|
|
|
|
ReCacheTurbineDataAssets();
|
|
|
|
|
ReCacheGeneratorDataAssets();
|
|
|
|
|
ReCacheDSModAdapterDataAssets();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void URRDADataAssetSubsystem::ReCacheDirtDataAssets()
|
|
|
|
@@ -191,6 +192,19 @@ void URRDADataAssetSubsystem::ReCacheGeneratorDataAssets()
|
|
|
|
|
UE_LOG(LogRRDApi, Log, TEXT("ReCacheGeneratorDataAssets: %d"), mGeneratorAssets.Num());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void URRDADataAssetSubsystem::ReCacheDSModAdapterDataAssets() {
|
|
|
|
|
mDSModAdapterAssets.Empty();
|
|
|
|
|
TSet<URRDADataAssetDSModAdapter*> DataAssets;
|
|
|
|
|
if(FindAllDataAssetsOfClass(DataAssets))
|
|
|
|
|
{
|
|
|
|
|
for (URRDADataAssetDSModAdapter* DataAsset : DataAssets)
|
|
|
|
|
{
|
|
|
|
|
mDSModAdapterAssets.Add(DataAsset->mBuildingClass, DataAsset);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
UE_LOGFMT(LogRRDApi, Log, "ReCacheDSModAdapterDataAssets: {0}", mDSModAdapterAssets.Num());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int32 URRDADataAssetSubsystem::GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const
|
|
|
|
|
{
|
|
|
|
|
if(!mDirtAssets.Num())
|
|
|
|
@@ -214,6 +228,27 @@ TArray<URRDADirtDataAsset*> URRDADataAssetSubsystem::GetAllDirtAssets() const {
|
|
|
|
|
return Assets;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int32 URRDADataAssetSubsystem::GetAllModAdapterBuildingClasses(TArray<TSubclassOf<AFGBuildableFactory>>& OutBuildingClasses) const {
|
|
|
|
|
if(!mDSModAdapterAssets.Num())
|
|
|
|
|
{
|
|
|
|
|
UE_LOG(LogRRDApi, Error, TEXT("No Mod Adapter Assets found!"));
|
|
|
|
|
}
|
|
|
|
|
return mDSModAdapterAssets.GetKeys(OutBuildingClasses);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
URRDADataAssetDSModAdapter* URRDADataAssetSubsystem::GetModAdapterDataAssetForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const {
|
|
|
|
|
if(!BuildingClass) return nullptr;
|
|
|
|
|
URRDADataAssetDSModAdapter* const* DataAsset = mDSModAdapterAssets.Find(BuildingClass);
|
|
|
|
|
if(!DataAsset) return nullptr;
|
|
|
|
|
return *DataAsset;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TArray<URRDADataAssetDSModAdapter*> URRDADataAssetSubsystem::GetAllModAdapterDataAssets() const {
|
|
|
|
|
TArray<URRDADataAssetDSModAdapter*> Assets;
|
|
|
|
|
mDSModAdapterAssets.GenerateValueArray(Assets);
|
|
|
|
|
return Assets;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool URRDADataAssetSubsystem::GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const
|
|
|
|
|
{
|
|
|
|
|
if(!mTurbineAssets.Contains(Tier)) {
|
|
|
|
|