#pragma once

#include "CoreMinimal.h"
#include "ObjectPlacerComponent.h"
#include "UObject/NoExportTypes.h"
#include "DreamSnarePlacerComponent.generated.h"

UCLASS(Blueprintable, EditInlineNew, meta=(BlueprintSpawnableComponent))
class THENIGHTMARE_API UDreamSnarePlacerComponent : public UObjectPlacerComponent
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	float _minPitch;

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

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

protected:
	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, BlueprintCosmetic)
	void Cosmetic_UpdateSnareIndicator(const FTransform& newTransform);

	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, BlueprintCosmetic)
	void Cosmetic_ActivateSnarePlacement(bool activate);

public:
	UDreamSnarePlacerComponent();
};

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