第一次提交
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "SmartObjectRuntime.h"
|
||||
#include "SmartObjectSubsystem.h"
|
||||
#include "SmartObjectTypes.h"
|
||||
#if ENGINE_MINOR_VERSION >= 6
|
||||
#include "SmartObjectRequestTypes.h"
|
||||
#endif
|
||||
#include "Engine/DataTable.h"
|
||||
#include "UObject/Object.h"
|
||||
#include "GGS_InteractionStructLibrary.generated.h"
|
||||
|
||||
class UGGS_InteractionSystemComponent;
|
||||
class UAbilitySystemComponent;
|
||||
class UGGS_InteractionDefinition;
|
||||
|
||||
/**
|
||||
* Structure wrapping an interaction definition for smart object interaction.
|
||||
* 封装智能对象交互的交互定义结构。
|
||||
*/
|
||||
USTRUCT(DisplayName="Interaction Entrance")
|
||||
struct GENERICGAMESYSTEM_API FGGS_SmartObjectInteractionEntranceData : public FSmartObjectDefinitionData
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
/**
|
||||
* Interaction definition containing static data for player interaction.
|
||||
* 包含玩家交互静态数据的交互定义。
|
||||
* @note Replicated across the network.
|
||||
* @注意 通过网络同步。
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category="Interaction", meta=(DisplayName="Definition"))
|
||||
TSoftObjectPtr<UGGS_InteractionDefinition> DefinitionDA{nullptr};
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure representing an interaction option.
|
||||
* 表示交互选项的结构。
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct GENERICGAMESYSTEM_API FGGS_InteractionOption
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
/**
|
||||
* Interaction definition associated with this option.
|
||||
* 与此选项关联的交互定义。
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Interaction")
|
||||
TObjectPtr<UGGS_InteractionDefinition> Definition{nullptr};
|
||||
|
||||
/**
|
||||
* Smart object request result for this option. Not replicated.
|
||||
* 此选项的智能对象请求结果。未网络同步。
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, NotReplicated, Category="Interaction")
|
||||
FSmartObjectRequestResult RequestResult;
|
||||
|
||||
/**
|
||||
* Smart object behavior definition for this option.
|
||||
* 此选项的智能对象行为定义。
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, NotReplicated, Category="Interaction")
|
||||
TObjectPtr<const USmartObjectBehaviorDefinition> BehaviorDefinition;
|
||||
|
||||
/**
|
||||
* Index of the associated smart object slot, used for UI sorting.
|
||||
* 关联智能对象槽的索引,用于UI排序。
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Interaction")
|
||||
int32 SlotIndex{-1};
|
||||
|
||||
/**
|
||||
* State of the associated smart object slot, used for UI input rules.
|
||||
* 关联智能对象槽的状态,用于UI输入规则。
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Interaction")
|
||||
ESmartObjectSlotState SlotState{ESmartObjectSlotState::Free};
|
||||
|
||||
/**
|
||||
* Equality operator for comparing interaction options.
|
||||
* 交互选项的相等比较运算符。
|
||||
*/
|
||||
friend bool operator==(const FGGS_InteractionOption& Lhs, const FGGS_InteractionOption& RHS);
|
||||
|
||||
/**
|
||||
* Inequality operator for comparing interaction options.
|
||||
* 交互选项的不等比较运算符。
|
||||
*/
|
||||
friend bool operator!=(const FGGS_InteractionOption& Lhs, const FGGS_InteractionOption& RHS);
|
||||
|
||||
/**
|
||||
* Less-than operator for sorting interaction options by slot index.
|
||||
* 按槽索引排序交互选项的比较运算符。
|
||||
*/
|
||||
friend bool operator<(const FGGS_InteractionOption& Lhs, const FGGS_InteractionOption& RHS);
|
||||
|
||||
/**
|
||||
* Converts the interaction option to a string representation.
|
||||
* 将交互选项转换为字符串表示。
|
||||
* @return String representation of the option. 选项的字符串表示。
|
||||
*/
|
||||
FString ToString() const;
|
||||
};
|
||||
Reference in New Issue
Block a user