feat: DS Adapter data assets

This commit is contained in:
mrhid6
2024-11-11 16:47:42 +00:00
parent 31b8963757
commit 4aa2b4ccb0
10 changed files with 185 additions and 5 deletions

View File

@@ -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;
};

View File

@@ -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;
};

View File

@@ -0,0 +1,11 @@
#pragma once
#include "CoreMinimal.h"
UENUM(BlueprintType)
enum class ERRDADSInventorySlotAccess : uint8
{
None,
ImportToNetworkFromSlot,
ExportFromNetworkToSlot,
};

View 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;
};

View File

@@ -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;