feat: DS Adapter data assets
This commit is contained in:
parent
31b8963757
commit
4aa2b4ccb0
@ -29,5 +29,5 @@
|
||||
"SemVersion": "^3.8.0"
|
||||
}
|
||||
],
|
||||
"GameVersion": ">=365306"
|
||||
"GameVersion": ">=377620"
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "DataAssets/RRDADataAssetDSAdapterCovers.h"
|
||||
|
@ -0,0 +1,5 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "DataAssets/RRDADataAssetDSModAdapter.h"
|
||||
|
1
Source/RefinedRDApi/Private/Structs/RRDADSStructs.cpp
Normal file
1
Source/RefinedRDApi/Private/Structs/RRDADSStructs.cpp
Normal file
@ -0,0 +1 @@
|
||||
#include "Structs/RRDADSStructs.h"
|
@ -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)) {
|
||||
|
@ -0,0 +1,27 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Buildables/FGBuildableFactory.h"
|
||||
#include "DataAssets/RRDADataAssetBase.h"
|
||||
#include "Structs/RRDADSStructs.h"
|
||||
#include "RRDADataAssetDSAdapterCovers.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class REFINEDRDAPI_API URRDADataAssetDSAdapterCovers : public URRDADataAssetBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
public:
|
||||
|
||||
/* The building class this adapter cover belongs to */
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="AdapterCovers")
|
||||
TSubclassOf<AFGBuildableFactory> mBuildableClass;
|
||||
|
||||
/* The offsets to place the cover mesh from the buildings origin */
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="AdapterCovers")
|
||||
TArray<FRRDADSAdapterOffset> mConnectionOffsets;
|
||||
};
|
@ -0,0 +1,41 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "RRDADataAssetDSAdapterCovers.h"
|
||||
#include "Buildables/FGBuildableFactory.h"
|
||||
#include "DataAssets/RRDADataAssetBase.h"
|
||||
#include "Structs/RRDADSStructs.h"
|
||||
#include "RRDADataAssetDSModAdapter.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class REFINEDRDAPI_API URRDADataAssetDSModAdapter : public URRDADataAssetBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
public:
|
||||
|
||||
/* The Building class to snap to when placing */
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="ModAdapter")
|
||||
TSubclassOf<AFGBuildableFactory> mBuildingClass;
|
||||
|
||||
/* The Adapter Cover Asset */
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="ModAdapter")
|
||||
URRDADataAssetDSAdapterCovers* mAdapterCoversAsset;
|
||||
|
||||
/* Select which inventories can be accessed by Digital Storage */
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="ModAdapter")
|
||||
TArray<FRRDADSModAdapterInventoryAccess> mInventoryAccess;
|
||||
|
||||
UPROPERTY( meta=(NoAutoJson = true) )
|
||||
bool mOverrideNetworkConnectionTransform = false;
|
||||
|
||||
/* By default the adapter will use the Power Connection Components Transform
|
||||
* Override this and manually set the transform
|
||||
*/
|
||||
UPROPERTY( EditDefaultsOnly, BlueprintReadOnly, Category = "ModAdapter", meta = ( EditCondition = mOverrideNetworkConnectionTransform ) )
|
||||
FTransform mNetworkConnectionRelativeTransform;
|
||||
};
|
11
Source/RefinedRDApi/Public/Enums/RRDADSEnums.h
Normal file
11
Source/RefinedRDApi/Public/Enums/RRDADSEnums.h
Normal file
@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class ERRDADSInventorySlotAccess : uint8
|
||||
{
|
||||
None,
|
||||
ImportToNetworkFromSlot,
|
||||
ExportFromNetworkToSlot,
|
||||
};
|
39
Source/RefinedRDApi/Public/Structs/RRDADSStructs.h
Normal file
39
Source/RefinedRDApi/Public/Structs/RRDADSStructs.h
Normal file
@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include "Enums/RRDADSEnums.h"
|
||||
#include "Math/Transform.h"
|
||||
#include "RRDADSStructs.generated.h"
|
||||
|
||||
|
||||
USTRUCT( BlueprintType )
|
||||
struct REFINEDRDAPI_API FRRDADSAdapterOffset
|
||||
{
|
||||
GENERATED_BODY()
|
||||
public:
|
||||
|
||||
/* The relative transform from the buildings origin */
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
FTransform mRelativeTransform;
|
||||
|
||||
/* If the cover should be a conveyor cover or a pipe cover */
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
bool bIsConveyor = true;
|
||||
};
|
||||
|
||||
USTRUCT( BlueprintType )
|
||||
struct REFINEDRDAPI_API FRRDADSModAdapterInventoryAccess
|
||||
{
|
||||
GENERATED_BODY()
|
||||
public:
|
||||
/* The Inventory Name to search for */
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
FName mInventoryName;
|
||||
|
||||
/* The Inventory index to search for in case couldn't find by name */
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
int mInventoryIndex = 0;
|
||||
|
||||
/* The Inventory slots to allow access to Digital Storage */
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
TMap<int, ERRDADSInventorySlotAccess> mInventorySlots;
|
||||
};
|
@ -5,6 +5,7 @@
|
||||
#include "CoreMinimal.h"
|
||||
#include "RefinedRDApi.h"
|
||||
#include "AssetRegistry/AssetRegistryModule.h"
|
||||
#include "Buildables/FGBuildableFactory.h"
|
||||
#include "DataAssets/RRDADataAssetBase.h"
|
||||
#include "DataAssets/RRDADirtDataAsset.h"
|
||||
#include "DataAssets/RRDABoilerDataAsset.h"
|
||||
@ -12,6 +13,7 @@
|
||||
#include "DataAssets/RRDAHeaterDataAsset.h"
|
||||
#include "DataAssets/RRDATurbineDataAsset.h"
|
||||
#include "DataAssets/RRDACoolerDataAsset.h"
|
||||
#include "DataAssets/RRDADataAssetDSModAdapter.h"
|
||||
#include "Enums/RRDARPEnums.h"
|
||||
#include "Resources/FGItemDescriptor.h"
|
||||
|
||||
@ -82,6 +84,7 @@ public:
|
||||
void ReCacheCoolerDataAssets();
|
||||
void ReCacheHeaterDataAssets();
|
||||
void ReCacheGeneratorDataAssets();
|
||||
void ReCacheDSModAdapterDataAssets();
|
||||
|
||||
public:
|
||||
// Dirt Functions
|
||||
@ -91,9 +94,19 @@ public:
|
||||
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|FF")
|
||||
URRDADirtDataAsset* GetDataForDirtItem(TSubclassOf<UFGItemDescriptor> Item) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|FF")
|
||||
TArray<URRDADirtDataAsset*> GetAllDirtAssets() const;
|
||||
|
||||
// DS Mod Adapter Functions
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|DS")
|
||||
int32 GetAllModAdapterBuildingClasses(TArray<TSubclassOf<AFGBuildableFactory>>& OutBuildingClasses) const;
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|DS")
|
||||
URRDADataAssetDSModAdapter* GetModAdapterDataAssetForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|DS")
|
||||
TArray<URRDADataAssetDSModAdapter*> GetAllModAdapterDataAssets() const;
|
||||
|
||||
// Turbine Functions
|
||||
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
|
||||
bool GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;
|
||||
@ -171,6 +184,9 @@ public:
|
||||
public:
|
||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||
TMap<TSubclassOf<UFGItemDescriptor>, URRDADirtDataAsset*> mDirtAssets;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||
TMap<TSubclassOf<AFGBuildableFactory>, URRDADataAssetDSModAdapter*> mDSModAdapterAssets;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, Category = "RRDA|DataAsset")
|
||||
TMap<int32, URRDAGeneratorDataAsset*> mGeneratorAssets;
|
||||
|
Loading…
x
Reference in New Issue
Block a user