// Oleg Petruny proprietary.

#pragma once

#include "InteractableModificator.h"

#include "ActivateInteractableModificator.generated.h"

DECLARE_DYNAMIC_MULTICAST_DELEGATE(FActivateInteractableModificatorActivatedDelegate);

/**
 * Basic modificator for type Use
 */
UCLASS(Blueprintable, BlueprintType, ClassGroup = InteractableModificator, meta = (BlueprintSpawnableComponent, ShortTooltip = "Basic modificator for type Use"), MinimalAPI)
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;
};
