Files
PHY/Plugins/GCS/Source/GenericGameplayAbilities/Public/Abilities/GGA_GameplayAbilityInterface.h
2026-03-03 01:23:02 +08:00

78 lines
2.6 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "GGA_AbilitySystemEnumLibrary.h"
#include "Abilities/GameplayAbilityTypes.h"
#include "UObject/Interface.h"
#include "GGA_GameplayAbilityInterface.generated.h"
/**
* Interface for gameplay abilities to integrate with GGA_AbilitySystemComponent.
* 与GGA_AbilitySystemComponent集成的游戏技能接口。
*/
UINTERFACE(MinimalAPI, BlueprintType, meta=(CannotImplementInterfaceInBlueprint))
class UGGA_GameplayAbilityInterface : public UInterface
{
GENERATED_BODY()
};
/**
* Implementation class for gameplay ability interface.
* 游戏技能接口的实现类。
*/
class GENERICGAMEPLAYABILITIES_API IGGA_GameplayAbilityInterface
{
GENERATED_BODY()
public:
/**
* Retrieves the activation group for the ability.
* 获取技能的激活组。
* @return The activation group. 激活组。
*/
UFUNCTION(BlueprintCallable, Category="Ability")
virtual EGGA_AbilityActivationGroup GetActivationGroup() const = 0;
/**
* Sets the activation group for the ability.
* 设置技能的激活组。
* @param NewGroup The new activation group. 新激活组。
*/
UFUNCTION(BlueprintCallable, Category="Ability")
virtual void SetActivationGroup(EGGA_AbilityActivationGroup NewGroup) = 0;
/**
* Attempts to activate the ability on spawn.
* 尝试在生成时激活技能。
* @param ActorInfo The actor info. Actor信息。
* @param Spec The ability spec. 技能规格。
*/
virtual void TryActivateAbilityOnSpawn(const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilitySpec& Spec) const = 0;
/**
* Handles ability activation failure.
* 处理技能激活失败。
* @param FailureReason The reason for failure. 失败原因。
*/
virtual void HandleActivationFailed(const FGameplayTagContainer& FailureReason) const = 0;
/**
* Attempts to activate the ability with batched RPCs.
* 尝试使用批处理RPC激活技能。
* @param InAbilityHandle The ability handle. 技能句柄。
* @param EndAbilityImmediately Whether to end the ability immediately. 是否立即结束技能。
* @return True if activation was successful, false otherwise. 如果激活成功则返回true否则返回false。
*/
UFUNCTION(BlueprintCallable, Category = "Ability|Net")
virtual bool BatchRPCTryActivateAbility(FGameplayAbilitySpecHandle InAbilityHandle, bool EndAbilityImmediately) = 0;
/**
* Ends the ability externally.
* 外部结束技能。
*/
UFUNCTION(BlueprintCallable, Category="Ability")
virtual void ExternalEndAbility() = 0;
};