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>
77 lines
2.4 KiB
C++
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;
|
|
};
|