feat: functions for Turbine
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "AssetRegistry/AssetRegistryModule.h"
|
||||
#include "DataAssets/RRDABoilerDataAsset.h"
|
||||
#include "DataAssets/RRDACoolerDataAsset.h"
|
||||
#include "DataAssets/RRDAGeneratorDataAsset.h"
|
||||
#include "DataAssets/RRDAHeaterDataAsset.h"
|
||||
#include "DataAssets/RRDATurbineDataAsset.h"
|
||||
|
||||
@@ -69,6 +70,7 @@ void URRDADataAssetSubsystem::StartScanForDataAssets()
|
||||
ReCacheDirtDataAssets();
|
||||
ReCacheHeaterDataAssets();
|
||||
ReCacheTurbineDataAssets();
|
||||
ReCacheGeneratorDataAssets();
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::ReCacheDirtDataAssets()
|
||||
@@ -178,6 +180,21 @@ void URRDADataAssetSubsystem::ReCacheHeaterDataAssets() {
|
||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheHeaterDataAssets: %d"), mTurbineAssets.Num());
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::ReCacheGeneratorDataAssets()
|
||||
{
|
||||
mHeaterAssets.Empty();
|
||||
TSet<URRDAGeneratorDataAsset*> DataAssets;
|
||||
if(FindAllDataAssetsOfClass(DataAssets))
|
||||
{
|
||||
for (URRDAGeneratorDataAsset* DataAsset : DataAssets)
|
||||
{
|
||||
mGeneratorAssets.Add(DataAsset->mTier, DataAsset);
|
||||
}
|
||||
}
|
||||
|
||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheHeaterDataAssets: %d"), mTurbineAssets.Num());
|
||||
}
|
||||
|
||||
int32 URRDADataAssetSubsystem::GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const
|
||||
{
|
||||
return mDirtAssets.GetKeys(Items);
|
||||
@@ -191,3 +208,69 @@ URRDADirtDataAsset* URRDADataAssetSubsystem::GetDataForDirtItem(TSubclassOf<UFGI
|
||||
return *Desc;
|
||||
}
|
||||
|
||||
TArray<URRDADirtDataAsset*> URRDADataAssetSubsystem::GetAllDirtAssets() const {
|
||||
TArray<URRDADirtDataAsset*> Assets;
|
||||
mDirtAssets.GenerateValueArray(Assets);
|
||||
return Assets;
|
||||
}
|
||||
|
||||
bool URRDADataAssetSubsystem::GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const
|
||||
{
|
||||
if(!mTurbineAssets.Contains(Tier)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Items.Empty();
|
||||
mTurbineAssets[Tier].GetKeys(Items);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool URRDADataAssetSubsystem::GetAllTurbineRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const {
|
||||
if(!mTurbineAssets.Contains(Tier)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Items.Empty();
|
||||
for (TTuple<TSubclassOf<UFGItemDescriptor>, URRDATurbineDataAsset*> TurbineAsset : mTurbineAssets[Tier])
|
||||
{
|
||||
Items.AddUnique(TurbineAsset.Key);
|
||||
if(TurbineAsset.Value->mWasteItem.ItemClass) {
|
||||
Items.AddUnique(TurbineAsset.Value->mWasteItem.ItemClass);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
TArray<URRDATurbineDataAsset*> URRDADataAssetSubsystem::GetAllTurbineAssets(int32 Tier) const {
|
||||
if(!mTurbineAssets.Contains(Tier)) {
|
||||
return TArray<URRDATurbineDataAsset*>();
|
||||
}
|
||||
|
||||
TArray<URRDATurbineDataAsset*> Assets;
|
||||
mTurbineAssets[Tier].GenerateValueArray(Assets);
|
||||
return Assets;
|
||||
}
|
||||
|
||||
URRDATurbineDataAsset* URRDADataAssetSubsystem::GetDefaultTurbineAsset(int32 Tier) const {
|
||||
if(!mTurbineAssets.Contains(Tier)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TArray<URRDATurbineDataAsset*> Assets;
|
||||
mTurbineAssets[Tier].GenerateValueArray(Assets);
|
||||
|
||||
// Return the first item in the tier
|
||||
return Assets[0];
|
||||
}
|
||||
|
||||
URRDATurbineDataAsset* URRDADataAssetSubsystem::GetTurbineItemData(TSubclassOf<UFGItemDescriptor> Item, int32 Tier) const
|
||||
{
|
||||
if(!mTurbineAssets.Contains(Tier)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return mTurbineAssets[Tier].FindRef(Item);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user