97 lines
2.9 KiB
C++
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);
|
|
};
|