preparing to generate the attribute set from the table
This commit is contained in:
@ -1,5 +1,62 @@
|
||||
#pragma once
|
||||
#pragma once
|
||||
|
||||
#include "GasaCommon.h"
|
||||
#include "Engine/DataTable.h"
|
||||
|
||||
#include "GasaAbilitySystem.generated.h"
|
||||
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct GASA_API FAttributeSetField : public FTableRowBase
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
FAttributeSetField()
|
||||
: Name("Provide_Name")
|
||||
, Description("Provide Description")
|
||||
, Category("Optional Category")
|
||||
, BaseValue(0)
|
||||
, bUseMinAttribute(false)
|
||||
, bUseMaxAttribute(false)
|
||||
, MinAttribute("Attribute behaving has minimum value")
|
||||
, MinValue(0)
|
||||
, MaxAttribute("Attribute behaving has maximum value")
|
||||
, MaxValue(0)
|
||||
{}
|
||||
virtual ~FAttributeSetField()
|
||||
{}
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute")
|
||||
FString Name;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute")
|
||||
FString Description;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute")
|
||||
FString Category;
|
||||
|
||||
// UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute")
|
||||
// FGameplayTag Tag;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute")
|
||||
float BaseValue;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute")
|
||||
bool bUseMinAttribute;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute")
|
||||
bool bUseMaxAttribute;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute", meta =( EditCondition="bUseMinAttribute", EditConditionHides))
|
||||
FString MinAttribute;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute", meta =( EditCondition="bUseMinAttribute==false", EditConditionHides))
|
||||
float MinValue;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute", meta =( EditCondition="bUseMaxAttribute", EditConditionHides))
|
||||
FString MaxAttribute;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Gameplay Attribute", meta =( EditCondition="bUseMaxAttribute==false", EditConditionHides))
|
||||
float MaxValue;
|
||||
};
|
||||
|
||||
|
@ -109,8 +109,6 @@ void UGasaAttributeSet::PostGameplayEffectExecute( FGameplayEffectModCallbackDat
|
||||
{
|
||||
SetMaxMana( FMath::Clamp( GetMaxMana(), 0, 99999.000000 ) );
|
||||
}
|
||||
|
||||
PostAttributeChange_Custom();
|
||||
}
|
||||
|
||||
void UGasaAttributeSet::PreAttributeChange( FGameplayAttribute const& Attribute, float& NewValue )
|
||||
@ -149,8 +147,6 @@ void UGasaAttributeSet::PreAttributeChange( FGameplayAttribute const& Attribute,
|
||||
{
|
||||
NewValue = FMath::Clamp( NewValue, 0, 99999.000000 );
|
||||
}
|
||||
|
||||
PreAttributeChange_Custom();
|
||||
}
|
||||
|
||||
void UGasaAttributeSet::GetLifetimeReplicatedProps( TArray<FLifetimeProperty>& OutLifetimeProps ) const
|
||||
|
@ -1,4 +1,4 @@
|
||||
#pragma once
|
||||
#pragma once
|
||||
|
||||
#include "Networking/GasaNetLibrary.h"
|
||||
#include "GasaDevOptionsCache.h"
|
||||
|
@ -16,6 +16,9 @@ public:
|
||||
// NOTE(Ed): Any Soft-References must have their includes defined in GasaDevOptions.cpp
|
||||
// They are used by GasaGen for the GasaDevOptionsCache
|
||||
|
||||
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category="GAS")
|
||||
TArray< TSoftObjectPtr<UDataTable>> AttributeSets;
|
||||
|
||||
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category="UI")
|
||||
TSoftObjectPtr<UDataTable> TaggedMessageTable;
|
||||
|
||||
|
@ -11,6 +11,12 @@ void FGasaDevOptionsCache::CachedDevOptions()
|
||||
{
|
||||
UGasaDevOptions* DevOpts = GetMutDevOptions();
|
||||
|
||||
for ( auto& entry : DevOpts->AttributeSets )
|
||||
{
|
||||
AttributeSets.Push( entry.LoadSynchronous() );
|
||||
ensureMsgf( entry != nullptr, TEXT( "An AttributeSets entry is null, DO NOT RUN PIE or else you may get a crash if not handled in BP or C++" ) );
|
||||
}
|
||||
|
||||
TaggedMessageTable = DevOpts->TaggedMessageTable.LoadSynchronous();
|
||||
ensureMsgf( TaggedMessageTable != nullptr, TEXT( "TaggedMessageTable is null, DO NOT RUN PIE or else you may get a crash if not handled in BP or C++" ) );
|
||||
|
||||
|
@ -8,6 +8,8 @@ struct GASA_API FGasaDevOptionsCache
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY()
|
||||
TArray<UObject*> AttributeSets;
|
||||
UPROPERTY()
|
||||
UObject* TaggedMessageTable;
|
||||
UPROPERTY()
|
||||
|
Reference in New Issue
Block a user