diff --git a/Code/Framework/AzCore/AzCore/RTTI/AzStdOnDemandReflection.inl b/Code/Framework/AzCore/AzCore/RTTI/AzStdOnDemandReflection.inl index 9bda5cdcce..ebe7d27a8e 100644 --- a/Code/Framework/AzCore/AzCore/RTTI/AzStdOnDemandReflection.inl +++ b/Code/Framework/AzCore/AzCore/RTTI/AzStdOnDemandReflection.inl @@ -406,6 +406,7 @@ namespace AZ AZStd::vector eventParamsTypes{ AZStd::initializer_list{ CreateBehaviorEventParameter>()... } }; behaviorContext->Class>() + ->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::ExcludeFlags::ListOnly) ->Attribute(AZ::Script::Attributes::EventHandlerCreationFunction, createHandlerHolder) ->Attribute(AZ::Script::Attributes::EventParameterTypes, eventParamsTypes) ->Method("HasHandlerConnected", &AZ::Event::HasHandlerConnected) @@ -413,6 +414,7 @@ namespace AZ behaviorContext->Class>() ->Method("Disconnect", &AZ::EventHandler::Disconnect) + ->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::ExcludeFlags::ListOnly) ; } } diff --git a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp index a5c0287cfd..94f0dd974e 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp @@ -475,6 +475,11 @@ namespace continue; } + if (auto excludeFromPointer = AZ::FindAttribute(AZ::ScriptCanvasAttributes::Internal::ImplementedAsNodeGeneric, behaviorClass->m_attributes)) + { + continue; + } + if (auto excludeFromPointer = AZ::FindAttribute(AZ::Script::Attributes::ExcludeFrom, behaviorClass->m_attributes)) { AZ::Script::Attributes::ExcludeFlags excludeFlags{}; diff --git a/Gems/ScriptCanvas/Code/Editor/View/Windows/mainwindow.ui b/Gems/ScriptCanvas/Code/Editor/View/Windows/mainwindow.ui index 3b3043a4a0..c055f9f3ca 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Windows/mainwindow.ui +++ b/Gems/ScriptCanvas/Code/Editor/View/Windows/mainwindow.ui @@ -133,12 +133,12 @@ - + &Preferences diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/AbstractCodeModel.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/AbstractCodeModel.cpp index bc07d16a7e..356ee22ba3 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/AbstractCodeModel.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/AbstractCodeModel.cpp @@ -3764,6 +3764,12 @@ namespace ScriptCanvas nextSlot = onceResetSlot; } + if (!nextSlot) + { + AddError(ID.m_node->GetEntityId(), once, "Once node missing next slot, likely needs replacement"); + return; + } + ParseExecutionTreeBody(nextParse, *nextSlot); nextParse->MarkDebugEmptyStatement(); } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/ParsingUtilities.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/ParsingUtilities.cpp index 131209a521..0c92876e2c 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/ParsingUtilities.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/ParsingUtilities.cpp @@ -928,6 +928,7 @@ namespace ScriptCanvas { return execution->GetId().m_node && IsOnce(*execution->GetId().m_node) + && execution->GetId().m_slot && execution->GetId().m_slot->GetType() == CombinedSlotType::ExecutionIn; } @@ -938,7 +939,7 @@ namespace ScriptCanvas bool IsOnceReset(const Node& node, const Slot* slot) { - return slot = OnceProperty::GetResetSlot(&node); + return slot == OnceProperty::GetResetSlot(&node); } bool IsOperatorArithmetic(const ExecutionTreeConstPtr& execution)