#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "UObject/SoftObjectPtr.h"
#include "EAnimationLayerConditionUpdateType.h"
#include "AnimationDatabaseRow.generated.h"

class UAnimationLayerDatabaseDataList;
class UAnimationLayerCondition;

UCLASS(Blueprintable, DefaultToInstanced, EditInlineNew)
class UAnimationDatabaseRow : public UObject
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FName Name;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Export)
	TSoftObjectPtr<UAnimationLayerDatabaseDataList> Data;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	EAnimationLayerConditionUpdateType LoadingConditionUpdateType;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced)
	UAnimationLayerCondition* LoadingCondition;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	EAnimationLayerConditionUpdateType UnloadingConditionUpdateType;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced)
	UAnimationLayerCondition* UnloadingCondition;

public:
	UAnimationDatabaseRow();
};

FORCEINLINE uint32 GetTypeHash(const UAnimationDatabaseRow) { return 0; }
