Converted to use AZ::Events for hiearchy notifications. Added unittests.

Signed-off-by: AMZN-Olex <5432499+AMZN-Olex@users.noreply.github.com>
This commit is contained in:
AMZN-Olex
2021-09-14 11:50:51 -04:00
parent 088511577b
commit fcd5b3f184
9 changed files with 131 additions and 37 deletions
@@ -124,6 +124,16 @@ namespace Multiplayer
return GetEntity();
}
void NetworkHierarchyRootComponent::BindNetworkHierarchyChangedEventHandler(NetworkHierarchyChangedEvent::Handler& handler)
{
handler.Connect(m_networkHierarchyChangedEvent);
}
void NetworkHierarchyRootComponent::BindNetworkHierarchyLeaveEventHandler(NetworkHierarchyLeaveEvent::Handler& handler)
{
handler.Connect(m_networkHierarchyLeaveEvent);
}
void NetworkHierarchyRootComponent::OnParentChanged([[maybe_unused]] AZ::EntityId oldParent, AZ::EntityId newParent)
{
const AZ::EntityId entityBusId = *AZ::TransformNotificationBus::GetCurrentBusId();
@@ -168,6 +178,8 @@ namespace Multiplayer
uint32_t currentEntityCount = aznumeric_cast<uint32_t>(m_hierarchicalEntities.size());
RecursiveAttachHierarchicalEntities(GetEntityId(), currentEntityCount);
m_networkHierarchyChangedEvent.Signal(GetEntityId());
}
bool NetworkHierarchyRootComponent::RecursiveAttachHierarchicalEntities(AZ::EntityId underEntity, uint32_t& currentEntityCount)
@@ -255,6 +267,8 @@ namespace Multiplayer
}
}
}
m_networkHierarchyChangedEvent.Signal(GetEntityId());
}
void NetworkHierarchyRootComponent::SetTopLevelHierarchyRootEntity(AZ::Entity* hierarchyRoot)