#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "UObject/ScriptInterface.h"
#include "BloodwebGenerator.generated.h"

class IDBDBloodwebDefinitionBase;
class UBloodwebTunables;
class UBloodwebDistribution;
class UBloodwebSettings;

UCLASS(Blueprintable)
class DEADBYDAYLIGHT_API UBloodwebGenerator : public UObject
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FRandomStream _randomizationStream;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<FString> _selectedNodes;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<FName> _selectedContent;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	TScriptInterface<IDBDBloodwebDefinitionBase> _bloodWebDefinition;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UBloodwebTunables* _bloodwebTunables;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	float _alternativePathOccurenceFactor;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UBloodwebDistribution* _dataDistribution;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	UBloodwebSettings* _bloodwebSettings;

public:
	UBloodwebGenerator();
};

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