// Oleg Petruny proprietary.

#pragma once

#include "CoreMinimal.h"

#include "InteractableActivator.h"

#include "InCameraInteractableActivator.generated.h"

UCLASS(Blueprintable, BlueprintType)
class UInCameraInteractableActivator : public UInteractableActivator
{
    GENERATED_BODY()

public:
    UInCameraInteractableActivator(const FObjectInitializer& ObjectInitializer);

protected:
    virtual void OnRegister() override;

    void Scan();
    virtual void Scan_Implementation() override;

    UFUNCTION(BlueprintNativeEvent, BlueprintCallable)
    void NewSeenInteractable(class AInteractable* interactable);
    virtual void NewSeenInteractable_Implementation(class AInteractable* interactable);

private:
    class UInteractableScreenCapturer* _capturer;
    TQueue<class AInteractable*> _interactablesToActivate;
};
