// Copyright ExByte Studios. Item Interaction Ecosystem. #pragma once #include "CoreMinimal.h" #include "InteractionAction.h" #include "ItemInteractionActions.generated.h" /** * Concrete interaction actions (section 16). These are the Blueprint-droppable * authoring units: add one to an InteractableComponent's AvailableActions and the * resolver/executor will surface and run it. Built-in modes are also dispatched * directly by the interaction component, so both paths reach the same effect. */ UCLASS(meta = (DisplayName = "Action: Instant Pickup")) class ITEMINTERACTION_API UInteractionAction_InstantPickup : public UInteractionAction { GENERATED_BODY() public: UInteractionAction_InstantPickup(); virtual void Execute_Implementation(const FInteractionContext& Context) override; }; UCLASS(meta = (DisplayName = "Action: Open Loot UI")) class ITEMINTERACTION_API UInteractionAction_OpenLootUI : public UInteractionAction { GENERATED_BODY() public: UInteractionAction_OpenLootUI(); }; UCLASS(meta = (DisplayName = "Action: Inspect")) class ITEMINTERACTION_API UInteractionAction_Inspect : public UInteractionAction { GENERATED_BODY() public: UInteractionAction_Inspect(); virtual void Execute_Implementation(const FInteractionContext& Context) override; }; UCLASS(meta = (DisplayName = "Action: Combine")) class ITEMINTERACTION_API UInteractionAction_Combine : public UInteractionAction { GENERATED_BODY() public: UInteractionAction_Combine(); }; UCLASS(meta = (DisplayName = "Action: Transfer Container Item")) class ITEMINTERACTION_API UInteractionAction_TransferContainerItem : public UInteractionAction { GENERATED_BODY() public: UInteractionAction_TransferContainerItem(); }; UCLASS(meta = (DisplayName = "Action: Split Stack")) class ITEMINTERACTION_API UInteractionAction_SplitStack : public UInteractionAction { GENERATED_BODY() public: UInteractionAction_SplitStack(); }; UCLASS(meta = (DisplayName = "Action: Merge Stack")) class ITEMINTERACTION_API UInteractionAction_MergeStack : public UInteractionAction { GENERATED_BODY() public: UInteractionAction_MergeStack(); };