From e3d007319d4efadcbee33188e8da77f31af4f6b4 Mon Sep 17 00:00:00 2001 From: chcurran <82187351+carlitosan@users.noreply.github.com> Date: Thu, 9 Sep 2021 14:37:08 -0700 Subject: [PATCH] remove false error from deserializing BC nodes Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com> --- .../Libraries/Core/EBusEventHandler.cpp | 2 +- .../ScriptCanvas/Libraries/Core/Method.cpp | 42 +++++++++++-------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.cpp index 4e2d740656..a2ccfd46f2 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.cpp @@ -610,7 +610,7 @@ namespace ScriptCanvas void EBusEventHandler::OnDeserialize() { AZStd::lock_guard lock(m_mutex); - if (!m_ebus) + if (!m_ebus && !m_ebusName.empty()) { CreateHandler(m_ebusName); } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Method.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Method.cpp index 793224fd86..7e3f5f7d24 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Method.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Method.cpp @@ -769,27 +769,30 @@ namespace ScriptCanvas { AZStd::lock_guard lock(m_mutex); - m_warnOnMissingFunction = true; - const AZ::BehaviorClass* bcClass{}; - const AZ::BehaviorMethod* method{}; - EventType eventType; - - if (GetBehaviorContextClassMethod(m_lookupName, bcClass, method, eventType)) + if (!m_lookupName.empty() || !m_className.empty()) { - m_eventType = eventType; - ConfigureMethod(*method, bcClass); - } - else - { - if (!m_method) + m_warnOnMissingFunction = true; + const AZ::BehaviorClass* bcClass{}; + const AZ::BehaviorMethod* method{}; + EventType eventType; + + if (GetBehaviorContextClassMethod(m_lookupName, bcClass, method, eventType)) { - AZ_Warning("ScriptCanvas", !m_warnOnMissingFunction, "method node failed to deserialize properly"); + m_eventType = eventType; + ConfigureMethod(*method, bcClass); + } + else + { + if (!m_method) + { + AZ_Warning("ScriptCanvas", !m_warnOnMissingFunction, "method node failed to deserialize properly"); + } } - } - if (m_resultSlotIDs.empty()) - { - m_resultSlotIDs.emplace_back(SlotId{}); + if (m_resultSlotIDs.empty()) + { + m_resultSlotIDs.emplace_back(SlotId{}); + } } Node::OnDeserialize(); @@ -798,6 +801,11 @@ namespace ScriptCanvas #if defined(OBJECT_STREAM_EDITOR_ASSET_LOADING_SUPPORT_ENABLED)//// void Method::OnWriteEnd() { + if (m_lookupName.empty() && m_className.empty()) + { + return; + } + OnDeserialize(); } #endif//defined(OBJECT_STREAM_EDITOR_ASSET_LOADING_SUPPORT_ENABLED)