From c83bf11a3d81d848d11bfbca56c7ebcc68afbbd4 Mon Sep 17 00:00:00 2001 From: carlitosan <82187351+carlitosan@users.noreply.github.com> Date: Tue, 4 Jan 2022 14:21:06 -0800 Subject: [PATCH] on demand reflect az events when they are the return value of ebuses (#6625) Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com> --- .../View/Widgets/NodePalette/NodePaletteModel.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp index 0efdf071f5..113c43682f 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp @@ -1159,7 +1159,7 @@ namespace ScriptCanvasEditor , AZStd::string_view eventName , const ScriptCanvas::EBusBusId& busId , const ScriptCanvas::EBusEventId& eventId - , const AZ::BehaviorEBusEventSender& + , const AZ::BehaviorEBusEventSender& sender , ScriptCanvas::PropertyStatus propertyStatus , bool isOverload) { @@ -1193,6 +1193,17 @@ namespace ScriptCanvasEditor senderInformation->m_displayName = details.m_name.empty() ? eventName : details.m_name.c_str(); senderInformation->m_toolTip = details.m_tooltip.empty() ? "" : details.m_tooltip; + auto safeRegister = [](AZ::BehaviorMethod* method) + { + if (method && AZ::MethodReturnsAzEventByReferenceOrPointer(*method)) + { + const AZ::BehaviorParameter* resultParameter = method->GetResult(); + ScriptCanvas::ReflectEventTypeOnDemand(resultParameter->m_typeId, resultParameter->m_name, resultParameter->m_azRtti); + } + }; + + safeRegister(sender.m_event); + safeRegister(sender.m_broadcast); m_registeredNodes.emplace(AZStd::make_pair(nodeIdentifier, senderInformation)); } }