// Oleg Petruny proprietary.

#pragma once

#include "CoreMinimal.h"
#include "InteractableModificator.h"

#include "ActivateInteractableModificator.generated.h"

DECLARE_DYNAMIC_MULTICAST_DELEGATE(FActivateInteractableModificatorActivatedDelegate);

UCLASS(ClassGroup = InteractableModificator, meta = (BlueprintSpawnableComponent), Blueprintable, BlueprintType)
class UActivateInteractableModificator : public UInteractableModificator
{
    GENERATED_BODY()

public:
    UActivateInteractableModificator(const FObjectInitializer& ObjectInitializer);

    void Bind_Implementation(class UEnhancedInputComponent* input) override;
    void Unbind_Implementation() override;

    UPROPERTY(BlueprintAssignable)
    FActivateInteractableModificatorActivatedDelegate OnActivated;

protected:
    void ActivateInteractable();

private:
    class UEnhancedInputComponent* lastInput = nullptr;
    TArray<int32> bindindingHandlers;
};
