feat: Item filters

This commit is contained in:
mrhid6
2024-11-27 13:15:40 +00:00
parent 8e6378208c
commit 0d976de526
4 changed files with 95 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "DataAssets/RRDADataAssetBase.h"
#include "Resources/FGItemDescriptor.h"
#include "RRDADataAssetDSItemFilter.generated.h"
/**
*
*/
UCLASS()
class REFINEDRDAPI_API URRDADataAssetDSItemFilter : public URRDADataAssetBase
{
GENERATED_BODY()
public:
/* The Building class this item filter should be used on */
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="ItemFilter")
TSubclassOf<AFGBuildableFactory> mBuildingClass;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="ItemFilter")
int mInventoryIndex = 0;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="ItemFilter")
int mInventorySlotIndex = 0;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="ItemFilter")
TArray<TSubclassOf<UFGItemDescriptor>> mItemFilterClasses;
};

View File

@@ -13,6 +13,7 @@
#include "DataAssets/RRDAHeaterDataAsset.h"
#include "DataAssets/RRDATurbineDataAsset.h"
#include "DataAssets/RRDACoolerDataAsset.h"
#include "DataAssets/RRDADataAssetDSItemFilter.h"
#include "DataAssets/RRDADataAssetDSModAdapter.h"
#include "Enums/RRDARPEnums.h"
#include "Resources/FGItemDescriptor.h"
@@ -66,6 +67,9 @@ struct FRRDADataHolderDSBuildingData
UPROPERTY()
URRDADataAssetDSModAdapter* ModAdapter;
UPROPERTY()
TArray<URRDADataAssetDSItemFilter*> ItemFilters;
};
UCLASS()
@@ -98,6 +102,7 @@ public:
void ReCacheGeneratorDataAssets();
void ReCacheDSModAdapterDataAssets();
void ReCacheDSAdapterCoversDataAssets();
void ReCacheDSItemFilters();
public:
// Dirt Functions
@@ -133,6 +138,14 @@ public:
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|DS")
bool HasDSAdaperCoversForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass);
// DS Item Filters
UFUNCTION(BlueprintCallable, Category = "RRDA|DataAsset|DS")
TArray<URRDADataAssetDSItemFilter*> GetDSItemFiltersDataAssetsForBuildingClass(TSubclassOf<AFGBuildableFactory> BuildingClass) const;
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|DS")
TArray<URRDADataAssetDSItemFilter*> GetAllDSItemFiltersDataAssets() const;
// Turbine Functions
UFUNCTION(BlueprintPure, Category = "RRDA|DataAsset|RP|MP")
bool GetAllTurbineItems(TArray<TSubclassOf<UFGItemDescriptor>>& Items, int32 Tier) const;