From eb6949298aaf262a31d0c1612d24e95744045397 Mon Sep 17 00:00:00 2001 From: Viktor Blomme Date: Fri, 28 Feb 2025 17:19:45 +0100 Subject: [PATCH 1/3] Add new methods to init the player at start completely --- .../Private/Chaos/GBFChaosCachePlayer.cpp | 40 +++++++++++++++++++ .../Public/Chaos/GBFChaosCachePlayer.h | 9 +++++ 2 files changed, 49 insertions(+) diff --git a/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp b/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp index 297ac5d1..f9b252cc 100644 --- a/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp +++ b/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp @@ -26,6 +26,41 @@ void AGBFChaosCachePlayer::AddNewObservedComponentFromCacheCollectionIndex( UPri BeginEvaluate(); } +void AGBFChaosCachePlayer::AddAllObservedComponentsFromCacheCollection( UPrimitiveComponent * observed_component ) +{ + if ( !ensureMsgf( observed_component != nullptr, TEXT( "Observed component is not valid!" ) ) ) + { + return; + } + + if ( !ensureMsgf( CacheCollection != nullptr, TEXT( "CacheCollection is not valid!" ) ) ) + { + return; + } + + auto & caches = CacheCollection->GetCaches(); + + for ( auto & cache : caches ) + { + auto & new_observed_component = AddNewObservedComponent( observed_component ); + new_observed_component.CacheName = cache->GetFName(); + } +} + +void AGBFChaosCachePlayer::TriggerComponentByCacheCollectionIndex( const int32 collection_index ) +{ + auto & caches = CacheCollection->GetCaches(); + + if ( !ensureMsgf( caches.IsValidIndex( collection_index ), TEXT( "Index %i is not a valid index in cache collection %s" ), collection_index, *CacheCollection.GetFName().ToString() ) ) + { + return; + } + + const auto cache_name = caches[ collection_index ]->GetFName(); + + TriggerComponentByCache( cache_name ); +} + void AGBFChaosCachePlayer::ResetObservedComponents() { EndEvaluate(); @@ -33,6 +68,11 @@ void AGBFChaosCachePlayer::ResetObservedComponents() BeginEvaluate(); } +void AGBFChaosCachePlayer::K2_BeginEvaluate() +{ + BeginEvaluate(); +} + void AGBFChaosCachePlayer::BeginPlay() { Super::BeginPlay(); diff --git a/Source/GameBaseFramework/Public/Chaos/GBFChaosCachePlayer.h b/Source/GameBaseFramework/Public/Chaos/GBFChaosCachePlayer.h index 0367e9aa..ad4ec58d 100644 --- a/Source/GameBaseFramework/Public/Chaos/GBFChaosCachePlayer.h +++ b/Source/GameBaseFramework/Public/Chaos/GBFChaosCachePlayer.h @@ -17,8 +17,17 @@ class GAMEBASEFRAMEWORK_API AGBFChaosCachePlayer : public AChaosCachePlayer UFUNCTION( BlueprintCallable ) void AddNewObservedComponentFromCacheCollectionIndex( UPrimitiveComponent * observed_component, int32 collection_index ); + UFUNCTION( BlueprintCallable ) + void AddAllObservedComponentsFromCacheCollection( UPrimitiveComponent * observed_component ); + + UFUNCTION( BlueprintCallable ) + void TriggerComponentByCacheCollectionIndex( int32 collection_index ); + UFUNCTION( BlueprintCallable ) void ResetObservedComponents(); + UFUNCTION( BlueprintCallable ) + void K2_BeginEvaluate(); + void BeginPlay() override; }; From a35ad42a79994effd440fd0b11059d83073fb64b Mon Sep 17 00:00:00 2001 From: Viktor Blomme Date: Fri, 28 Feb 2025 19:46:01 +0100 Subject: [PATCH 2/3] Cleanup --- .../GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp | 2 +- Source/GameBaseFramework/Public/Chaos/GBFChaosCachePlayer.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp b/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp index f9b252cc..826dcb4d 100644 --- a/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp +++ b/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp @@ -26,7 +26,7 @@ void AGBFChaosCachePlayer::AddNewObservedComponentFromCacheCollectionIndex( UPri BeginEvaluate(); } -void AGBFChaosCachePlayer::AddAllObservedComponentsFromCacheCollection( UPrimitiveComponent * observed_component ) +void AGBFChaosCachePlayer::AddNewObservedComponentsFromCacheCollection( UPrimitiveComponent * observed_component ) { if ( !ensureMsgf( observed_component != nullptr, TEXT( "Observed component is not valid!" ) ) ) { diff --git a/Source/GameBaseFramework/Public/Chaos/GBFChaosCachePlayer.h b/Source/GameBaseFramework/Public/Chaos/GBFChaosCachePlayer.h index ad4ec58d..579637c0 100644 --- a/Source/GameBaseFramework/Public/Chaos/GBFChaosCachePlayer.h +++ b/Source/GameBaseFramework/Public/Chaos/GBFChaosCachePlayer.h @@ -18,7 +18,7 @@ class GAMEBASEFRAMEWORK_API AGBFChaosCachePlayer : public AChaosCachePlayer void AddNewObservedComponentFromCacheCollectionIndex( UPrimitiveComponent * observed_component, int32 collection_index ); UFUNCTION( BlueprintCallable ) - void AddAllObservedComponentsFromCacheCollection( UPrimitiveComponent * observed_component ); + void AddNewObservedComponentsFromCacheCollection( UPrimitiveComponent * observed_component ); UFUNCTION( BlueprintCallable ) void TriggerComponentByCacheCollectionIndex( int32 collection_index ); @@ -26,7 +26,7 @@ class GAMEBASEFRAMEWORK_API AGBFChaosCachePlayer : public AChaosCachePlayer UFUNCTION( BlueprintCallable ) void ResetObservedComponents(); - UFUNCTION( BlueprintCallable ) + UFUNCTION( BlueprintCallable, DisplayName = "BeginEvaluate" ) void K2_BeginEvaluate(); void BeginPlay() override; From 7595a3dfc741c19d4fefef2c97c9fb447fd79bc2 Mon Sep 17 00:00:00 2001 From: Viktor Blomme Date: Fri, 28 Feb 2025 19:58:47 +0100 Subject: [PATCH 3/3] Remove begin evaluate from function --- Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp b/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp index 826dcb4d..66b2c36d 100644 --- a/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp +++ b/Source/GameBaseFramework/Private/Chaos/GBFChaosCachePlayer.cpp @@ -23,7 +23,6 @@ void AGBFChaosCachePlayer::AddNewObservedComponentFromCacheCollectionIndex( UPri auto & new_observed_component = AddNewObservedComponent( observed_component ); new_observed_component.CacheName = caches[ collection_index ]->GetFName(); - BeginEvaluate(); } void AGBFChaosCachePlayer::AddNewObservedComponentsFromCacheCollection( UPrimitiveComponent * observed_component )