#pragma once

#include "CoreMinimal.h"
#include "Subsystems/GameInstanceSubsystem.h"
#include "BarkGameSubsystem.generated.h"

class UWorldBarkFactProvider;
class UAbstractBarkTrigger;

UCLASS(Blueprintable)
class BARKSYSTEM_API UBarkGameSubsystem : public UGameInstanceSubsystem
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UWorldBarkFactProvider* worldFactProvider;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	TArray<UAbstractBarkTrigger*> _triggerHandlers;

public:
	UBarkGameSubsystem();
};

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