feat(SP): New buildings data assets

This commit is contained in:
mrhid6 2025-05-07 23:26:48 +01:00
parent a5a89443de
commit 39ecb1df11
4 changed files with 68 additions and 0 deletions

View File

@ -0,0 +1,3 @@
//
#include "DataAssets/RRDADataAssetSolarPower.h"

View File

@ -70,6 +70,8 @@ void URRDADataAssetSubsystem::StartScanForDataAssets() {
ReCacheDSItemFilters(); ReCacheDSItemFilters();
ReCacheDSModAdapterDataAssets(); ReCacheDSModAdapterDataAssets();
ReCacheDSAdapterCoversDataAssets(); ReCacheDSAdapterCoversDataAssets();
ReCacheSolarPowerDataAssets();
} }
void URRDADataAssetSubsystem::ReCacheDirtDataAssets() { void URRDADataAssetSubsystem::ReCacheDirtDataAssets() {
@ -236,6 +238,24 @@ void URRDADataAssetSubsystem::ReCacheDSItemFilters() {
UE_LOGFMT(LogRRDApi, Log, "ReCacheDSItemFilters: {0}", mDSBuildingData.Num()); UE_LOGFMT(LogRRDApi, Log, "ReCacheDSItemFilters: {0}", mDSBuildingData.Num());
} }
void URRDADataAssetSubsystem::ReCacheSolarPowerDataAssets()
{
mSolarPowerAssets.Empty();
TSet<URRDADataAssetSolarPower*> DataAssets;
if (FindAllDataAssetsOfClass(DataAssets)) {
for (URRDADataAssetSolarPower* DataAsset : DataAssets) {
fgcheckf(DataAsset->mInput.ItemClass, TEXT("SolarPowerDataAsset %s has no ItemClass"), *DataAsset->GetPathName());
if (!mSolarPowerAssets.Contains(DataAsset)) {
mSolarPowerAssets.AddUnique(DataAsset);
}
}
}
UE_LOG(LogRRDApi, Log, TEXT("ReCacheSolarPowerDataAssets: %d"), mSolarPowerAssets.Num());
}
int32 URRDADataAssetSubsystem::GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const { int32 URRDADataAssetSubsystem::GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const {
if (!mDirtAssets.Num()) { if (!mDirtAssets.Num()) {
UE_LOG(LogRRDApi, Error, TEXT("No Dirts found!")); UE_LOG(LogRRDApi, Error, TEXT("No Dirts found!"));
@ -516,3 +536,8 @@ TArray<URRDAHeaterDataAsset*> URRDADataAssetSubsystem::GetAllHeaterAssets(ERRDAH
return Assets; return Assets;
} }
TArray<URRDADataAssetSolarPower*> URRDADataAssetSubsystem::GetAllSolarPowerAssets() const
{
return mSolarPowerAssets;
}

View File

@ -0,0 +1,32 @@
#pragma once
#include "CoreMinimal.h"
#include "RRDADataAssetBase.h"
#include "ItemAmount.h"
#include "RRDADataAssetSolarPower.generated.h"
UCLASS( BlueprintType )
class REFINEDRDAPI_API URRDADataAssetSolarPower : public URRDADataAssetBase
{
GENERATED_BODY()
public:
/**
* Fuel item that this uses
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SolarPower")
FItemAmount mInput;
/**
* What this produces
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SolarPower")
FItemAmount mOutput;
/**
* What the min heat is needed to produce
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SolarPower")
float mMinHeatValue = 0.0f;
};

View File

@ -15,6 +15,7 @@
#include "DataAssets/RRDACoolerDataAsset.h" #include "DataAssets/RRDACoolerDataAsset.h"
#include "DataAssets/RRDADataAssetDSItemFilter.h" #include "DataAssets/RRDADataAssetDSItemFilter.h"
#include "DataAssets/RRDADataAssetDSModAdapter.h" #include "DataAssets/RRDADataAssetDSModAdapter.h"
#include "DataAssets/RRDADataAssetSolarPower.h"
#include "Enums/RRDARPEnums.h" #include "Enums/RRDARPEnums.h"
#include "Resources/FGItemDescriptor.h" #include "Resources/FGItemDescriptor.h"
@ -103,6 +104,7 @@ public:
void ReCacheDSModAdapterDataAssets(); void ReCacheDSModAdapterDataAssets();
void ReCacheDSAdapterCoversDataAssets(); void ReCacheDSAdapterCoversDataAssets();
void ReCacheDSItemFilters(); void ReCacheDSItemFilters();
void ReCacheSolarPowerDataAssets();
public: public:
// Dirt Functions // Dirt Functions
@ -211,6 +213,9 @@ public:
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP") UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
TArray<URRDAHeaterDataAsset*> GetAllHeaterAssets(ERRDAHeaterType Type) const; TArray<URRDAHeaterDataAsset*> GetAllHeaterAssets(ERRDAHeaterType Type) const;
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|Solar")
TArray<URRDADataAssetSolarPower*> GetAllSolarPowerAssets() const;
public: public:
/** /**
* Find all data assets of a specific class * Find all data assets of a specific class
@ -242,6 +247,9 @@ public:
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset") UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
TMap<ERRDAHeaterType, FRRDADataHolderHeaterData> mHeaterAssets; TMap<ERRDAHeaterType, FRRDADataHolderHeaterData> mHeaterAssets;
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
TArray<URRDADataAssetSolarPower*> mSolarPowerAssets;
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset") UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
TSet<URRDADataAssetBase*> mDisabledDataAssets; TSet<URRDADataAssetBase*> mDisabledDataAssets;