// Copyright ExByte Studios. Item Interaction Ecosystem.

#pragma once

#include "CoreMinimal.h"
#include "InteractionAction.h"
#include "PlacementInteractionActions.generated.h"

/** Placement actions (section 16) - drive the player's UPlacementPreviewComponent. */

UCLASS(meta = (DisplayName = "Action: Start Placement"))
class ITEMPLACEMENT_API UInteractionAction_StartPlacement : public UInteractionAction
{
	GENERATED_BODY()
public:
	UInteractionAction_StartPlacement();
	virtual void Execute_Implementation(const FInteractionContext& Context) override;
};

UCLASS(meta = (DisplayName = "Action: Confirm Placement"))
class ITEMPLACEMENT_API UInteractionAction_ConfirmPlacement : public UInteractionAction
{
	GENERATED_BODY()
public:
	UInteractionAction_ConfirmPlacement();
	virtual void Execute_Implementation(const FInteractionContext& Context) override;
};

UCLASS(meta = (DisplayName = "Action: Cancel Placement"))
class ITEMPLACEMENT_API UInteractionAction_CancelPlacement : public UInteractionAction
{
	GENERATED_BODY()
public:
	UInteractionAction_CancelPlacement();
	virtual void Execute_Implementation(const FInteractionContext& Context) override;
};
