From 9f8ced46b8256d1ae52aa891758b5beaa8e1be1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Deiber?= Date: Tue, 28 May 2024 10:53:46 +0200 Subject: [PATCH 1/3] get asc --- .../Private/Animation/GBFAnimInstance.cpp | 17 ++++++++++++----- .../Public/Animation/GBFAnimInstance.h | 4 ++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Source/GameBaseFramework/Private/Animation/GBFAnimInstance.cpp b/Source/GameBaseFramework/Private/Animation/GBFAnimInstance.cpp index f48fe052..f9b493ef 100644 --- a/Source/GameBaseFramework/Private/Animation/GBFAnimInstance.cpp +++ b/Source/GameBaseFramework/Private/Animation/GBFAnimInstance.cpp @@ -13,6 +13,16 @@ void UGBFAnimInstance::InitializeWithAbilitySystem( UAbilitySystemComponent * as GameplayTagPropertyMap.Initialize( this, asc ); } +UAbilitySystemComponent * UGBFAnimInstance::GetAbilitySystemComponent_Implementation() const +{ + if ( const auto * owning_actor = GetOwningActor() ) + { + return UAbilitySystemGlobals::GetAbilitySystemComponentFromActor( owning_actor ); + } + + return nullptr; +} + #if WITH_EDITOR EDataValidationResult UGBFAnimInstance::IsDataValid( FDataValidationContext & context ) const { @@ -28,11 +38,8 @@ void UGBFAnimInstance::NativeInitializeAnimation() { Super::NativeInitializeAnimation(); - if ( const auto * owning_actor = GetOwningActor() ) + if ( auto * asc = GetAbilitySystemComponent() ) { - if ( auto * asc = UAbilitySystemGlobals::GetAbilitySystemComponentFromActor( owning_actor ) ) - { - InitializeWithAbilitySystem( asc ); - } + InitializeWithAbilitySystem( asc ); } } \ No newline at end of file diff --git a/Source/GameBaseFramework/Public/Animation/GBFAnimInstance.h b/Source/GameBaseFramework/Public/Animation/GBFAnimInstance.h index b12f0bb0..2b7c1633 100644 --- a/Source/GameBaseFramework/Public/Animation/GBFAnimInstance.h +++ b/Source/GameBaseFramework/Public/Animation/GBFAnimInstance.h @@ -14,9 +14,13 @@ class GAMEBASEFRAMEWORK_API UGBFAnimInstance : public UAnimInstance GENERATED_BODY() public: + UFUNCTION( BlueprintCallable ) virtual void InitializeWithAbilitySystem( UAbilitySystemComponent * asc ); protected: + UFUNCTION( BlueprintNativeEvent ) + UAbilitySystemComponent * GetAbilitySystemComponent() const; + #if WITH_EDITOR EDataValidationResult IsDataValid( FDataValidationContext & context ) const override; #endif // WITH_EDITOR From d54b2e3e18657796fb2c2b24308973bafcd87a58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Deiber?= Date: Tue, 28 May 2024 11:02:49 +0200 Subject: [PATCH 2/3] clang format --- .../Private/Animation/GBFAnimationFunctionLibrary.cpp | 2 +- .../Public/Animation/GBFAnimationFunctionLibrary.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Source/GameBaseFramework/Private/Animation/GBFAnimationFunctionLibrary.cpp b/Source/GameBaseFramework/Private/Animation/GBFAnimationFunctionLibrary.cpp index db4b9e85..429d1315 100644 --- a/Source/GameBaseFramework/Private/Animation/GBFAnimationFunctionLibrary.cpp +++ b/Source/GameBaseFramework/Private/Animation/GBFAnimationFunctionLibrary.cpp @@ -2,7 +2,7 @@ #include "Animation/GBFAnimLayerSelectionSet.h" -TSubclassOf UGBFAnimationFunctionLibrary::SelectBestLayerFromAnimLayerSelectionSet( const FGBFAnimLayerSelectionSet & anim_layer_selection_set, const FGameplayTagContainer & cosmetic_tags ) +TSubclassOf< UAnimInstance > UGBFAnimationFunctionLibrary::SelectBestLayerFromAnimLayerSelectionSet( const FGBFAnimLayerSelectionSet & anim_layer_selection_set, const FGameplayTagContainer & cosmetic_tags ) { return anim_layer_selection_set.SelectBestLayer( cosmetic_tags ); } diff --git a/Source/GameBaseFramework/Public/Animation/GBFAnimationFunctionLibrary.h b/Source/GameBaseFramework/Public/Animation/GBFAnimationFunctionLibrary.h index 99062ebf..0f4128a4 100644 --- a/Source/GameBaseFramework/Public/Animation/GBFAnimationFunctionLibrary.h +++ b/Source/GameBaseFramework/Public/Animation/GBFAnimationFunctionLibrary.h @@ -14,7 +14,6 @@ class GAMEBASEFRAMEWORK_API UGBFAnimationFunctionLibrary final : public UBluepri GENERATED_BODY() public: - UFUNCTION( BlueprintCallable ) static TSubclassOf< UAnimInstance > SelectBestLayerFromAnimLayerSelectionSet( const FGBFAnimLayerSelectionSet & anim_layer_selection_set, const FGameplayTagContainer & cosmetic_tags ); }; From 50236c865b7ac3bf5ba875db3bd96ec5a8e6fa8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Deiber?= Date: Tue, 28 May 2024 11:27:48 +0200 Subject: [PATCH 3/3] add callable --- Source/GameBaseFramework/Public/Animation/GBFAnimInstance.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/GameBaseFramework/Public/Animation/GBFAnimInstance.h b/Source/GameBaseFramework/Public/Animation/GBFAnimInstance.h index 2b7c1633..e74a2de7 100644 --- a/Source/GameBaseFramework/Public/Animation/GBFAnimInstance.h +++ b/Source/GameBaseFramework/Public/Animation/GBFAnimInstance.h @@ -18,7 +18,7 @@ class GAMEBASEFRAMEWORK_API UGBFAnimInstance : public UAnimInstance virtual void InitializeWithAbilitySystem( UAbilitySystemComponent * asc ); protected: - UFUNCTION( BlueprintNativeEvent ) + UFUNCTION( BlueprintCallable, BlueprintNativeEvent ) UAbilitySystemComponent * GetAbilitySystemComponent() const; #if WITH_EDITOR