#pragma once

#include "CoreMinimal.h"
#include "GameplayTagContainer.h"
#include "BhvrBlackboardValueMulticastDelegate.h"
#include "InstancedStruct.h"
#include "BhvrBlackboardValue.generated.h"

USTRUCT(BlueprintType)
struct FBhvrBlackboardValue
{
	GENERATED_BODY()

public:
	UPROPERTY(EditInstanceOnly, Transient)
	FGameplayTag Key;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, NotReplicated, Transient)
	FBhvrBlackboardValueMulticastDelegate ChangeEvent;

private:
	UPROPERTY(EditAnywhere)
	FInstancedStruct InstancedStruct;

	UPROPERTY(EditAnywhere)
	uint32 Version;

public:
	BHVRBLACKBOARD_API FBhvrBlackboardValue();
};

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