feat: wip
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#include "DataAssets/RRDABoilerDataAsset.h"
|
||||
@@ -0,0 +1,3 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#include "DataAssets/RRDACoolerDataAsset.h"
|
||||
30
Source/RefinedRDApi/Private/DataAssets/RRDADirtDataAsset.cpp
Normal file
30
Source/RefinedRDApi/Private/DataAssets/RRDADirtDataAsset.cpp
Normal file
@@ -0,0 +1,30 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#include "DataAssets/RRDADirtDataAsset.h"
|
||||
|
||||
#include "RefinedRDApi.h"
|
||||
|
||||
TArray<FItemAmount> URRDADirtDataAsset::GetExtractableSeed(URRDADirtDataAsset* Asset)
|
||||
{
|
||||
if(!Asset)
|
||||
{
|
||||
return TArray<FItemAmount>();
|
||||
}
|
||||
return Asset->mExtractableSeed;
|
||||
}
|
||||
|
||||
float URRDADirtDataAsset::GetExtractionCycleTime(URRDADirtDataAsset* Asset) {
|
||||
if(!Asset)
|
||||
{
|
||||
return 0.f;
|
||||
}
|
||||
return Asset->mExtractionCycleTime;
|
||||
}
|
||||
|
||||
int32 URRDADirtDataAsset::GetDirtConsume(URRDADirtDataAsset* Asset) {
|
||||
if(!Asset)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return Asset->mDirtConsume;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#include "DataAssets/RRDAHeaterDataAsset.h"
|
||||
@@ -0,0 +1,3 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#include "DataAssets/RRDATurbineDataAsset.h"
|
||||
14
Source/RefinedRDApi/Private/RefinedRDApi.cpp
Normal file
14
Source/RefinedRDApi/Private/RefinedRDApi.cpp
Normal file
@@ -0,0 +1,14 @@
|
||||
#include "RefinedRDApi.h"
|
||||
|
||||
DEFINE_LOG_CATEGORY(LogRRDApi);
|
||||
|
||||
|
||||
void FRefinedRDApiModule::StartupModule() {
|
||||
// Nothing here... yet
|
||||
}
|
||||
|
||||
void FRefinedRDApiModule::ShutdownModule() {
|
||||
// Nothing here... yet
|
||||
}
|
||||
|
||||
IMPLEMENT_MODULE(FRefinedRDApiModule, RefinedRDApi);
|
||||
0
Source/RefinedRDApi/Private/Structs/.gitkeep
Normal file
0
Source/RefinedRDApi/Private/Structs/.gitkeep
Normal file
@@ -0,0 +1,93 @@
|
||||
#include "Subsystems/RRDADataAssetSubsystem.h"
|
||||
|
||||
#include "RefinedRDApi.h"
|
||||
#include "DataAssets/RRDADirtDataAsset.h"
|
||||
#include "Engine/AssetManager.h"
|
||||
|
||||
URRDADataAssetSubsystem::URRDADataAssetSubsystem() {}
|
||||
|
||||
URRDADataAssetSubsystem* URRDADataAssetSubsystem::Get(UObject* Context)
|
||||
{
|
||||
if (IsValid(Context))
|
||||
{
|
||||
return Context->GetWorld()->GetSubsystem<URRDADataAssetSubsystem>();
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
URRDADataAssetSubsystem* URRDADataAssetSubsystem::GetChecked(UObject* Context)
|
||||
{
|
||||
URRDADataAssetSubsystem* Subsystem = Get(Context);
|
||||
fgcheck(Subsystem);
|
||||
return Subsystem;
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::Initialize(FSubsystemCollectionBase& Collection)
|
||||
{
|
||||
Super::Initialize(Collection);
|
||||
|
||||
StartScanForDataAssets();
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::Deinitialize()
|
||||
{
|
||||
Super::Deinitialize();
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::StartScanForDataAssets()
|
||||
{
|
||||
UAssetManager& Manager = UAssetManager::Get();
|
||||
Manager.LoadPrimaryAssetsWithType(FPrimaryAssetType("RRDADataAsset"));
|
||||
|
||||
mDisabledDataAssets.Empty();
|
||||
mAllDataAssets.Empty();
|
||||
|
||||
ReCacheBoilerDataAssets();
|
||||
ReCacheCoolerDataAssets();
|
||||
ReCacheDirtDataAssets();
|
||||
ReCacheHeaterDataAssets();
|
||||
ReCacheTurbineDataAssets();
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::ReCacheDirtDataAssets()
|
||||
{
|
||||
mDirtAssets.Empty();
|
||||
TSet<URRDADirtDataAsset*> DirtDataAssets;
|
||||
if(FindAllDataAssetsOfClass(DirtDataAssets))
|
||||
{
|
||||
for (URRDADirtDataAsset* DirtDataAsset : DirtDataAssets)
|
||||
{
|
||||
mDirtAssets.Add(DirtDataAsset->mItem, DirtDataAsset);
|
||||
}
|
||||
}
|
||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheDirtDataAssets: %d"), mDirtAssets.Num());
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::ReCacheTurbineDataAssets()
|
||||
{
|
||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheTurbineDataAssets"));
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::ReCacheBoilerDataAssets() {
|
||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheBoilerDataAssets"));
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::ReCacheCoolerDataAssets() {
|
||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheCoolerDataAssets"));
|
||||
}
|
||||
|
||||
void URRDADataAssetSubsystem::ReCacheHeaterDataAssets() {
|
||||
UE_LOG(LogRRDApi, Log, TEXT("ReCacheHeaterDataAssets"));
|
||||
}
|
||||
|
||||
int32 URRDADataAssetSubsystem::GetAllDirtItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items) const
|
||||
{
|
||||
return mDirtAssets.GetKeys(Items);
|
||||
}
|
||||
|
||||
URRDADirtDataAsset* URRDADataAssetSubsystem::GetDataForDirtItem(TSubclassOf<UFGItemDescriptor> Item) const
|
||||
{
|
||||
if(!Item) return nullptr;
|
||||
return *mDirtAssets.Find(Item);
|
||||
}
|
||||
|
||||
28
Source/RefinedRDApi/Public/DataAssets/RRDABoilerDataAsset.h
Normal file
28
Source/RefinedRDApi/Public/DataAssets/RRDABoilerDataAsset.h
Normal file
@@ -0,0 +1,28 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "RRDADataAssetBase.h"
|
||||
#include "ItemAmount.h"
|
||||
|
||||
#include "RRDABoilerDataAsset.generated.h"
|
||||
|
||||
UCLASS( BlueprintType )
|
||||
class REFINEDRDAPI_API URRDABoilerDataAsset : public URRDADataAssetBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* Fuel item that this heater uses
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Boiler")
|
||||
FItemAmount mItem;
|
||||
|
||||
/**
|
||||
* What this boiler produces
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Boiler")
|
||||
FItemAmount mOutputItem;
|
||||
};
|
||||
22
Source/RefinedRDApi/Public/DataAssets/RRDACoolerDataAsset.h
Normal file
22
Source/RefinedRDApi/Public/DataAssets/RRDACoolerDataAsset.h
Normal file
@@ -0,0 +1,22 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "ItemAmount.h"
|
||||
#include "RRDADataAssetBase.h"
|
||||
|
||||
#include "RRDACoolerDataAsset.generated.h"
|
||||
|
||||
UCLASS( BlueprintType )
|
||||
class REFINEDRDAPI_API URRDACoolerDataAsset : public URRDADataAssetBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* Fuel item that this heater uses
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cooler")
|
||||
FItemAmount mItem;
|
||||
};
|
||||
42
Source/RefinedRDApi/Public/DataAssets/RRDADataAssetBase.h
Normal file
42
Source/RefinedRDApi/Public/DataAssets/RRDADataAssetBase.h
Normal file
@@ -0,0 +1,42 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
|
||||
#include "RRDADataAssetBase.generated.h"
|
||||
|
||||
UCLASS( BlueprintType )
|
||||
class REFINEDRDAPI_API URRDADataAssetBase : public UPrimaryDataAsset
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Can be overridden to disable the asset or make some other checks
|
||||
*/
|
||||
virtual bool IsEnabled_Internal(UObject* WorldContextObject) const
|
||||
{
|
||||
return !mIsDisabled;
|
||||
}
|
||||
|
||||
virtual FPrimaryAssetId GetPrimaryAssetId() const override
|
||||
{
|
||||
return FPrimaryAssetId(FPrimaryAssetType("RRDADataAsset"), GetFName());
|
||||
}
|
||||
|
||||
public:
|
||||
UFUNCTION( BlueprintPure, Category="FicsitFarming|Dirt" )
|
||||
static bool IsEnabled(URRDADataAssetBase* Asset, UObject* WorldContextObject)
|
||||
{
|
||||
if(!Asset) return false;
|
||||
return Asset->IsEnabled_Internal(WorldContextObject);
|
||||
};
|
||||
|
||||
/**
|
||||
* Disable this asset from being used in the game
|
||||
* For example if a mod is disabling some content from another mod
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Asset")
|
||||
bool mIsDisabled;
|
||||
};
|
||||
51
Source/RefinedRDApi/Public/DataAssets/RRDADirtDataAsset.h
Normal file
51
Source/RefinedRDApi/Public/DataAssets/RRDADirtDataAsset.h
Normal file
@@ -0,0 +1,51 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "RRDADataAssetBase.h"
|
||||
#include "ItemAmount.h"
|
||||
|
||||
#include "RRDADirtDataAsset.generated.h"
|
||||
|
||||
UCLASS( BlueprintType )
|
||||
class REFINEDRDAPI_API URRDADirtDataAsset : public URRDADataAssetBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UFUNCTION( BlueprintPure, Category="FicsitFarming|Dirt" )
|
||||
static TArray<FItemAmount> GetExtractableSeed(URRDADirtDataAsset* Asset);
|
||||
|
||||
UFUNCTION( BlueprintPure, Category="FicsitFarming|Dirt" )
|
||||
static float GetExtractionCycleTime(URRDADirtDataAsset* Asset);
|
||||
|
||||
UFUNCTION( BlueprintPure, Category="FicsitFarming|Dirt" )
|
||||
static int32 GetDirtConsume(URRDADirtDataAsset* Asset);
|
||||
|
||||
public:
|
||||
/**
|
||||
* What Item should be a Dirt?
|
||||
* @warning - If 2 DirtDataAssets have the same Item, the game will use the last one which was loaded
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "FicsitFarming")
|
||||
TSubclassOf<UFGItemDescriptor> mItem;
|
||||
|
||||
/**
|
||||
* Seeds that can be extracted from this dirt every cycle
|
||||
*/
|
||||
UPROPERTY( EditAnywhere, BlueprintReadWrite, Category="FicsitFarming" )
|
||||
TArray<FItemAmount> mExtractableSeed;
|
||||
|
||||
/**
|
||||
* Production time for the extraction of seeds
|
||||
*/
|
||||
UPROPERTY( EditAnywhere, BlueprintReadWrite, Category="FicsitFarming" )
|
||||
float mExtractionCycleTime = 6.0f;
|
||||
|
||||
/**
|
||||
* How much dirt should be consumed?
|
||||
*/
|
||||
UPROPERTY( EditAnywhere, BlueprintReadWrite, Category="FicsitFarming" )
|
||||
int32 mDirtConsume = 2;
|
||||
};
|
||||
36
Source/RefinedRDApi/Public/DataAssets/RRDAHeaterDataAsset.h
Normal file
36
Source/RefinedRDApi/Public/DataAssets/RRDAHeaterDataAsset.h
Normal file
@@ -0,0 +1,36 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "RRDADataAssetBase.h"
|
||||
#include "ItemAmount.h"
|
||||
#include "Enums/RRDARPEnums.h"
|
||||
|
||||
#include "RRDAHeaterDataAsset.generated.h"
|
||||
|
||||
UCLASS( BlueprintType )
|
||||
class REFINEDRDAPI_API URRDAHeaterDataAsset : public URRDADataAssetBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* What type of heater this is
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Heater")
|
||||
ERRDAHeaterType mHeaterType;
|
||||
|
||||
/**
|
||||
* Fuel item that this heater uses
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Heater")
|
||||
FItemAmount mInput;
|
||||
|
||||
/**
|
||||
* Item that this turbine produces
|
||||
* @Note - Can be nullptr
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Heater")
|
||||
FItemAmount mOutput;
|
||||
};
|
||||
29
Source/RefinedRDApi/Public/DataAssets/RRDATurbineDataAsset.h
Normal file
29
Source/RefinedRDApi/Public/DataAssets/RRDATurbineDataAsset.h
Normal file
@@ -0,0 +1,29 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "RRDADataAssetBase.h"
|
||||
#include "ItemAmount.h"
|
||||
|
||||
#include "RRDATurbineDataAsset.generated.h"
|
||||
|
||||
UCLASS( BlueprintType )
|
||||
class REFINEDRDAPI_API URRDATurbineDataAsset : public URRDADataAssetBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* Fuel item that this heater uses
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Turbine")
|
||||
FItemAmount mItem;
|
||||
|
||||
/**
|
||||
* Item that this turbine produces
|
||||
* @Note - Can be nullptr so that the turbine doesn't produce anything
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Turbine")
|
||||
FItemAmount mWasteItem;
|
||||
};
|
||||
19
Source/RefinedRDApi/Public/Enums/RRDARPEnums.h
Normal file
19
Source/RefinedRDApi/Public/Enums/RRDARPEnums.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class ERRDAHeaterType : uint8
|
||||
{
|
||||
Biomass,
|
||||
Coal,
|
||||
Solution,
|
||||
Nuclear
|
||||
};
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class ERRDACoolerType : uint8
|
||||
{
|
||||
Chemical,
|
||||
Steam
|
||||
};
|
||||
11
Source/RefinedRDApi/Public/RefinedRDApi.h
Normal file
11
Source/RefinedRDApi/Public/RefinedRDApi.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
DECLARE_LOG_CATEGORY_EXTERN(LogRRDApi, Log, All)
|
||||
|
||||
class FRefinedRDApiModule : public IModuleInterface
|
||||
{
|
||||
public:
|
||||
/** IModuleInterface implementation */
|
||||
virtual void StartupModule() override;
|
||||
virtual void ShutdownModule() override;
|
||||
};
|
||||
0
Source/RefinedRDApi/Public/Structs/.gitkeep
Normal file
0
Source/RefinedRDApi/Public/Structs/.gitkeep
Normal file
132
Source/RefinedRDApi/Public/Subsystems/RRDADataAssetSubsystem.h
Normal file
132
Source/RefinedRDApi/Public/Subsystems/RRDADataAssetSubsystem.h
Normal file
@@ -0,0 +1,132 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "RefinedRDApi.h"
|
||||
#include "AssetRegistry/AssetRegistryModule.h"
|
||||
#include "DataAssets/RRDADataAssetBase.h"
|
||||
#include "DataAssets/RRDADirtDataAsset.h"
|
||||
#include "Engine/AssetManager.h"
|
||||
#include "Enums/RRDARPEnums.h"
|
||||
#include "Resources/FGItemDescriptor.h"
|
||||
|
||||
#include "RRDADataAssetSubsystem.generated.h"
|
||||
|
||||
class IAssetRegistry;
|
||||
|
||||
UCLASS()
|
||||
class REFINEDRDAPI_API URRDADataAssetSubsystem : public UWorldSubsystem
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
URRDADataAssetSubsystem();
|
||||
|
||||
static URRDADataAssetSubsystem* Get(UObject* Context);
|
||||
static URRDADataAssetSubsystem* GetChecked(UObject* Context);
|
||||
|
||||
/** Implement this for initialization of instances of the system */
|
||||
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
|
||||
|
||||
virtual void Deinitialize() override;
|
||||
|
||||
/**
|
||||
* Note: call this function only in the constructor of the subsystem OR if you change some mDisabled value in runtime to refresh cached data
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset")
|
||||
void StartScanForDataAssets();
|
||||
|
||||
void ReCacheDirtDataAssets();
|
||||
void ReCacheTurbineDataAssets();
|
||||
void ReCacheBoilerDataAssets();
|
||||
void ReCacheCoolerDataAssets();
|
||||
void ReCacheHeaterDataAssets();
|
||||
|
||||
public:
|
||||
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;
|
||||
|
||||
public:
|
||||
/**
|
||||
* Find all data assets of a specific class
|
||||
* @param OutDataAssets - Set of data assets
|
||||
* @return true if found any data assets
|
||||
*/
|
||||
template<class T>
|
||||
bool FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets);
|
||||
|
||||
private:
|
||||
UPROPERTY()
|
||||
TMap<TSubclassOf<UFGItemDescriptor>, class URRDADirtDataAsset*> mDirtAssets;
|
||||
|
||||
TMap<int32, TMap<TSubclassOf<UFGItemDescriptor>, class URRDATurbineDataAsset*>> mTurbineAssets;
|
||||
TMap<int32, TMap<TSubclassOf<UFGItemDescriptor>, class URRDABoilerDataAsset*>> mBoilerAssets;
|
||||
TMap<ERRDACoolerType, TMap<TSubclassOf<UFGItemDescriptor>, class URRDACoolerDataAsset*>> mCoolerAssets;
|
||||
TMap<ERRDAHeaterType, TMap<TSubclassOf<UFGItemDescriptor>, class URRDAHeaterDataAsset*>> mHeaterAssets;
|
||||
|
||||
public:
|
||||
UPROPERTY(BlueprintReadOnly, Transient, Category = "RRDA|DataAsset")
|
||||
TSet<URRDADataAssetBase*> mDisabledDataAssets;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Transient, Category = "RRDA|DataAsset")
|
||||
TSet<URRDADataAssetBase*> mAllDataAssets;
|
||||
};
|
||||
|
||||
template <class T>
|
||||
bool URRDADataAssetSubsystem::FindAllDataAssetsOfClass(TSet<T*>& OutDataAssets)
|
||||
{
|
||||
OutDataAssets.Empty();
|
||||
|
||||
// This doesn't work the AssetDatas are always invalid
|
||||
/*UAssetManager& Manager = UAssetManager::Get();
|
||||
|
||||
TArray<FAssetData> AssetDatas;
|
||||
Manager.GetPrimaryAssetDataList(FPrimaryAssetType("RRDADataAsset"), AssetDatas);
|
||||
|
||||
for (FAssetData AssetData : AssetDatas)
|
||||
{
|
||||
if(AssetData.IsValid())
|
||||
{
|
||||
if(URRDADataAssetBase* Asset = Cast<URRDADataAssetBase>(AssetData.GetAsset()))
|
||||
{
|
||||
if(!URRDADataAssetBase::IsEnabled(Asset, GetWorld()))
|
||||
{
|
||||
UE_LOG(LogRRDApi, Error, TEXT("Asset Disabled: %s"), *AssetData.AssetName.ToString());
|
||||
continue;
|
||||
}
|
||||
|
||||
OutDataAssets.Add(Cast<T>(Asset));
|
||||
UE_LOG(LogRRDApi, Log, TEXT("Found %s"), *AssetData.GetAsset()->GetPathName());
|
||||
}
|
||||
} else
|
||||
{
|
||||
UE_LOG(LogRRDApi, Error, TEXT("Invalid AssetData: %s"), *AssetData.AssetName.ToString());
|
||||
return false;
|
||||
}
|
||||
}*/
|
||||
|
||||
TArray<UClass*> FoundClasses;
|
||||
GetDerivedClasses(T::StaticClass(), FoundClasses, true);
|
||||
|
||||
for (UClass* FoundClass : FoundClasses)
|
||||
{
|
||||
if(FoundClass->IsNative()) continue;
|
||||
|
||||
if(URRDADataAssetBase* Asset = FoundClass->GetDefaultObject<URRDADataAssetBase>())
|
||||
{
|
||||
if(!URRDADataAssetBase::IsEnabled(Asset, GetWorld()))
|
||||
{
|
||||
UE_LOG(LogRRDApi, Error, TEXT("Asset Disabled: %s"), *FoundClass->GetPathName());
|
||||
continue;
|
||||
}
|
||||
OutDataAssets.Add(FoundClass->GetDefaultObject<T>());
|
||||
UE_LOG(LogRRDApi, Log, TEXT("Found %s"), *FoundClass->GetPathName());
|
||||
}
|
||||
}
|
||||
|
||||
return OutDataAssets.Num() > 0;
|
||||
}
|
||||
65
Source/RefinedRDApi/RefinedRDApi.Build.cs
Normal file
65
Source/RefinedRDApi/RefinedRDApi.Build.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
using UnrealBuildTool;
|
||||
|
||||
public class RefinedRDApi : ModuleRules
|
||||
{
|
||||
public RefinedRDApi(ReadOnlyTargetRules Target) : base(Target)
|
||||
{
|
||||
CppStandard = CppStandardVersion.Cpp20;
|
||||
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
||||
bLegacyPublicIncludePaths = false;
|
||||
|
||||
PublicDependencyModuleNames.AddRange(
|
||||
new[]
|
||||
{
|
||||
"Json",
|
||||
"Core",
|
||||
"CoreUObject",
|
||||
"Engine",
|
||||
"DeveloperSettings",
|
||||
"PhysicsCore",
|
||||
"InputCore",
|
||||
"OnlineSubsystem", "OnlineSubsystemNull", "OnlineSubsystemUtils",
|
||||
"SignificanceManager",
|
||||
"GeometryCollectionEngine",
|
||||
"ChaosVehiclesCore", "ChaosVehicles", "ChaosSolverEngine",
|
||||
"AnimGraphRuntime",
|
||||
"AkAudio", "HTTP",
|
||||
"AssetRegistry",
|
||||
"NavigationSystem",
|
||||
"ReplicationGraph",
|
||||
"AIModule",
|
||||
"GameplayTasks",
|
||||
"SlateCore", "Slate", "UMG",
|
||||
"RenderCore",
|
||||
"CinematicCamera",
|
||||
"Foliage",
|
||||
"Niagara",
|
||||
"EnhancedInput",
|
||||
"GameplayCameras",
|
||||
"TemplateSequence",
|
||||
"NetCore",
|
||||
"GameplayTags"
|
||||
});
|
||||
|
||||
// FactoryGame plugins
|
||||
PublicDependencyModuleNames.AddRange(new[]
|
||||
{
|
||||
"AbstractInstance",
|
||||
"InstancedSplinesComponent",
|
||||
"SignificanceISPC"
|
||||
});
|
||||
|
||||
// Header stubs
|
||||
PublicDependencyModuleNames.AddRange(new[]
|
||||
{
|
||||
"DummyHeaders"
|
||||
});
|
||||
|
||||
if (Target.Type == TargetRules.TargetType.Editor)
|
||||
PublicDependencyModuleNames.AddRange(new[] { "OnlineBlueprintSupport", "AnimGraph" });
|
||||
|
||||
PublicDependencyModuleNames.AddRange(new[] { "FactoryGame", "SML" });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user