Files
PHY/Plugins/GCS/Source/GenericCombatSystem/Public/Weapon/GCS_WeaponInterface.h
2026-03-03 01:23:02 +08:00

97 lines
2.9 KiB
C++

// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "GameplayTagContainer.h"
#include "UObject/Interface.h"
#include "GCS_WeaponInterface.generated.h"
class APawn;
class AActor;
/**
* Interface for objects acting as weapons.
* 作为武器的对象的接口。
*/
UINTERFACE()
class UGCS_WeaponInterface : public UInterface
{
GENERATED_BODY()
};
/**
* Interface for weapon-related functionality.
* 武器相关功能的接口。
*/
class GENERICCOMBATSYSTEM_API IGCS_WeaponInterface
{
GENERATED_BODY()
public:
/**
* Gets the pawn owning this weapon.
* 获取拥有此武器的Pawn。
* @return The owning pawn. 所属Pawn。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GCS|Weapon")
APawn* GetWeaponOwner() const;
/**
* Gets the gameplay tags associated with the weapon.
* 获取与武器关联的游戏标签。
* @return The weapon's gameplay tags. 武器游戏标签。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GCS|Weapon")
const FGameplayTagContainer GetWeaponTags() const;
/**
* Sets the weapon's active state.
* 设置武器的激活状态。
* @param bNewActive The new active state. 新激活状态。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "GCS|Weapon")
void SetWeaponActive(bool bNewActive);
/**
* Checks if the weapon is active.
* 检查武器是否激活。
* @return True if the weapon is active. 如果武器激活返回true。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "GCS|Weapon")
bool IsWeaponActive() const;
/**
* Gets the main primitive component of the weapon.
* 获取武器的主要原始组件。
* @return The primitive component. 原始组件。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "GCS|Weapon")
UPrimitiveComponent* GetPrimitiveComponent() const;
virtual UPrimitiveComponent* GetPrimitiveComponent_Implementation() const;
/**
* Gets the targeting start transform for ranged weapons.
* 获取远程武器的目标起始变换。
* @return The targeting start transform. 目标起始变换。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GCS|Weapon", meta=(DisplayName="Get Targeting Start Transform"))
FTransform GCS_GetTargetingStartTransform() const;
/**
* Toggles targeting for the weapon.
* 切换武器的目标状态。
* @param bEnable Whether to enable targeting. 是否启用目标。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GCS|Weapon", meta=(DisplayName="Toggle Targeting"))
void GCS_ToggleTargeting(bool bEnable);
/**
* Toggles trails for the weapon.
* 开关武器拖尾。
* @param bEnable Whether to enable trails. 是否启用武器拖尾
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GCS|Weapon", meta=(DisplayName="Toggle Trail"))
void ToggleTrail(bool bEnable);
};