#pragma once

#include "CoreMinimal.h"
#include "BhvrBlackboardValue.h"
#include "BhvrBlackboardValueMulticastDelegate.h"
#include "BhvrBlackboard.generated.h"

class AActor;

USTRUCT(BlueprintType)
struct FBhvrBlackboard
{
	GENERATED_BODY()

private:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	TArray<FBhvrBlackboardValue> Values;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, NotReplicated, Transient, meta=(AllowPrivateAccess=true))
	AActor* Owner;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, NotReplicated, Transient, meta=(AllowPrivateAccess=true))
	FBhvrBlackboardValueMulticastDelegate ChangeEvent;

public:
	BHVRBLACKBOARD_API FBhvrBlackboard();
};

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