Files
inventory-system-plugin/Source/ItemInteraction/Public/ItemInteractionActions.h
Bonchellon 7f7e043a88 Initial commit: Item Interaction Ecosystem plugin (UE5.7)
Server-authoritative, data-driven item/inventory/interaction/carry/equipment/
world-slot/placement/crafting framework. 8 modules, compiles against UE 5.7.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 20:49:56 +03:00

73 lines
2.1 KiB
C++

// 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();
};