From b4f8296692c68ab4b98827cf1d36762d262068ef Mon Sep 17 00:00:00 2001 From: Mor Ohana Date: Sat, 13 Dec 2025 11:49:48 +0200 Subject: [PATCH] Fix OnComponentNotify node not using identity tag match type --- .../Actor/FlowNode_OnNotifyFromActor.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Source/Flow/Private/Nodes/Actor/FlowNode_OnNotifyFromActor.cpp b/Source/Flow/Private/Nodes/Actor/FlowNode_OnNotifyFromActor.cpp index b6f073671..d69c0d209 100644 --- a/Source/Flow/Private/Nodes/Actor/FlowNode_OnNotifyFromActor.cpp +++ b/Source/Flow/Private/Nodes/Actor/FlowNode_OnNotifyFromActor.cpp @@ -35,7 +35,24 @@ void UFlowNode_OnNotifyFromActor::ForgetActor(TWeakObjectPtr Actor, TWea void UFlowNode_OnNotifyFromActor::OnNotifyFromComponent(UFlowComponent* Component, const FGameplayTag& Tag) { - if (Component->IdentityTags.HasAnyExact(IdentityTags) && (!NotifyTags.IsValid() || NotifyTags.HasTagExact(Tag))) + bool IdentityMatches = false; + + switch (IdentityMatchType) { + case EFlowTagContainerMatchType::HasAny: + IdentityMatches = Component->IdentityTags.HasAny(IdentityTags); + break; + case EFlowTagContainerMatchType::HasAnyExact: + IdentityMatches = Component->IdentityTags.HasAnyExact(IdentityTags); + break; + case EFlowTagContainerMatchType::HasAll: + IdentityMatches = Component->IdentityTags.HasAll(IdentityTags); + break; + case EFlowTagContainerMatchType::HasAllExact: + IdentityMatches = Component->IdentityTags.HasAllExact(IdentityTags); + break; + } + + if (IdentityMatches && (!NotifyTags.IsValid() || NotifyTags.HasTagExact(Tag))) { OnEventReceived(); }