feat: cleanup ds data asset
This commit is contained in:
parent
4c8e0b59a8
commit
4d01f587e4
@ -13,29 +13,25 @@
|
|||||||
|
|
||||||
URRDADataAssetSubsystem::URRDADataAssetSubsystem() {}
|
URRDADataAssetSubsystem::URRDADataAssetSubsystem() {}
|
||||||
|
|
||||||
URRDADataAssetSubsystem* URRDADataAssetSubsystem::Get(UObject* Context)
|
URRDADataAssetSubsystem* URRDADataAssetSubsystem::Get(UObject* Context) {
|
||||||
{
|
if (IsValid(Context)) {
|
||||||
if (IsValid(Context))
|
|
||||||
{
|
|
||||||
return Context->GetWorld()->GetGameInstance()->GetSubsystem<URRDADataAssetSubsystem>();
|
return Context->GetWorld()->GetGameInstance()->GetSubsystem<URRDADataAssetSubsystem>();
|
||||||
}
|
}
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDADataAssetSubsystem* URRDADataAssetSubsystem::GetChecked(UObject* Context)
|
URRDADataAssetSubsystem* URRDADataAssetSubsystem::GetChecked(UObject* Context) {
|
||||||
{
|
|
||||||
URRDADataAssetSubsystem* Subsystem = Get(Context);
|
URRDADataAssetSubsystem* Subsystem = Get(Context);
|
||||||
fgcheck(Subsystem);
|
fgcheck(Subsystem);
|
||||||
return Subsystem;
|
return Subsystem;
|
||||||
}
|
}
|
||||||
|
|
||||||
void URRDADataAssetSubsystem::Initialize(FSubsystemCollectionBase& Collection)
|
void URRDADataAssetSubsystem::Initialize(FSubsystemCollectionBase& Collection) {
|
||||||
{
|
|
||||||
Super::Initialize(Collection);
|
Super::Initialize(Collection);
|
||||||
|
|
||||||
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(FName("AssetRegistry"));
|
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(FName("AssetRegistry"));
|
||||||
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
|
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
|
||||||
|
|
||||||
// Must wait until all assets are discovered before populating list of assets.
|
// Must wait until all assets are discovered before populating list of assets.
|
||||||
if (AssetRegistry.IsLoadingAssets()) {
|
if (AssetRegistry.IsLoadingAssets()) {
|
||||||
AssetRegistry.OnFilesLoaded().AddUObject(this, &URRDADataAssetSubsystem::StartScanForDataAssets);
|
AssetRegistry.OnFilesLoaded().AddUObject(this, &URRDADataAssetSubsystem::StartScanForDataAssets);
|
||||||
@ -45,8 +41,7 @@ void URRDADataAssetSubsystem::Initialize(FSubsystemCollectionBase& Collection)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void URRDADataAssetSubsystem::Deinitialize()
|
void URRDADataAssetSubsystem::Deinitialize() {
|
||||||
{
|
|
||||||
Super::Deinitialize();
|
Super::Deinitialize();
|
||||||
|
|
||||||
mEnabledDataAssets.Empty();
|
mEnabledDataAssets.Empty();
|
||||||
@ -57,11 +52,10 @@ void URRDADataAssetSubsystem::Deinitialize()
|
|||||||
mCoolerAssets.Empty();
|
mCoolerAssets.Empty();
|
||||||
mHeaterAssets.Empty();
|
mHeaterAssets.Empty();
|
||||||
mGeneratorAssets.Empty();
|
mGeneratorAssets.Empty();
|
||||||
mDSModAdapterAssets.Empty();
|
mDSBuildingData.Empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void URRDADataAssetSubsystem::StartScanForDataAssets()
|
void URRDADataAssetSubsystem::StartScanForDataAssets() {
|
||||||
{
|
|
||||||
mDisabledDataAssets.Empty();
|
mDisabledDataAssets.Empty();
|
||||||
mEnabledDataAssets.Empty();
|
mEnabledDataAssets.Empty();
|
||||||
|
|
||||||
@ -71,34 +65,31 @@ void URRDADataAssetSubsystem::StartScanForDataAssets()
|
|||||||
ReCacheHeaterDataAssets();
|
ReCacheHeaterDataAssets();
|
||||||
ReCacheTurbineDataAssets();
|
ReCacheTurbineDataAssets();
|
||||||
ReCacheGeneratorDataAssets();
|
ReCacheGeneratorDataAssets();
|
||||||
|
|
||||||
|
mDSBuildingData.Empty();
|
||||||
ReCacheDSModAdapterDataAssets();
|
ReCacheDSModAdapterDataAssets();
|
||||||
|
ReCacheDSAdapterCoversDataAssets();
|
||||||
}
|
}
|
||||||
|
|
||||||
void URRDADataAssetSubsystem::ReCacheDirtDataAssets()
|
void URRDADataAssetSubsystem::ReCacheDirtDataAssets() {
|
||||||
{
|
|
||||||
mDirtAssets.Empty();
|
mDirtAssets.Empty();
|
||||||
TSet<URRDADirtDataAsset*> DataAssets;
|
TSet<URRDADirtDataAsset*> DataAssets;
|
||||||
if(FindAllDataAssetsOfClass(DataAssets))
|
if (FindAllDataAssetsOfClass(DataAssets)) {
|
||||||
{
|
for (URRDADirtDataAsset* DataAsset : DataAssets) {
|
||||||
for (URRDADirtDataAsset* DataAsset : DataAssets)
|
|
||||||
{
|
|
||||||
mDirtAssets.Add(DataAsset->mItem, DataAsset);
|
mDirtAssets.Add(DataAsset->mItem, DataAsset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheDirtDataAssets: %d"), mDirtAssets.Num());
|
UE_LOG(LogRRDApi, Log, TEXT("ReCacheDirtDataAssets: %d"), mDirtAssets.Num());
|
||||||
}
|
}
|
||||||
|
|
||||||
void URRDADataAssetSubsystem::ReCacheTurbineDataAssets()
|
void URRDADataAssetSubsystem::ReCacheTurbineDataAssets() {
|
||||||
{
|
|
||||||
mTurbineAssets.Empty();
|
mTurbineAssets.Empty();
|
||||||
TSet<URRDATurbineDataAsset*> DataAssets;
|
TSet<URRDATurbineDataAsset*> DataAssets;
|
||||||
int32 Added = 0;
|
int32 Added = 0;
|
||||||
if(FindAllDataAssetsOfClass(DataAssets))
|
if (FindAllDataAssetsOfClass(DataAssets)) {
|
||||||
{
|
for (URRDATurbineDataAsset* DataAsset : DataAssets) {
|
||||||
for (URRDATurbineDataAsset* DataAsset : DataAssets)
|
if (!mTurbineAssets.Contains(DataAsset->mTier)) {
|
||||||
{
|
mTurbineAssets.Add(DataAsset->mTier, FRRDADataHolderTurbineData());
|
||||||
if(!mTurbineAssets.Contains(DataAsset->mTier)) {
|
|
||||||
mTurbineAssets.Add(DataAsset->mTier, FRRDADataHolderTurbineData());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fgcheckf(DataAsset->mItem.ItemClass, TEXT("TurbineDataAsset %s has no ItemClass"), *DataAsset->GetPathName());
|
fgcheckf(DataAsset->mItem.ItemClass, TEXT("TurbineDataAsset %s has no ItemClass"), *DataAsset->GetPathName());
|
||||||
@ -107,7 +98,7 @@ void URRDADataAssetSubsystem::ReCacheTurbineDataAssets()
|
|||||||
Added++;
|
Added++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheTurbineDataAssets: %d"), Added);
|
UE_LOG(LogRRDApi, Log, TEXT("ReCacheTurbineDataAssets: %d"), Added);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,12 +106,10 @@ void URRDADataAssetSubsystem::ReCacheBoilerDataAssets() {
|
|||||||
mBoilerAssets.Empty();
|
mBoilerAssets.Empty();
|
||||||
TSet<URRDABoilerDataAsset*> DataAssets;
|
TSet<URRDABoilerDataAsset*> DataAssets;
|
||||||
int32 Added = 0;
|
int32 Added = 0;
|
||||||
if(FindAllDataAssetsOfClass(DataAssets))
|
if (FindAllDataAssetsOfClass(DataAssets)) {
|
||||||
{
|
for (URRDABoilerDataAsset* DataAsset : DataAssets) {
|
||||||
for (URRDABoilerDataAsset* DataAsset : DataAssets)
|
if (!mBoilerAssets.Contains(DataAsset->mTier)) {
|
||||||
{
|
mBoilerAssets.Add(DataAsset->mTier, FRRDADataHolderBoilerData());
|
||||||
if(!mBoilerAssets.Contains(DataAsset->mTier)) {
|
|
||||||
mBoilerAssets.Add(DataAsset->mTier, FRRDADataHolderBoilerData());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fgcheckf(DataAsset->mInput.ItemClass, TEXT("BoilerDataAsset %s has no ItemClass"), *DataAsset->GetPathName());
|
fgcheckf(DataAsset->mInput.ItemClass, TEXT("BoilerDataAsset %s has no ItemClass"), *DataAsset->GetPathName());
|
||||||
@ -129,7 +118,7 @@ void URRDADataAssetSubsystem::ReCacheBoilerDataAssets() {
|
|||||||
Added++;
|
Added++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheBoilerDataAssets: %d"), Added);
|
UE_LOG(LogRRDApi, Log, TEXT("ReCacheBoilerDataAssets: %d"), Added);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,12 +126,10 @@ void URRDADataAssetSubsystem::ReCacheCoolerDataAssets() {
|
|||||||
mCoolerAssets.Empty();
|
mCoolerAssets.Empty();
|
||||||
TSet<URRDACoolerDataAsset*> DataAssets;
|
TSet<URRDACoolerDataAsset*> DataAssets;
|
||||||
int32 Added = 0;
|
int32 Added = 0;
|
||||||
if(FindAllDataAssetsOfClass(DataAssets))
|
if (FindAllDataAssetsOfClass(DataAssets)) {
|
||||||
{
|
for (URRDACoolerDataAsset* DataAsset : DataAssets) {
|
||||||
for (URRDACoolerDataAsset* DataAsset : DataAssets)
|
if (!mCoolerAssets.Contains(DataAsset->mType)) {
|
||||||
{
|
mCoolerAssets.Add(DataAsset->mType, FRRDADataHolderCoolerData());
|
||||||
if(!mCoolerAssets.Contains(DataAsset->mType)) {
|
|
||||||
mCoolerAssets.Add(DataAsset->mType, FRRDADataHolderCoolerData());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fgcheckf(DataAsset->mItem, TEXT("CoolerDataAsset %s has no ItemClass"), *DataAsset->GetPathName());
|
fgcheckf(DataAsset->mItem, TEXT("CoolerDataAsset %s has no ItemClass"), *DataAsset->GetPathName());
|
||||||
@ -151,7 +138,7 @@ void URRDADataAssetSubsystem::ReCacheCoolerDataAssets() {
|
|||||||
Added++;
|
Added++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheCoolerDataAssets: %d"), Added);
|
UE_LOG(LogRRDApi, Log, TEXT("ReCacheCoolerDataAssets: %d"), Added);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,66 +146,82 @@ void URRDADataAssetSubsystem::ReCacheHeaterDataAssets() {
|
|||||||
mHeaterAssets.Empty();
|
mHeaterAssets.Empty();
|
||||||
TSet<URRDAHeaterDataAsset*> DataAssets;
|
TSet<URRDAHeaterDataAsset*> DataAssets;
|
||||||
int32 Added = 0;
|
int32 Added = 0;
|
||||||
if(FindAllDataAssetsOfClass(DataAssets))
|
if (FindAllDataAssetsOfClass(DataAssets)) {
|
||||||
{
|
for (URRDAHeaterDataAsset* DataAsset : DataAssets) {
|
||||||
for (URRDAHeaterDataAsset* DataAsset : DataAssets)
|
if (!mHeaterAssets.Contains(DataAsset->mType)) {
|
||||||
{
|
mHeaterAssets.Add(DataAsset->mType, FRRDADataHolderHeaterData());
|
||||||
if(!mHeaterAssets.Contains(DataAsset->mType)) {
|
|
||||||
mHeaterAssets.Add(DataAsset->mType, FRRDADataHolderHeaterData());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fgcheckf(DataAsset->mInput.ItemClass, TEXT("HeaterDataAsset %s has no ItemClass"), *DataAsset->GetPathName());
|
fgcheckf(DataAsset->mInput.ItemClass, TEXT("HeaterDataAsset %s has no ItemClass"), *DataAsset->GetPathName());
|
||||||
|
|
||||||
mHeaterAssets[DataAsset->mType].Data.Add(DataAsset->mInput.ItemClass, DataAsset);
|
mHeaterAssets[DataAsset->mType].Data.Add(DataAsset->mInput.ItemClass, DataAsset);
|
||||||
Added++;
|
Added++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheHeaterDataAssets: %d"), Added);
|
UE_LOG(LogRRDApi, Log, TEXT("ReCacheHeaterDataAssets: %d"), Added);
|
||||||
}
|
}
|
||||||
|
|
||||||
void URRDADataAssetSubsystem::ReCacheGeneratorDataAssets()
|
void URRDADataAssetSubsystem::ReCacheGeneratorDataAssets() {
|
||||||
{
|
|
||||||
mGeneratorAssets.Empty();
|
mGeneratorAssets.Empty();
|
||||||
TSet<URRDAGeneratorDataAsset*> DataAssets;
|
TSet<URRDAGeneratorDataAsset*> DataAssets;
|
||||||
if(FindAllDataAssetsOfClass(DataAssets))
|
if (FindAllDataAssetsOfClass(DataAssets)) {
|
||||||
{
|
for (URRDAGeneratorDataAsset* DataAsset : DataAssets) {
|
||||||
for (URRDAGeneratorDataAsset* DataAsset : DataAssets)
|
|
||||||
{
|
|
||||||
mGeneratorAssets.Add(DataAsset->mTier, DataAsset);
|
mGeneratorAssets.Add(DataAsset->mTier, DataAsset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheGeneratorDataAssets: %d"), mGeneratorAssets.Num());
|
UE_LOG(LogRRDApi, Log, TEXT("ReCacheGeneratorDataAssets: %d"), mGeneratorAssets.Num());
|
||||||
}
|
}
|
||||||
|
|
||||||
void URRDADataAssetSubsystem::ReCacheDSModAdapterDataAssets() {
|
void URRDADataAssetSubsystem::ReCacheDSModAdapterDataAssets() {
|
||||||
mDSModAdapterAssets.Empty();
|
|
||||||
TSet<URRDADataAssetDSModAdapter*> DataAssets;
|
TSet<URRDADataAssetDSModAdapter*> DataAssets;
|
||||||
if(FindAllDataAssetsOfClass(DataAssets))
|
if (FindAllDataAssetsOfClass(DataAssets)) {
|
||||||
{
|
for (URRDADataAssetDSModAdapter* DataAsset : DataAssets) {
|
||||||
for (URRDADataAssetDSModAdapter* DataAsset : DataAssets)
|
FRRDADataHolderDSBuildingData* existingData = mDSBuildingData.Find(DataAsset->mBuildingClass);
|
||||||
{
|
if (existingData == nullptr) {
|
||||||
mDSModAdapterAssets.Add(DataAsset->mBuildingClass, DataAsset);
|
FRRDADataHolderDSBuildingData newData = FRRDADataHolderDSBuildingData();
|
||||||
|
newData.ModAdapter = DataAsset;
|
||||||
|
|
||||||
|
mDSBuildingData.Add(DataAsset->mBuildingClass, newData);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
existingData->ModAdapter = DataAsset;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UE_LOGFMT(LogRRDApi, Log, "ReCacheDSModAdapterDataAssets: {0}", mDSModAdapterAssets.Num());
|
UE_LOGFMT(LogRRDApi, Log, "ReCacheDSModAdapterDataAssets: {0}", mDSBuildingData.Num());
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 URRDADataAssetSubsystem::GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const
|
void URRDADataAssetSubsystem::ReCacheDSAdapterCoversDataAssets() {
|
||||||
{
|
TSet<URRDADataAssetDSAdapterCovers*> DataAssets;
|
||||||
if(!mDirtAssets.Num())
|
if (FindAllDataAssetsOfClass(DataAssets)) {
|
||||||
{
|
for (URRDADataAssetDSAdapterCovers* DataAsset : DataAssets) {
|
||||||
|
FRRDADataHolderDSBuildingData* existingData = mDSBuildingData.Find(DataAsset->mBuildingClass);
|
||||||
|
if (existingData == nullptr) {
|
||||||
|
FRRDADataHolderDSBuildingData newData = FRRDADataHolderDSBuildingData();
|
||||||
|
newData.AdapterCovers = DataAsset;
|
||||||
|
mDSBuildingData.Add(DataAsset->mBuildingClass, newData);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
existingData->AdapterCovers = DataAsset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UE_LOGFMT(LogRRDApi, Log, "ReCacheDSAdapterCoversDataAssets: {0}", mDSBuildingData.Num());
|
||||||
|
}
|
||||||
|
|
||||||
|
int32 URRDADataAssetSubsystem::GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const {
|
||||||
|
if (!mDirtAssets.Num()) {
|
||||||
UE_LOG(LogRRDApi, Error, TEXT("No Dirts found!"));
|
UE_LOG(LogRRDApi, Error, TEXT("No Dirts found!"));
|
||||||
}
|
}
|
||||||
return mDirtAssets.GetKeys(Items);
|
return mDirtAssets.GetKeys(Items);
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDADirtDataAsset* URRDADataAssetSubsystem::GetDataForDirtItem(TSubclassOf<UFGItemDescriptor> Item) const
|
URRDADirtDataAsset* URRDADataAssetSubsystem::GetDataForDirtItem(TSubclassOf<UFGItemDescriptor> Item) const {
|
||||||
{
|
if (!Item) return nullptr;
|
||||||
if(!Item) return nullptr;
|
|
||||||
URRDADirtDataAsset* const* Desc = mDirtAssets.Find(Item);
|
URRDADirtDataAsset* const* Desc = mDirtAssets.Find(Item);
|
||||||
if(!Desc) return nullptr;
|
if (!Desc) return nullptr;
|
||||||
return *Desc;
|
return *Desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,30 +231,63 @@ TArray<URRDADirtDataAsset*> URRDADataAssetSubsystem::GetAllDirtAssets() const {
|
|||||||
return Assets;
|
return Assets;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 URRDADataAssetSubsystem::GetAllModAdapterBuildingClasses(TArray<TSubclassOf<AFGBuildableFactory>>& OutBuildingClasses) const {
|
int32 URRDADataAssetSubsystem::GetAllDSBuildingClasses(TArray<TSubclassOf<AFGBuildableFactory>>& OutBuildingClasses) const {
|
||||||
if(!mDSModAdapterAssets.Num())
|
if (!mDSBuildingData.Num()) {
|
||||||
{
|
UE_LOG(LogRRDApi, Error, TEXT("No DS Buildings found!"));
|
||||||
UE_LOG(LogRRDApi, Error, TEXT("No Mod Adapter Assets found!"));
|
|
||||||
}
|
}
|
||||||
return mDSModAdapterAssets.GetKeys(OutBuildingClasses);
|
return mDSBuildingData.GetKeys(OutBuildingClasses);
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDADataAssetDSModAdapter* URRDADataAssetSubsystem::GetModAdapterDataAssetForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const {
|
URRDADataAssetDSModAdapter* URRDADataAssetSubsystem::GetModAdapterDataAssetForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const {
|
||||||
if(!BuildingClass) return nullptr;
|
if (!BuildingClass) return nullptr;
|
||||||
URRDADataAssetDSModAdapter* const* DataAsset = mDSModAdapterAssets.Find(BuildingClass);
|
|
||||||
if(!DataAsset) return nullptr;
|
const FRRDADataHolderDSBuildingData* data = mDSBuildingData.Find(BuildingClass);
|
||||||
return *DataAsset;
|
if (data == nullptr) return nullptr;
|
||||||
|
|
||||||
|
URRDADataAssetDSModAdapter* DataAsset = data->ModAdapter;
|
||||||
|
if (!DataAsset) return nullptr;
|
||||||
|
|
||||||
|
return DataAsset;
|
||||||
}
|
}
|
||||||
|
|
||||||
TArray<URRDADataAssetDSModAdapter*> URRDADataAssetSubsystem::GetAllModAdapterDataAssets() const {
|
TArray<URRDADataAssetDSModAdapter*> URRDADataAssetSubsystem::GetAllModAdapterDataAssets() const {
|
||||||
TArray<URRDADataAssetDSModAdapter*> Assets;
|
TArray<URRDADataAssetDSModAdapter*> Assets;
|
||||||
mDSModAdapterAssets.GenerateValueArray(Assets);
|
TArray<FRRDADataHolderDSBuildingData> buildingDatas;
|
||||||
|
|
||||||
|
mDSBuildingData.GenerateValueArray(buildingDatas);
|
||||||
|
|
||||||
|
for (FRRDADataHolderDSBuildingData& buildingData : buildingDatas) {
|
||||||
|
Assets.AddUnique(buildingData.ModAdapter);
|
||||||
|
}
|
||||||
return Assets;
|
return Assets;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool URRDADataAssetSubsystem::GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const
|
URRDADataAssetDSAdapterCovers* URRDADataAssetSubsystem::GetDSAdapterCoverDataAssetForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const {
|
||||||
{
|
if (!BuildingClass) return nullptr;
|
||||||
if(!mTurbineAssets.Contains(Tier)) {
|
|
||||||
|
const FRRDADataHolderDSBuildingData* data = mDSBuildingData.Find(BuildingClass);
|
||||||
|
if (data == nullptr) return nullptr;
|
||||||
|
|
||||||
|
URRDADataAssetDSAdapterCovers* DataAsset = data->AdapterCovers;
|
||||||
|
if (!DataAsset) return nullptr;
|
||||||
|
|
||||||
|
return DataAsset;
|
||||||
|
}
|
||||||
|
|
||||||
|
TArray<URRDADataAssetDSAdapterCovers*> URRDADataAssetSubsystem::GetAllDSAdapterCoverDataAssets() const {
|
||||||
|
TArray<URRDADataAssetDSAdapterCovers*> Assets;
|
||||||
|
TArray<FRRDADataHolderDSBuildingData> buildingDatas;
|
||||||
|
|
||||||
|
mDSBuildingData.GenerateValueArray(buildingDatas);
|
||||||
|
|
||||||
|
for (FRRDADataHolderDSBuildingData& buildingData : buildingDatas) {
|
||||||
|
Assets.AddUnique(buildingData.AdapterCovers);
|
||||||
|
}
|
||||||
|
return Assets;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool URRDADataAssetSubsystem::GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const {
|
||||||
|
if (!mTurbineAssets.Contains(Tier)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -263,10 +299,9 @@ bool URRDADataAssetSubsystem::GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescr
|
|||||||
|
|
||||||
bool URRDADataAssetSubsystem::GetAllTurbineRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const {
|
bool URRDADataAssetSubsystem::GetAllTurbineRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const {
|
||||||
Items.Empty();
|
Items.Empty();
|
||||||
for (URRDATurbineDataAsset* Asset : GetAllTurbineAssets(Tier))
|
for (URRDATurbineDataAsset* Asset : GetAllTurbineAssets(Tier)) {
|
||||||
{
|
|
||||||
Items.AddUnique(Asset->mItem.ItemClass);
|
Items.AddUnique(Asset->mItem.ItemClass);
|
||||||
if(Asset->mWasteItem.ItemClass) {
|
if (Asset->mWasteItem.ItemClass) {
|
||||||
Items.AddUnique(Asset->mWasteItem.ItemClass);
|
Items.AddUnique(Asset->mWasteItem.ItemClass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -274,7 +309,7 @@ bool URRDADataAssetSubsystem::GetAllTurbineRelevantItems(TArray<TSubclassOf<UFGI
|
|||||||
}
|
}
|
||||||
|
|
||||||
TArray<URRDATurbineDataAsset*> URRDADataAssetSubsystem::GetAllTurbineAssets(int32 Tier) const {
|
TArray<URRDATurbineDataAsset*> URRDADataAssetSubsystem::GetAllTurbineAssets(int32 Tier) const {
|
||||||
if(!mTurbineAssets.Contains(Tier)) {
|
if (!mTurbineAssets.Contains(Tier)) {
|
||||||
UE_LOG(LogRRDApi, Error, TEXT("No TurbineAssets found for Type: %d"), Tier);
|
UE_LOG(LogRRDApi, Error, TEXT("No TurbineAssets found for Type: %d"), Tier);
|
||||||
return TArray<URRDATurbineDataAsset*>();
|
return TArray<URRDATurbineDataAsset*>();
|
||||||
}
|
}
|
||||||
@ -288,9 +323,8 @@ URRDATurbineDataAsset* URRDADataAssetSubsystem::GetDefaultTurbineAsset(int32 Tie
|
|||||||
return GetAllTurbineAssets(Tier).Top();
|
return GetAllTurbineAssets(Tier).Top();
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDATurbineDataAsset* URRDADataAssetSubsystem::GetTurbineItemData(TSubclassOf<UFGItemDescriptor> Item, int32 Tier) const
|
URRDATurbineDataAsset* URRDADataAssetSubsystem::GetTurbineItemData(TSubclassOf<UFGItemDescriptor> Item, int32 Tier) const {
|
||||||
{
|
if (!mTurbineAssets.Contains(Tier)) {
|
||||||
if(!mTurbineAssets.Contains(Tier)) {
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -298,9 +332,8 @@ URRDATurbineDataAsset* URRDADataAssetSubsystem::GetTurbineItemData(TSubclassOf<U
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool URRDADataAssetSubsystem::GetAllCoolerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDACoolerType Type) const
|
bool URRDADataAssetSubsystem::GetAllCoolerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDACoolerType Type) const {
|
||||||
{
|
if (!mCoolerAssets.Contains(Type)) return false;
|
||||||
if(!mCoolerAssets.Contains(Type)) return false;
|
|
||||||
|
|
||||||
Items.Empty();
|
Items.Empty();
|
||||||
mCoolerAssets[Type].Data.GetKeys(Items);
|
mCoolerAssets[Type].Data.GetKeys(Items);
|
||||||
@ -308,21 +341,17 @@ bool URRDADataAssetSubsystem::GetAllCoolerItems(TArray<TSubclassOf<UFGItemDescri
|
|||||||
return Items.Num() > 0;
|
return Items.Num() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDACoolerDataAsset* URRDADataAssetSubsystem::GetCoolerItemData(TSubclassOf<UFGItemDescriptor> Item, ERRDACoolerType Type) const
|
URRDACoolerDataAsset* URRDADataAssetSubsystem::GetCoolerItemData(TSubclassOf<UFGItemDescriptor> Item, ERRDACoolerType Type) const {
|
||||||
{
|
if (!mCoolerAssets.Contains(Type)) return nullptr;
|
||||||
if(!mCoolerAssets.Contains(Type)) return nullptr;
|
|
||||||
return mCoolerAssets[Type].Data.FindRef(Item);
|
return mCoolerAssets[Type].Data.FindRef(Item);
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDACoolerDataAsset* URRDADataAssetSubsystem::GetDefaultCoolerAsset(ERRDACoolerType Type) const
|
URRDACoolerDataAsset* URRDADataAssetSubsystem::GetDefaultCoolerAsset(ERRDACoolerType Type) const {
|
||||||
{
|
|
||||||
return GetAllCoolerAssets(Type).Top();
|
return GetAllCoolerAssets(Type).Top();
|
||||||
}
|
}
|
||||||
|
|
||||||
TArray<URRDACoolerDataAsset*> URRDADataAssetSubsystem::GetAllCoolerAssets(ERRDACoolerType Type) const
|
TArray<URRDACoolerDataAsset*> URRDADataAssetSubsystem::GetAllCoolerAssets(ERRDACoolerType Type) const {
|
||||||
{
|
if (!mCoolerAssets.Contains(Type)) {
|
||||||
if(!mCoolerAssets.Contains(Type))
|
|
||||||
{
|
|
||||||
UE_LOG(LogRRDApi, Error, TEXT("No CoolerAssets found for Type: %d"), Type);
|
UE_LOG(LogRRDApi, Error, TEXT("No CoolerAssets found for Type: %d"), Type);
|
||||||
return TArray<URRDACoolerDataAsset*>();
|
return TArray<URRDACoolerDataAsset*>();
|
||||||
}
|
}
|
||||||
@ -335,47 +364,40 @@ TArray<URRDACoolerDataAsset*> URRDADataAssetSubsystem::GetAllCoolerAssets(ERRDAC
|
|||||||
|
|
||||||
URRDAGeneratorDataAsset* URRDADataAssetSubsystem::GetGeneratorItemData(int32 Tier) const {
|
URRDAGeneratorDataAsset* URRDADataAssetSubsystem::GetGeneratorItemData(int32 Tier) const {
|
||||||
UE_LOG(LogRRDApi, Log, TEXT("GetGeneratorItemData: %d"), Tier);
|
UE_LOG(LogRRDApi, Log, TEXT("GetGeneratorItemData: %d"), Tier);
|
||||||
if(!mGeneratorAssets.Contains(Tier)) return nullptr;
|
if (!mGeneratorAssets.Contains(Tier)) return nullptr;
|
||||||
return mGeneratorAssets.FindRef(Tier);
|
return mGeneratorAssets.FindRef(Tier);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool URRDADataAssetSubsystem::GetAllBoilerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const
|
bool URRDADataAssetSubsystem::GetAllBoilerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const {
|
||||||
{
|
if (!mBoilerAssets.Contains(Tier)) return false;
|
||||||
if(!mBoilerAssets.Contains(Tier)) return false;
|
|
||||||
|
|
||||||
mBoilerAssets[Tier].Data.GetKeys(Items);
|
mBoilerAssets[Tier].Data.GetKeys(Items);
|
||||||
|
|
||||||
return Items.Num() > 0;
|
return Items.Num() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDABoilerDataAsset* URRDADataAssetSubsystem::GetBoilerItemData(TSubclassOf<UFGItemDescriptor> Item, int32 Tier) const
|
URRDABoilerDataAsset* URRDADataAssetSubsystem::GetBoilerItemData(TSubclassOf<UFGItemDescriptor> Item, int32 Tier) const {
|
||||||
{
|
if (!mBoilerAssets.Contains(Tier)) return nullptr;
|
||||||
if(!mBoilerAssets.Contains(Tier)) return nullptr;
|
|
||||||
return mBoilerAssets[Tier].Data.FindRef(Item);
|
return mBoilerAssets[Tier].Data.FindRef(Item);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool URRDADataAssetSubsystem::GetAllBoilerRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const
|
bool URRDADataAssetSubsystem::GetAllBoilerRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const {
|
||||||
{
|
|
||||||
Items.Empty();
|
Items.Empty();
|
||||||
for (URRDABoilerDataAsset* Asset : GetAllBoilerAssets(Tier))
|
for (URRDABoilerDataAsset* Asset : GetAllBoilerAssets(Tier)) {
|
||||||
{
|
|
||||||
Items.AddUnique(Asset->mInput.ItemClass);
|
Items.AddUnique(Asset->mInput.ItemClass);
|
||||||
if(Asset->mOutput.ItemClass) {
|
if (Asset->mOutput.ItemClass) {
|
||||||
Items.AddUnique(Asset->mOutput.ItemClass);
|
Items.AddUnique(Asset->mOutput.ItemClass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Items.Num() > 0;
|
return Items.Num() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDABoilerDataAsset* URRDADataAssetSubsystem::GetDefaultBoilerAsset(int32 Tier) const
|
URRDABoilerDataAsset* URRDADataAssetSubsystem::GetDefaultBoilerAsset(int32 Tier) const {
|
||||||
{
|
|
||||||
return GetAllBoilerAssets(Tier).Top();
|
return GetAllBoilerAssets(Tier).Top();
|
||||||
}
|
}
|
||||||
|
|
||||||
TArray<URRDABoilerDataAsset*> URRDADataAssetSubsystem::GetAllBoilerAssets(int32 Tier) const
|
TArray<URRDABoilerDataAsset*> URRDADataAssetSubsystem::GetAllBoilerAssets(int32 Tier) const {
|
||||||
{
|
if (!mBoilerAssets.Contains(Tier)) {
|
||||||
if(!mBoilerAssets.Contains(Tier))
|
|
||||||
{
|
|
||||||
UE_LOG(LogRRDApi, Error, TEXT("No BoilerAssets found for Type: %d"), Tier);
|
UE_LOG(LogRRDApi, Error, TEXT("No BoilerAssets found for Type: %d"), Tier);
|
||||||
return TArray<URRDABoilerDataAsset*>();
|
return TArray<URRDABoilerDataAsset*>();
|
||||||
}
|
}
|
||||||
@ -387,42 +409,36 @@ TArray<URRDABoilerDataAsset*> URRDADataAssetSubsystem::GetAllBoilerAssets(int32
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool URRDADataAssetSubsystem::GetAllHeaterItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const {
|
bool URRDADataAssetSubsystem::GetAllHeaterItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const {
|
||||||
if(!mHeaterAssets.Contains(Type)) return false;
|
if (!mHeaterAssets.Contains(Type)) return false;
|
||||||
|
|
||||||
mHeaterAssets[Type].Data.GetKeys(Items);
|
mHeaterAssets[Type].Data.GetKeys(Items);
|
||||||
|
|
||||||
return Items.Num() > 0;
|
return Items.Num() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDAHeaterDataAsset* URRDADataAssetSubsystem::GetHeaterItemData(TSubclassOf<UFGItemDescriptor> Item, ERRDAHeaterType Type) const
|
URRDAHeaterDataAsset* URRDADataAssetSubsystem::GetHeaterItemData(TSubclassOf<UFGItemDescriptor> Item, ERRDAHeaterType Type) const {
|
||||||
{
|
if (!mHeaterAssets.Contains(Type)) return nullptr;
|
||||||
if(!mHeaterAssets.Contains(Type)) return nullptr;
|
|
||||||
|
|
||||||
return mHeaterAssets[Type].Data.FindRef(Item);
|
return mHeaterAssets[Type].Data.FindRef(Item);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool URRDADataAssetSubsystem::GetAllHeaterRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const
|
bool URRDADataAssetSubsystem::GetAllHeaterRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const {
|
||||||
{
|
|
||||||
Items.Empty();
|
Items.Empty();
|
||||||
for (URRDAHeaterDataAsset* HeaterAsset : GetAllHeaterAssets(Type))
|
for (URRDAHeaterDataAsset* HeaterAsset : GetAllHeaterAssets(Type)) {
|
||||||
{
|
|
||||||
Items.AddUnique(HeaterAsset->mInput.ItemClass);
|
Items.AddUnique(HeaterAsset->mInput.ItemClass);
|
||||||
if(HeaterAsset->mOutput.ItemClass) {
|
if (HeaterAsset->mOutput.ItemClass) {
|
||||||
Items.AddUnique(HeaterAsset->mOutput.ItemClass);
|
Items.AddUnique(HeaterAsset->mOutput.ItemClass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Items.Num() > 0;
|
return Items.Num() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
URRDAHeaterDataAsset* URRDADataAssetSubsystem::GetDefaultHeaterAsset(ERRDAHeaterType Type) const
|
URRDAHeaterDataAsset* URRDADataAssetSubsystem::GetDefaultHeaterAsset(ERRDAHeaterType Type) const {
|
||||||
{
|
|
||||||
return GetAllHeaterAssets(Type).Top();
|
return GetAllHeaterAssets(Type).Top();
|
||||||
}
|
}
|
||||||
|
|
||||||
TArray<URRDAHeaterDataAsset*> URRDADataAssetSubsystem::GetAllHeaterAssets(ERRDAHeaterType Type) const
|
TArray<URRDAHeaterDataAsset*> URRDADataAssetSubsystem::GetAllHeaterAssets(ERRDAHeaterType Type) const {
|
||||||
{
|
if (!mHeaterAssets.Contains(Type)) {
|
||||||
if(!mHeaterAssets.Contains(Type))
|
|
||||||
{
|
|
||||||
UE_LOG(LogRRDApi, Error, TEXT("No HeaterAssets found for Type: %d"), Type);
|
UE_LOG(LogRRDApi, Error, TEXT("No HeaterAssets found for Type: %d"), Type);
|
||||||
return TArray<URRDAHeaterDataAsset*>();
|
return TArray<URRDAHeaterDataAsset*>();
|
||||||
}
|
}
|
||||||
|
@ -15,11 +15,11 @@ UCLASS()
|
|||||||
class REFINEDRDAPI_API URRDADataAssetDSAdapterCovers : public URRDADataAssetBase
|
class REFINEDRDAPI_API URRDADataAssetDSAdapterCovers : public URRDADataAssetBase
|
||||||
{
|
{
|
||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
public:
|
|
||||||
|
|
||||||
|
public:
|
||||||
/* The building class these adapter covers belongs to */
|
/* The building class these adapter covers belongs to */
|
||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="AdapterCovers")
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="AdapterCovers")
|
||||||
TSubclassOf<AFGBuildableFactory> mBuildableClass;
|
TSubclassOf<AFGBuildableFactory> mBuildingClass;
|
||||||
|
|
||||||
/* An array of covers to place on the buildable connections */
|
/* An array of covers to place on the buildable connections */
|
||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="AdapterCovers")
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="AdapterCovers")
|
||||||
|
@ -56,6 +56,18 @@ struct FRRDADataHolderHeaterData
|
|||||||
TMap<TSubclassOf<UFGItemDescriptor>, URRDAHeaterDataAsset*> Data;
|
TMap<TSubclassOf<UFGItemDescriptor>, URRDAHeaterDataAsset*> Data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
USTRUCT(BlueprintType)
|
||||||
|
struct FRRDADataHolderDSBuildingData
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
UPROPERTY()
|
||||||
|
URRDADataAssetDSAdapterCovers* AdapterCovers;
|
||||||
|
|
||||||
|
UPROPERTY()
|
||||||
|
URRDADataAssetDSModAdapter* ModAdapter;
|
||||||
|
};
|
||||||
|
|
||||||
UCLASS()
|
UCLASS()
|
||||||
class REFINEDRDAPI_API URRDADataAssetSubsystem : public UGameInstanceSubsystem
|
class REFINEDRDAPI_API URRDADataAssetSubsystem : public UGameInstanceSubsystem
|
||||||
{
|
{
|
||||||
@ -85,12 +97,13 @@ public:
|
|||||||
void ReCacheHeaterDataAssets();
|
void ReCacheHeaterDataAssets();
|
||||||
void ReCacheGeneratorDataAssets();
|
void ReCacheGeneratorDataAssets();
|
||||||
void ReCacheDSModAdapterDataAssets();
|
void ReCacheDSModAdapterDataAssets();
|
||||||
|
void ReCacheDSAdapterCoversDataAssets();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Dirt Functions
|
// Dirt Functions
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|FF")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|FF")
|
||||||
int32 GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const;
|
int32 GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const;
|
||||||
|
|
||||||
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|FF")
|
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|FF")
|
||||||
URRDADirtDataAsset* GetDataForDirtItem(TSubclassOf<UFGItemDescriptor> Item) const;
|
URRDADirtDataAsset* GetDataForDirtItem(TSubclassOf<UFGItemDescriptor> Item) const;
|
||||||
|
|
||||||
@ -99,21 +112,28 @@ public:
|
|||||||
|
|
||||||
// DS Mod Adapter Functions
|
// DS Mod Adapter Functions
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|DS")
|
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")
|
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|DS")
|
||||||
URRDADataAssetDSModAdapter* GetModAdapterDataAssetForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const;
|
URRDADataAssetDSModAdapter* GetModAdapterDataAssetForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const;
|
||||||
|
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|DS")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|DS")
|
||||||
TArray<URRDADataAssetDSModAdapter*> GetAllModAdapterDataAssets() const;
|
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
|
// Turbine Functions
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||||
bool GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
bool GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
||||||
|
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
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")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||||
bool GetAllTurbineRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
bool GetAllTurbineRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
||||||
|
|
||||||
@ -126,9 +146,9 @@ public:
|
|||||||
// Cooler Functions
|
// Cooler Functions
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||||
bool GetAllCoolerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDACoolerType Type) const;
|
bool GetAllCoolerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDACoolerType Type) const;
|
||||||
|
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
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")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||||
URRDACoolerDataAsset* GetDefaultCoolerAsset(ERRDACoolerType Type) const;
|
URRDACoolerDataAsset* GetDefaultCoolerAsset(ERRDACoolerType Type) const;
|
||||||
@ -143,10 +163,10 @@ public:
|
|||||||
// Boiler Functions
|
// Boiler Functions
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||||
bool GetAllBoilerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
bool GetAllBoilerItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
||||||
|
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
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")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||||
bool GetAllBoilerRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
bool GetAllBoilerRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
||||||
|
|
||||||
@ -159,10 +179,10 @@ public:
|
|||||||
// Heater Functions
|
// Heater Functions
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||||
bool GetAllHeaterItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const;
|
bool GetAllHeaterItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const;
|
||||||
|
|
||||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
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")
|
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||||
bool GetAllHeaterRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const;
|
bool GetAllHeaterRelevantItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, ERRDAHeaterType Type) const;
|
||||||
|
|
||||||
@ -178,7 +198,7 @@ public:
|
|||||||
* @param OutDataAssets - Set of data assets
|
* @param OutDataAssets - Set of data assets
|
||||||
* @return true if found any data assets
|
* @return true if found any data assets
|
||||||
*/
|
*/
|
||||||
template<class T>
|
template <class T>
|
||||||
bool FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets);
|
bool FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -186,20 +206,20 @@ public:
|
|||||||
TMap<TSubclassOf<UFGItemDescriptor>, URRDADirtDataAsset*> mDirtAssets;
|
TMap<TSubclassOf<UFGItemDescriptor>, URRDADirtDataAsset*> mDirtAssets;
|
||||||
|
|
||||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||||
TMap<TSubclassOf<AFGBuildableFactory>, URRDADataAssetDSModAdapter*> mDSModAdapterAssets;
|
TMap<TSubclassOf<AFGBuildableFactory>, FRRDADataHolderDSBuildingData> mDSBuildingData;
|
||||||
|
|
||||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||||
TMap<int32, URRDAGeneratorDataAsset*> mGeneratorAssets;
|
TMap<int32, URRDAGeneratorDataAsset*> mGeneratorAssets;
|
||||||
|
|
||||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||||
TMap<int32, FRRDADataHolderTurbineData> mTurbineAssets;
|
TMap<int32, FRRDADataHolderTurbineData> mTurbineAssets;
|
||||||
|
|
||||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||||
TMap<int32, FRRDADataHolderBoilerData> mBoilerAssets;
|
TMap<int32, FRRDADataHolderBoilerData> mBoilerAssets;
|
||||||
|
|
||||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||||
TMap<ERRDACoolerType, FRRDADataHolderCoolerData> mCoolerAssets;
|
TMap<ERRDACoolerType, FRRDADataHolderCoolerData> mCoolerAssets;
|
||||||
|
|
||||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||||
TMap<ERRDAHeaterType, FRRDADataHolderHeaterData> mHeaterAssets;
|
TMap<ERRDAHeaterType, FRRDADataHolderHeaterData> mHeaterAssets;
|
||||||
|
|
||||||
@ -211,10 +231,9 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
bool URRDADataAssetSubsystem::FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets)
|
bool URRDADataAssetSubsystem::FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets) {
|
||||||
{
|
|
||||||
OutDataAssets.Empty();
|
OutDataAssets.Empty();
|
||||||
|
|
||||||
// Find list of all UStat, and USkill assets in Content Browser.
|
// Find list of all UStat, and USkill assets in Content Browser.
|
||||||
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(FName("AssetRegistry"));
|
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(FName("AssetRegistry"));
|
||||||
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
|
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
|
||||||
@ -225,24 +244,21 @@ bool URRDADataAssetSubsystem::FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets)
|
|||||||
// Split assets into separate arrays.
|
// Split assets into separate arrays.
|
||||||
for (const FAssetData& Asset : AssetList) {
|
for (const FAssetData& Asset : AssetList) {
|
||||||
UObject* Obj = Asset.GetAsset();
|
UObject* Obj = Asset.GetAsset();
|
||||||
|
|
||||||
T* CastedAsset = Cast<T>(Obj);
|
T* CastedAsset = Cast<T>(Obj);
|
||||||
if(!CastedAsset)
|
if (!CastedAsset) {
|
||||||
{
|
|
||||||
UE_LOG(LogRRDApi, Warning, TEXT("Invalid asset type: %s"), *Asset.AssetName.ToString());
|
UE_LOG(LogRRDApi, Warning, TEXT("Invalid asset type: %s"), *Asset.AssetName.ToString());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(URRDADataAssetBase* BaseAsset = Cast<URRDADataAssetBase>(Obj))
|
if (URRDADataAssetBase* BaseAsset = Cast<URRDADataAssetBase>(Obj)) {
|
||||||
{
|
if (URRDADataAssetBase::IsEnabled(BaseAsset, GetWorld())) {
|
||||||
if(URRDADataAssetBase::IsEnabled(BaseAsset, GetWorld()))
|
|
||||||
{
|
|
||||||
UE_LOG(LogRRDApi, Log, TEXT("Found %s"), *BaseAsset->GetPathName());
|
UE_LOG(LogRRDApi, Log, TEXT("Found %s"), *BaseAsset->GetPathName());
|
||||||
OutDataAssets.Add(CastedAsset);
|
OutDataAssets.Add(CastedAsset);
|
||||||
mEnabledDataAssets.Add(BaseAsset);
|
mEnabledDataAssets.Add(BaseAsset);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
UE_LOG(LogRRDApi, Warning, TEXT("Asset Disabled: %s"), *BaseAsset->GetPathName());
|
UE_LOG(LogRRDApi, Warning, TEXT("Asset Disabled: %s"), *BaseAsset->GetPathName());
|
||||||
mDisabledDataAssets.Add(BaseAsset);
|
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());
|
UE_LOG(LogRRDApi, Warning, TEXT("Found %d of: %s"), OutDataAssets.Num(), *T::StaticClass()->GetPathName());
|
||||||
return OutDataAssets.Num() > 0;
|
return OutDataAssets.Num() > 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user