Files
inventory-system-plugin/Source/ItemWorld/Public/WorldInteractionActions.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

77 lines
2.4 KiB
C++

// Copyright ExByte Studios. Item Interaction Ecosystem.
#pragma once
#include "CoreMinimal.h"
#include "InteractionAction.h"
#include "WorldInteractionActions.generated.h"
/**
* World interaction actions (section 16). Each routes through the player's
* UItemInteractionComponent::ServerExecuteMode so it shares the one validated
* execution path (carry/equip/install/use live in UWorldInteractionComponent).
*/
UCLASS(meta = (DisplayName = "Action: Carry (Attached)"))
class ITEMWORLD_API UInteractionAction_CarryAttached : public UInteractionAction
{
GENERATED_BODY()
public:
UInteractionAction_CarryAttached();
virtual void Execute_Implementation(const FInteractionContext& Context) override;
};
UCLASS(meta = (DisplayName = "Action: Carry (Physics)"))
class ITEMWORLD_API UInteractionAction_CarryPhysics : public UInteractionAction
{
GENERATED_BODY()
public:
UInteractionAction_CarryPhysics();
virtual void Execute_Implementation(const FInteractionContext& Context) override;
};
UCLASS(meta = (DisplayName = "Action: Equip"))
class ITEMWORLD_API UInteractionAction_Equip : public UInteractionAction
{
GENERATED_BODY()
public:
UInteractionAction_Equip();
virtual void Execute_Implementation(const FInteractionContext& Context) override;
};
UCLASS(meta = (DisplayName = "Action: Drop Held Item"))
class ITEMWORLD_API UInteractionAction_DropHeldItem : public UInteractionAction
{
GENERATED_BODY()
public:
UInteractionAction_DropHeldItem();
virtual void Execute_Implementation(const FInteractionContext& Context) override;
};
UCLASS(meta = (DisplayName = "Action: Install Into World Slot"))
class ITEMWORLD_API UInteractionAction_InstallIntoWorldSlot : public UInteractionAction
{
GENERATED_BODY()
public:
UInteractionAction_InstallIntoWorldSlot();
virtual void Execute_Implementation(const FInteractionContext& Context) override;
};
UCLASS(meta = (DisplayName = "Action: Remove From World Slot"))
class ITEMWORLD_API UInteractionAction_RemoveFromWorldSlot : public UInteractionAction
{
GENERATED_BODY()
public:
UInteractionAction_RemoveFromWorldSlot();
virtual void Execute_Implementation(const FInteractionContext& Context) override;
};
UCLASS(meta = (DisplayName = "Action: Use Held On Target"))
class ITEMWORLD_API UInteractionAction_UseHeldOnTarget : public UInteractionAction
{
GENERATED_BODY()
public:
UInteractionAction_UseHeldOnTarget();
virtual void Execute_Implementation(const FInteractionContext& Context) override;
};