2
0
Эх сурвалжийг харах

Migrate Nodeable and Grammar node registration to AutoGen (#10316)

* Add autogen registry support for nodeable (#375)

* Add autogen registry support for nodeable

Signed-off-by: onecent1101 <[email protected]>

* Update based on feedback

Signed-off-by: onecent1101 <[email protected]>

* name tweaking

Signed-off-by: onecent1101 <[email protected]>

* Add autogen support for grammar node (#386)

Signed-off-by: onecent1101 <[email protected]>

* Group all deprecated nodes together (#391)

* Group all deprecated nodes together

Signed-off-by: onecent1101 <[email protected]>

* Fix AR failure

Signed-off-by: onecent1101 <[email protected]>

* Refactor node registry library (#394)

* Refactor node registry library

Signed-off-by: onecent1101 <[email protected]>

* Fix AR failure

Signed-off-by: onecent1101 <[email protected]>

* Clean up template and xml by removing useless lines (#400)

* Clean up template and xml by removing useless lines

Signed-off-by: onecent1101 <[email protected]>

* Minor indentation adjust

Signed-off-by: onecent1101 <[email protected]>

* Add missing category infor

Signed-off-by: onecent1101 <[email protected]>

* Add back LibraryDefinition to support backward compatibility (#403)

* Add back LibraryDefinition to support backward compatibility

Signed-off-by: onecent1101 <[email protected]>

* Add warning message for deprecated component

Signed-off-by: onecent1101 <[email protected]>
Vincent Liu 3 жил өмнө
parent
commit
00d25c26f7
100 өөрчлөгдсөн 1008 нэмэгдсэн , 635 устгасан
  1. 5 1
      Gems/ScriptCanvas/Code/CMakeLists.txt
  2. 0 1
      Gems/ScriptCanvas/Code/Editor/Components/EditorGraph.cpp
  3. 0 5
      Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasTraceUtilities.h
  4. 97 13
      Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp
  5. 2 1
      Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.h
  6. 103 25
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasAutoGenRegistry.cpp
  7. 45 16
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasAutoGenRegistry.h
  8. 7 2
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasFunctionRegistry_Header.jinja
  9. 2 2
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasFunctionRegistry_Source.jinja
  10. 50 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasGrammarRegistry_Header.jinja
  11. 110 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasGrammarRegistry_Source.jinja
  12. 8 3
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasGrammar_Header.jinja
  13. 10 3
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasGrammar_Source.jinja
  14. 50 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasNodeableRegistry_Header.jinja
  15. 95 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasNodeableRegistry_Source.jinja
  16. 6 6
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasNodeable_Header.jinja
  17. 6 7
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasNodeable_Source.jinja
  18. 1 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NodeFunctionGeneric.h
  19. 6 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/ParsingUtilities.cpp
  20. 18 25
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodeables/BaseTimer.ScriptCanvasNodeable.xml
  21. 7 11
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.ScriptCanvasGrammar.xml
  22. 7 9
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/ExpressionNodeBase.ScriptCanvasGrammar.xml
  23. 8 9
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/StringFormatted.ScriptCanvasGrammar.xml
  24. 0 68
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Comparison.cpp
  25. 0 38
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Comparison.h
  26. 43 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/ComparisonLibrary.cpp
  27. 27 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/ComparisonLibrary.h
  28. 1 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/EqualTo.h
  29. 1 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Greater.h
  30. 1 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/GreaterEqual.h
  31. 1 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Less.h
  32. 1 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/LessEqual.h
  33. 1 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/NotEqualTo.h
  34. 0 3
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/AzEventHandler.ScriptCanvasGrammar.xml
  35. 94 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreLibrary.cpp
  36. 29 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreLibrary.h
  37. 0 141
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp
  38. 0 28
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.h
  39. 9 12
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.ScriptCanvasGrammar.xml
  40. 10 13
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.ScriptCanvasGrammar.xml
  41. 7 10
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.ScriptCanvasGrammar.xml
  42. 12 15
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionCallNode.ScriptCanvasGrammar.xml
  43. 9 11
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.ScriptCanvasGrammar.xml
  44. 4 8
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/GetVariable.ScriptCanvasGrammar.xml
  45. 11 13
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Nodeling.ScriptCanvasGrammar.xml
  46. 10 12
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.ScriptCanvasGrammar.xml
  47. 0 28
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.ScriptCanvasNodeable.xml
  48. 9 10
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ScriptEventBase.ScriptCanvasGrammar.xml
  49. 8 10
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SendScriptEvent.ScriptCanvasGrammar.xml
  50. 5 8
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SetVariable.ScriptCanvasGrammar.xml
  51. 7 10
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Start.ScriptCanvasGrammar.xml
  52. 27 34
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/DeprecatedNodeLibrary.cpp
  53. 13 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/DeprecatedNodeLibrary.h
  54. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Entity/EntityNodes.h
  55. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Entity/RotateMethod.cpp
  56. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Entity/RotateMethod.h
  57. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Indexer.ScriptCanvasGrammar.xml
  58. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Indexer.h
  59. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Multiplexer.ScriptCanvasGrammar.xml
  60. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Multiplexer.h
  61. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Sequencer.ScriptCanvasGrammar.xml
  62. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Sequencer.cpp
  63. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Sequencer.h
  64. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/AABBNodes.h
  65. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/CRCNodes.h
  66. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/ColorNodes.h
  67. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Divide.h
  68. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/MathGenerics.h
  69. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/MathRandom.h
  70. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Matrix3x3Nodes.h
  71. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Matrix4x4Nodes.h
  72. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Multiply.h
  73. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/OBBNodes.h
  74. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/PlaneNodes.h
  75. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/RotationNodes.h
  76. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Subtract.h
  77. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Sum.h
  78. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/TransformNodes.h
  79. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Vector2Nodes.h
  80. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Vector3Nodes.h
  81. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Vector4Nodes.h
  82. 3 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/Operator.ScriptCanvasGrammar.xml
  83. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/Operator.cpp
  84. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/Operator.h
  85. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorAt.ScriptCanvasGrammar.xml
  86. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorAt.cpp
  87. 2 2
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorAt.h
  88. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorBack.ScriptCanvasGrammar.xml
  89. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorBack.cpp
  90. 2 2
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorBack.h
  91. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorClear.ScriptCanvasGrammar.xml
  92. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorClear.cpp
  93. 2 2
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorClear.h
  94. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorEmpty.ScriptCanvasGrammar.xml
  95. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorEmpty.cpp
  96. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorEmpty.h
  97. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorErase.ScriptCanvasGrammar.xml
  98. 0 0
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorErase.cpp
  99. 2 2
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorErase.h
  100. 1 1
      Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorFront.ScriptCanvasGrammar.xml

+ 5 - 1
Gems/ScriptCanvas/Code/CMakeLists.txt

@@ -92,18 +92,22 @@ ly_add_target(
         PUBLIC
             Gem::ScriptEvents.Static
             Gem::ExpressionEvaluation.Static
+            Gem::ScriptCanvas.Extensions
         PRIVATE
             AZ::AzCore
             AZ::AzFramework
             Gem::ScriptCanvasDebugger
-            Gem::ScriptCanvas.Extensions
     AUTOGEN_RULES
         *.ScriptCanvasFunction.xml,ScriptCanvasFunctionRegistry_Header.jinja,AutoGenFunctionRegistry.generated.h
         *.ScriptCanvasFunction.xml,ScriptCanvasFunctionRegistry_Source.jinja,AutoGenFunctionRegistry.generated.cpp
         *.ScriptCanvasGrammar.xml,ScriptCanvasGrammar_Header.jinja,$path/$fileprefix.generated.h
         *.ScriptCanvasGrammar.xml,ScriptCanvasGrammar_Source.jinja,$path/$fileprefix.generated.cpp
+        *.ScriptCanvasGrammar.xml,ScriptCanvasGrammarRegistry_Header.jinja,AutoGenGrammarRegistry.generated.h
+        *.ScriptCanvasGrammar.xml,ScriptCanvasGrammarRegistry_Source.jinja,AutoGenGrammarRegistry.generated.cpp
         *.ScriptCanvasNodeable.xml,ScriptCanvasNodeable_Header.jinja,$path/$fileprefix.generated.h
         *.ScriptCanvasNodeable.xml,ScriptCanvasNodeable_Source.jinja,$path/$fileprefix.generated.cpp
+        *.ScriptCanvasNodeable.xml,ScriptCanvasNodeableRegistry_Header.jinja,AutoGenNodeableRegistry.generated.h
+        *.ScriptCanvasNodeable.xml,ScriptCanvasNodeableRegistry_Source.jinja,AutoGenNodeableRegistry.generated.cpp
     RUNTIME_DEPENDENCIES
         Gem::ScriptCanvasDebugger
 )

+ 0 - 1
Gems/ScriptCanvas/Code/Editor/Components/EditorGraph.cpp

@@ -83,7 +83,6 @@ AZ_POP_DISABLE_WARNING
 #include <ScriptCanvas/Core/Connection.h>
 #include <ScriptCanvas/Utils/NodeUtils.h>
 #include <ScriptCanvas/Variable/VariableBus.h>
-#include <ScriptCanvas/Libraries/UnitTesting/UnitTestingLibrary.h>
 
     AZ_CVAR(bool, g_disableDeprecatedNodeUpdates, false, {}, AZ::ConsoleFunctorFlags::Null,
         "Disables automatic update attempts of deprecated nodes, so that graphs that require and update can be viewed in their original form");

+ 0 - 5
Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasTraceUtilities.h

@@ -20,11 +20,6 @@
 #include <ScriptCanvas/Core/Graph.h>
 #include <ScriptCanvas/Core/ScriptCanvasBus.h>
 #include <ScriptCanvas/Data/Data.h>
-#include <ScriptCanvas/Libraries/Comparison/Comparison.h>
-#include <ScriptCanvas/Libraries/Core/BinaryOperator.h>
-#include <ScriptCanvas/Libraries/Core/CoreNodes.h>
-#include <ScriptCanvas/Libraries/Libraries.h>
-#include <ScriptCanvas/Libraries/Logic/Logic.h>
 #include <ScriptCanvas/Variable/VariableBus.h>
 #include <ScriptCanvas/Assets/ScriptCanvasFileHandling.h>
 

+ 97 - 13
Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp

@@ -242,16 +242,54 @@ namespace
         return skipBuses;
     }
 
-    //! Register all nodes populated into the ScriptCanvas NodeRegistry for each class derived
-    //! from the ScriptCanvas LibraryDefinition class
+    //! Register all nodes populated into the ScriptCanvas NodeRegistry
     void PopulateScriptCanvasDerivedNodes(ScriptCanvasEditor::NodePaletteModel& nodePaletteModel,
         const AZ::SerializeContext& serializeContext)
     {
         AZ_PROFILE_SCOPE(NodePaletteModel, "PopulateScriptCanvasDerivedNodes");
 
+        nodePaletteModel.RegisterDefaultCateogryInformation();
+
+        ScriptCanvas::NodeRegistry* registry = ScriptCanvas::NodeRegistry::GetInstance();
+        for (auto nodeId : registry->m_nodes)
+        {
+            if (HasExcludeFromNodeListAttribute(&serializeContext, nodeId))
+            {
+                continue;
+            }
+
+            // Pass in the associated class data so we can do more intensive lookups?
+            const AZ::SerializeContext::ClassData* nodeClassData = serializeContext.FindClassData(nodeId);
+
+            if (nodeClassData == nullptr)
+            {
+                continue;
+            }
+
+            // Skip over some of our more dynamic nodes that we want to populate using different means
+            else if (nodeClassData->m_azRtti && nodeClassData->m_azRtti->IsTypeOf<ScriptCanvas::Nodes::Core::GetVariableNode>())
+            {
+                continue;
+            }
+            else if (nodeClassData->m_azRtti && nodeClassData->m_azRtti->IsTypeOf<ScriptCanvas::Nodes::Core::SetVariableNode>())
+            {
+                continue;
+            }
+            else
+            {
+                nodePaletteModel.RegisterCustomNode(nodeClassData);
+            }
+        }
+    }
+
+    void PopulateScriptCanvasDerivedNodesDeprecated(
+        ScriptCanvasEditor::NodePaletteModel& nodePaletteModel, const AZ::SerializeContext& serializeContext)
+    {
+        AZ_PROFILE_SCOPE(NodePaletteModel, "PopulateScriptCanvasDerivedNodes");
+
         // Get all the types.
-        auto EnumerateLibraryDefintionNodes = [&nodePaletteModel, &serializeContext](
-            const AZ::SerializeContext::ClassData* classData, const AZ::Uuid&) -> bool
+        auto EnumerateLibraryDefintionNodes = [&nodePaletteModel,
+                                               &serializeContext](const AZ::SerializeContext::ClassData* classData, const AZ::Uuid&) -> bool
         {
             ScriptCanvasEditor::CategoryInformation categoryInfo;
 
@@ -272,7 +310,8 @@ namespace
 
                     if (auto categoryStyleAttribute = editorElementData->FindAttribute(AZ::Edit::Attributes::CategoryStyle))
                     {
-                        if (auto categoryAttributeData = azdynamic_cast<const AZ::Edit::AttributeData<const char*>*>(categoryStyleAttribute))
+                        if (auto categoryAttributeData =
+                                azdynamic_cast<const AZ::Edit::AttributeData<const char*>*>(categoryStyleAttribute))
                         {
                             categoryInfo.m_styleOverride = categoryAttributeData->Get(nullptr);
                         }
@@ -317,7 +356,7 @@ namespace
                 }
                 else
                 {
-                    nodePaletteModel.RegisterCustomNode(categoryPath, node.first, node.second, nodeClassData);
+                    nodePaletteModel.RegisterCustomNode(nodeClassData, categoryPath);
                 }
             }
 
@@ -762,10 +801,12 @@ namespace
             return;
         }
 
-        // Populates the NodePalette with each ScriptCanvas LibraryDefinition derived class
-        // static InitNodeRegistry() function
+        // Populates the NodePalette in ScriptCanvas NodeRegistry
         PopulateScriptCanvasDerivedNodes(nodePaletteModel, *serializeContext);
 
+        // Deprecated, populates the NodePalette in deprecated ScriptCanvas NodeRegistry
+        PopulateScriptCanvasDerivedNodesDeprecated(nodePaletteModel, *serializeContext);
+
         // Populates the VariablePalette with type registered with the ScriptCanvas DataRegistry
         PopulateVariablePalette();
 
@@ -882,11 +923,10 @@ namespace ScriptCanvasEditor
         NodePaletteModelNotificationBus::Event(m_paletteId, &NodePaletteModelNotifications::OnAssetModelRepopulated);
     }
 
-    void NodePaletteModel::RegisterCustomNode(AZStd::string_view categoryPath, const AZ::Uuid& uuid, AZStd::string_view name, const AZ::SerializeContext::ClassData* classData)
+    void NodePaletteModel::RegisterCustomNode(const AZ::SerializeContext::ClassData* classData, const AZStd::string& categoryPath)
     {
-
         AZ_PROFILE_SCOPE(NodePaletteModel, "NodePaletteModel::RegisterCustomNode");
-        ScriptCanvas::NodeTypeIdentifier nodeIdentifier = ScriptCanvas::NodeUtils::ConstructCustomNodeIdentifier(uuid);
+        ScriptCanvas::NodeTypeIdentifier nodeIdentifier = ScriptCanvas::NodeUtils::ConstructCustomNodeIdentifier(classData->m_typeId);
 
         auto mapIter = m_registeredNodes.find(nodeIdentifier);
 
@@ -895,8 +935,8 @@ namespace ScriptCanvasEditor
             CustomNodeModelInformation* customNodeInformation = aznew CustomNodeModelInformation();
 
             customNodeInformation->m_nodeIdentifier = nodeIdentifier;
-            customNodeInformation->m_typeId = uuid;
-            customNodeInformation->m_displayName = name;
+            customNodeInformation->m_typeId = classData->m_typeId;
+            customNodeInformation->m_displayName = classData->m_name;
             customNodeInformation->m_categoryPath = categoryPath;
 
             bool isDeprecated(false);
@@ -1268,6 +1308,50 @@ namespace ScriptCanvasEditor
         return identifiers;
     }
 
+    void NodePaletteModel::RegisterDefaultCateogryInformation()
+    {
+        {
+            CategoryInformation categoryInformation;
+            categoryInformation.m_paletteOverride = "ComparisonNodeTitlePalette";
+            m_categoryInformation["Math/Comparisions"] = categoryInformation;
+        }
+        {
+            CategoryInformation categoryInformation;
+            categoryInformation.m_paletteOverride = "CoreNodeTitlePalette";
+            m_categoryInformation["Core"] = categoryInformation;
+        }
+        {
+            CategoryInformation categoryInformation;
+            categoryInformation.m_paletteOverride = "LogicNodeTitlePalette";
+            m_categoryInformation["Logic"] = categoryInformation;
+        }
+        {
+            CategoryInformation categoryInformation;
+            categoryInformation.m_paletteOverride = "MathNodeTitlePalette";
+            m_categoryInformation["Math"] = categoryInformation;
+        }
+        {
+            CategoryInformation categoryInformation;
+            categoryInformation.m_paletteOverride = "OperatorsNodeTitlePalette";
+            m_categoryInformation["Operators"] = categoryInformation;
+        }
+        {
+            CategoryInformation categoryInformation;
+            categoryInformation.m_paletteOverride = "StringNodeTitlePalette";
+            m_categoryInformation["String"] = categoryInformation;
+        }
+        {
+            CategoryInformation categoryInformation;
+            categoryInformation.m_paletteOverride = "TimeNodeTitlePalette";
+            m_categoryInformation["Timing"] = categoryInformation;
+        }
+        {
+            CategoryInformation categoryInformation;
+            categoryInformation.m_paletteOverride = "TestingNodeTitlePalette";
+            m_categoryInformation["Utilities/Unit Testing"] = categoryInformation;
+        }
+    }
+
     void NodePaletteModel::RegisterCategoryInformation(const AZStd::string& category, const CategoryInformation& categoryInformation)
     {
         auto categoryIter = m_categoryInformation.find(category);

+ 2 - 1
Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.h

@@ -77,7 +77,7 @@ namespace ScriptCanvasEditor
 
         void RepopulateModel();
 
-        void RegisterCustomNode(AZStd::string_view categoryPath, const AZ::Uuid& uuid, AZStd::string_view name, const AZ::SerializeContext::ClassData* classData);
+        void RegisterCustomNode(const AZ::SerializeContext::ClassData* classData, const AZStd::string& categoryPath = "Nodes");
         void RegisterClassNode(const AZStd::string& categoryPath, const AZStd::string& methodClass, const AZStd::string& methodName, const AZ::BehaviorMethod* behaviorMethod, const AZ::BehaviorContext* behaviorContext, ScriptCanvas::PropertyStatus propertyStatus, bool isOverload);
         void RegisterGlobalMethodNode(const AZ::BehaviorContext& behaviorContext, const AZ::BehaviorMethod& behaviorMethod);
         void RegisterGlobalConstant(const AZ::BehaviorContext& behaviorContext, const AZ::BehaviorProperty* behaviorProperty, const AZ::BehaviorMethod& behaviorMethod);
@@ -89,6 +89,7 @@ namespace ScriptCanvasEditor
         // Asset Based Registrations
         AZStd::vector<ScriptCanvas::NodeTypeIdentifier> RegisterScriptEvent(ScriptEvents::ScriptEventsAsset* scriptEventAsset);
 
+        void RegisterDefaultCateogryInformation();
         void RegisterCategoryInformation(const AZStd::string& category, const CategoryInformation& categoryInformation);
         const CategoryInformation* FindCategoryInformation(const AZStd::string& categoryStyle) const;
         const CategoryInformation* FindBestCategoryInformation(AZStd::string_view categoryView) const;

+ 103 - 25
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasAutoGenRegistry.cpp

@@ -8,54 +8,116 @@
 
 #include <AzCore/RTTI/ReflectContext.h>
 #include <AzCore/std/string/fixed_string.h>
-#include <AzCore/std/string/string.h>
+#include <ScriptCanvas/Libraries/ScriptCanvasNodeRegistry.h>
+
 #include "ScriptCanvasAutoGenRegistry.h"
 
 namespace ScriptCanvas
 {
-    static constexpr const char ScriptCanvasAutoGenFunctionSuffix[] = "FunctionRegistry";
-    static constexpr const char ScriptCanvasAutoGenRegistryName[] = "AutoGenRegistry";
+    static constexpr const char ScriptCanvasAutoGenFunctionRegistrySuffix[] = "FunctionRegistry";
+    static constexpr const char ScriptCanvasAutoGenNodeableRegistrySuffix[] = "NodeableRegistry";
+    static constexpr const char ScriptCanvasAutoGenGrammarRegistrySuffix[] = "GrammarRegistry";
+    static constexpr const char ScriptCanvasAutoGenRegistryName[] = "AutoGenRegistryManager";
     static constexpr int MaxMessageLength = 4096;
-    static constexpr const char ScriptCanvasAutoGenFunctionRegistrationWarningMessage[] = "[Warning] Functions name %s is occupied already, ignore functions registration.\n";
+    static constexpr const char ScriptCanvasAutoGenRegistrationWarningMessage[] = "[Warning] Registry name %s is occupied already, ignore AutoGen registry registration.\n";
 
-    AutoGenRegistry::~AutoGenRegistry()
+    AutoGenRegistryManager::~AutoGenRegistryManager()
     {
-        m_functions.clear();
+        m_registries.clear();
     }
 
-    AutoGenRegistry* AutoGenRegistry::GetInstance()
+    AutoGenRegistryManager* AutoGenRegistryManager::GetInstance()
     {
         // Use static object so each module will keep its own registry collection
-        static AutoGenRegistry s_autogenRegistry;
+        static AutoGenRegistryManager s_autogenRegistry;
 
         return &s_autogenRegistry;
     }
 
-    void AutoGenRegistry::Reflect(AZ::ReflectContext* context)
+    AZStd::vector<AZStd::string> AutoGenRegistryManager::GetRegistryNames(const char* registryName)
+    {
+        AZStd::vector<AZStd::string> result;
+        result.push_back(AZStd::string::format("%s%s", registryName, ScriptCanvasAutoGenFunctionRegistrySuffix).c_str());
+        result.push_back(AZStd::string::format("%s%s", registryName, ScriptCanvasAutoGenNodeableRegistrySuffix).c_str());
+        result.push_back(AZStd::string::format("%s%s", registryName, ScriptCanvasAutoGenGrammarRegistrySuffix).c_str());
+        return result;
+    }
+
+    void AutoGenRegistryManager::Init()
+    {
+        auto registry = GetInstance();
+        auto nodeRegistry = NodeRegistry::GetInstance();
+        if (registry && nodeRegistry)
+        {
+            for (auto& iter : registry->m_registries)
+            {
+                if (iter.second)
+                {
+                    iter.second->Init(nodeRegistry);
+                }
+            }
+        }
+    }
+
+    void AutoGenRegistryManager::Init(const char* registryName)
     {
-        ReflectFunctions(context);
-        // Expand here to add more reflections
-        // ...
+        auto registry = GetInstance();
+        auto nodeRegistry = NodeRegistry::GetInstance();
+        if (registry && nodeRegistry)
+        {
+            auto registryNames = registry->GetRegistryNames(registryName);
+            for (auto name : registryNames)
+            {
+                auto registryIter = registry->m_registries.find(name.c_str());
+                if (registryIter != registry->m_registries.end())
+                {
+                    registryIter->second->Init(nodeRegistry);
+                }
+            }
+        }
     }
 
-    void AutoGenRegistry::Reflect(AZ::ReflectContext* context, const char* registryName)
+    AZStd::vector<AZ::ComponentDescriptor*> AutoGenRegistryManager::GetComponentDescriptors()
     {
+        AZStd::vector<AZ::ComponentDescriptor*> descriptors;
         if (auto registry = GetInstance())
         {
-            AZStd::string functionRegistry = AZStd::string::format("%s%s", registryName, ScriptCanvasAutoGenFunctionSuffix);
-            auto functionIter = registry->m_functions.find(functionRegistry.c_str());
-            if (functionIter != registry->m_functions.end())
+            for (auto& iter : registry->m_registries)
             {
-                functionIter->second->Reflect(context);
+                if (iter.second)
+                {
+                    auto nodeableDescriptors = iter.second->GetComponentDescriptors();
+                    descriptors.insert(descriptors.end(), nodeableDescriptors.begin(), nodeableDescriptors.end());
+                }
+            }
+        }
+        return descriptors;
+    }
+
+    AZStd::vector<AZ::ComponentDescriptor*> AutoGenRegistryManager::GetComponentDescriptors(const char* registryName)
+    {
+        AZStd::vector<AZ::ComponentDescriptor*> descriptors;
+        if (auto registry = GetInstance())
+        {
+            auto registryNames = registry->GetRegistryNames(registryName);
+            for (auto name : registryNames)
+            {
+                auto registryIter = registry->m_registries.find(name.c_str());
+                if (registryIter != registry->m_registries.end())
+                {
+                    auto registryDescriptors = registryIter->second->GetComponentDescriptors();
+                    descriptors.insert(descriptors.end(), registryDescriptors.begin(), registryDescriptors.end());
+                }
             }
         }
+        return descriptors;
     }
 
-    void AutoGenRegistry::ReflectFunctions(AZ::ReflectContext* context)
+    void AutoGenRegistryManager::Reflect(AZ::ReflectContext* context)
     {
         if (auto registry = GetInstance())
         {
-            for (auto& iter : registry->m_functions)
+            for (auto& iter : registry->m_registries)
             {
                 if (iter.second)
                 {
@@ -65,22 +127,38 @@ namespace ScriptCanvas
         }
     }
 
-    void AutoGenRegistry::RegisterFunction(const char* functionName, IScriptCanvasFunctionRegistry* registry)
+    void AutoGenRegistryManager::Reflect(AZ::ReflectContext* context, const char* registryName)
+    {
+        if (auto registry = GetInstance())
+        {
+            auto registryNames = registry->GetRegistryNames(registryName);
+            for (auto name : registryNames)
+            {
+                auto registryIter = registry->m_registries.find(name.c_str());
+                if (registryIter != registry->m_registries.end())
+                {
+                    registryIter->second->Reflect(context);
+                }
+            }
+        }
+    }
+
+    void AutoGenRegistryManager::RegisterRegistry(const char* registryName, ScriptCanvasRegistry* registry)
     {
-        if (m_functions.find(functionName) != m_functions.end())
+        if (m_registries.find(registryName) != m_registries.end())
         {
             AZ::Debug::Platform::OutputToDebugger(
                 ScriptCanvasAutoGenRegistryName,
-                AZStd::fixed_string<MaxMessageLength>::format(ScriptCanvasAutoGenFunctionRegistrationWarningMessage, functionName).c_str());
+                AZStd::fixed_string<MaxMessageLength>::format(ScriptCanvasAutoGenRegistrationWarningMessage, registryName).c_str());
         }
         else if (registry != nullptr)
         {
-            m_functions.emplace(functionName, registry);
+            m_registries.emplace(registryName, registry);
         }
     }
 
-    void AutoGenRegistry::UnregisterFunction(const char* functionName)
+    void AutoGenRegistryManager::UnregisterRegistry(const char* registryName)
     {
-        m_functions.erase(functionName);
+        m_registries.erase(registryName);
     }
 } // namespace ScriptCanvas

+ 45 - 16
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasAutoGenRegistry.h

@@ -11,52 +11,81 @@
 #include <string>
 #include <unordered_map>
 
+#include <AzCore/std/containers/vector.h>
+#include <AzCore/std/string/string.h>
+
 namespace AZ
 {
     class ReflectContext;
+    class ComponentDescriptor;
 }
 
 //! Macros to self-register AutoGen node into ScriptCanvas
 #define REGISTER_SCRIPTCANVAS_AUTOGEN_FUNCTION(LIBRARY)\
     static ScriptCanvas::LIBRARY##FunctionRegistry s_AutoGenFunctionRegistry;
+#define REGISTER_SCRIPTCANVAS_AUTOGEN_NODEABLE(LIBRARY)\
+    static ScriptCanvas::LIBRARY##NodeableRegistry s_AutoGenNodeableRegistry;
+#define REGISTER_SCRIPTCANVAS_AUTOGEN_GRAMMAR(LIBRARY)\
+    static ScriptCanvas::LIBRARY##GrammarRegistry s_AutoGenGrammarRegistry;
 
 //! AutoGen registry util macros
+#define INIT_SCRIPTCANVAS_AUTOGEN(LIBRARY)\
+    ScriptCanvas::AutoGenRegistryManager::Init(#LIBRARY);
 #define REFLECT_SCRIPTCANVAS_AUTOGEN(LIBRARY, CONTEXT)\
-    ScriptCanvas::AutoGenRegistry::Reflect(CONTEXT, #LIBRARY);
+    ScriptCanvas::AutoGenRegistryManager::Reflect(CONTEXT, #LIBRARY);
+#define GET_SCRIPTCANVAS_AUTOGEN_COMPONENT_DESCRIPTORS(LIBRARY)\
+    ScriptCanvas::AutoGenRegistryManager::GetComponentDescriptors(#LIBRARY)
 
 namespace ScriptCanvas
 {
-    class IScriptCanvasFunctionRegistry
+    struct NodeRegistry;
+
+    class ScriptCanvasRegistry
     {
     public:
+        virtual void Init(NodeRegistry* nodeRegistry) = 0;
         virtual void Reflect(AZ::ReflectContext* context) = 0;
+        virtual AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors() = 0;
     };
 
-    //! AutoGenRegistry
-    //! The registry contains all autogen functions which will be registered
+    //! AutoGenRegistryManager
+    //! The registry manager contains all autogen functions, nodeables and grammars metadata which will be registered
     //! for ScriptCanvas
-    class AutoGenRegistry
+    class AutoGenRegistryManager
     {
     public:
-        AutoGenRegistry() = default;
-        ~AutoGenRegistry();
+        AutoGenRegistryManager() = default;
+        ~AutoGenRegistryManager();
+
+        static AutoGenRegistryManager* GetInstance();
+
+        //! Init all AutoGen registries
+        static void Init();
 
-        static AutoGenRegistry* GetInstance();
+        //! Init specified AutoGen registry by given name
+        static void Init(const char* registryName);
 
-        //! Reflect all AutoGen regiestries
+        //! Get component descriptors from all AutoGen registries
+        static AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors();
+
+        //! Get component descriptors from specified AutoGen registries
+        static AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors(const char* registryName);
+
+        //! Reflect all AutoGen registries
         static void Reflect(AZ::ReflectContext* context);
 
         //! Reflect specified AutoGen registry by given name
         static void Reflect(AZ::ReflectContext* context, const char* registryName);
 
-        //! Register function registry with its name
-        void RegisterFunction(const char* functionName, IScriptCanvasFunctionRegistry* registry);
+        //! Get all expected autogen registry names
+        AZStd::vector<AZStd::string> GetRegistryNames(const char* registryName);
+
+        //! Register autogen registry with its name
+        void RegisterRegistry(const char* registryName, ScriptCanvasRegistry* registry);
 
-        //! Unregister function registry by using its name
-        void UnregisterFunction(const char* functionName);
+        //! Unregister autogen function registry by using its name
+        void UnregisterRegistry(const char* registryName);
 
-        std::unordered_map<std::string, IScriptCanvasFunctionRegistry*> m_functions;
-    private:
-        static void ReflectFunctions(AZ::ReflectContext* context);
+        std::unordered_map<std::string, ScriptCanvasRegistry*> m_registries;
     };
 } // namespace ScriptCanvas

+ 7 - 2
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasFunctionRegistry_Header.jinja

@@ -23,21 +23,26 @@ SPDX-License-Identifier: Apache-2.0 OR MIT
 namespace AZ
 {
     class ReflectContext;
+    class ComponentDescriptor;
 }
 
 namespace ScriptCanvas
 {
+    struct NodeRegistry;
+
     //! {{autogenTargetName}}FunctionRegistry
     //! AutoGen registry to register function required metadata into system
     class {{autogenTargetName}}FunctionRegistry
-        : public IScriptCanvasFunctionRegistry
+        : public ScriptCanvasRegistry
     {
     public:
         {{autogenTargetName}}FunctionRegistry();
         virtual ~{{autogenTargetName}}FunctionRegistry();
  
-        //! Reflect function metadata into BehaviorContext
+        //! ScriptCanvasRegistry
         void Reflect(AZ::ReflectContext* context) override;
+        void Init([[maybe_unused]] NodeRegistry* nodeRegistry) override {}
+        AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors() override { return {}; }
 
         //! Get AutoGen registry name
         static const char* GetRegistryName();

+ 2 - 2
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasFunctionRegistry_Source.jinja

@@ -67,12 +67,12 @@ namespace ScriptCanvas
 {
     {{autogenTargetName}}FunctionRegistry::{{autogenTargetName}}FunctionRegistry()
     {
-        ScriptCanvas::AutoGenRegistry::GetInstance()->RegisterFunction(GetRegistryName(), this);
+        ScriptCanvas::AutoGenRegistryManager::GetInstance()->RegisterRegistry(GetRegistryName(), this);
     }
 
     {{autogenTargetName}}FunctionRegistry::~{{autogenTargetName}}FunctionRegistry()
     {
-        ScriptCanvas::AutoGenRegistry::GetInstance()->UnregisterFunction(GetRegistryName());
+        ScriptCanvas::AutoGenRegistryManager::GetInstance()->UnregisterRegistry(GetRegistryName());
     }
 
     const char* {{autogenTargetName}}FunctionRegistry::GetRegistryName() {

+ 50 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasGrammarRegistry_Header.jinja

@@ -0,0 +1,50 @@
+{#
+Copyright (c) Contributors to the Open 3D Engine Project.
+For complete copyright and license terms please see the LICENSE at the root of this distribution.
+
+SPDX-License-Identifier: Apache-2.0 OR MIT
+#}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// This code was produced with AzAutoGen, any modifications made will not be preserved.
+// If you need to modify this code see:
+//
+// Gems\ScriptCanvas\Code\Include\ScriptCanvas\AutoGen\ScriptCanvasGrammarRegistry_Header.jinja
+//
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+{% import 'ScriptCanvas_Macros.jinja' as macros %}
+
+#pragma once
+
+#include <ScriptCanvas/AutoGen/ScriptCanvasAutoGenRegistry.h>
+
+namespace AZ
+{
+    class ReflectContext;
+    class ComponentDescriptor;
+}
+
+namespace ScriptCanvas
+{
+    struct NodeRegistry;
+
+    //! {{autogenTargetName}}GrammarRegistry
+    //! AutoGen registry to register grammar required metadata into system
+    class {{autogenTargetName}}GrammarRegistry
+        : public ScriptCanvasRegistry
+    {
+    public:
+        {{autogenTargetName}}GrammarRegistry();
+        virtual ~{{autogenTargetName}}GrammarRegistry();
+ 
+        //! IScriptCanvasRegistry
+        void Init(NodeRegistry* nodeRegistry) override;
+        void Reflect(AZ::ReflectContext* context) override;
+        AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors() override;
+
+        //! Get AutoGen registry name
+        static const char* GetRegistryName();
+    };
+}

+ 110 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasGrammarRegistry_Source.jinja

@@ -0,0 +1,110 @@
+{#
+Copyright (c) Contributors to the Open 3D Engine Project.
+For complete copyright and license terms please see the LICENSE at the root of this distribution.
+
+SPDX-License-Identifier: Apache-2.0 OR MIT
+#}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// This code was produced with AzAutoGen, any modifications made will not be preserved.
+// If you need to modify this code see:
+//
+// Gems\ScriptCanvas\Code\Include\ScriptCanvas\AutoGen\ScriptCanvasGrammarRegistry_Source.jinja
+//
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+{% import 'ScriptCanvas_Macros.jinja' as macros %}
+
+#include "{{filename}}.h"
+#include <AzCore/RTTI/BehaviorContext.h>
+#include <AzCore/Component/Component.h>
+#include <ScriptCanvas/Libraries/ScriptCanvasNodeRegistry.h>
+{% for ScriptCanvas in dataFiles %}
+#include <{{ ScriptCanvas.attrib['Include'] }}>
+{% endfor %}
+
+namespace ScriptCanvas
+{
+    {{autogenTargetName}}GrammarRegistry::{{autogenTargetName}}GrammarRegistry()
+    {
+        ScriptCanvas::AutoGenRegistryManager::GetInstance()->RegisterRegistry(GetRegistryName(), this);
+    }
+
+    {{autogenTargetName}}GrammarRegistry::~{{autogenTargetName}}GrammarRegistry()
+    {
+        ScriptCanvas::AutoGenRegistryManager::GetInstance()->UnregisterRegistry(GetRegistryName());
+    }
+
+    const char* {{autogenTargetName}}GrammarRegistry::GetRegistryName() {
+        return "{{autogenTargetName}}GrammarRegistry";
+    }
+
+    void {{autogenTargetName}}GrammarRegistry::Init(NodeRegistry* nodeRegistry)
+    {
+        if (nodeRegistry)
+        {
+{% for ScriptCanvas in dataFiles %}
+{%     for Class in ScriptCanvas %}
+{%         set namespaceName = '::' %}
+{%         if Class.attrib['Namespace'] is defined and Class.attrib['Namespace'] != 'None' %}
+{%             set namespaceName = Class.attrib['Namespace'] + '::' %}
+{%         endif %}
+{%         if Class.attrib['BaseClass'] is not defined or Class.attrib['BaseClass'].lower() == "false" %}
+{%         if "UnitTesting" in Class.attrib['QualifiedName'] %}
+#ifndef _RELEASE
+{%         endif %}
+            nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<{{namespaceName}}{{Class.attrib['QualifiedName']}}>::Uuid());
+{%         if "UnitTesting" in Class.attrib['QualifiedName'] %}
+#endif
+{%         endif %}
+{%         endif %}
+{%     endfor %}
+{% endfor %}
+        }
+    }
+
+    void {{autogenTargetName}}GrammarRegistry::Reflect([[maybe_unused]] AZ::ReflectContext* context)
+    {
+{% for ScriptCanvas in dataFiles %}
+{%     for Class in ScriptCanvas %}
+{%         set namespaceName = '::' %}
+{%         if Class.attrib['Namespace'] is defined and Class.attrib['Namespace'] != 'None' %}
+{%             set namespaceName = Class.attrib['Namespace'] + '::' %}
+{%         endif %}
+{%         if Class.attrib['BaseClass'] is defined and Class.attrib['BaseClass'].lower() == "true" %}
+{%         if "UnitTesting" in Class.attrib['QualifiedName'] %}
+#ifndef _RELEASE
+{%         endif %}
+        {{namespaceName}}{{Class.attrib['QualifiedName']}}::Reflect(context);
+{%         if "UnitTesting" in Class.attrib['QualifiedName'] %}
+#endif
+{%         endif %}
+{%         endif %}
+{%     endfor %}
+{% endfor %}
+    }
+
+    AZStd::vector<AZ::ComponentDescriptor*> {{autogenTargetName}}GrammarRegistry::GetComponentDescriptors()
+    {
+        return AZStd::vector<AZ::ComponentDescriptor*>({
+{% for ScriptCanvas in dataFiles %}
+{%     for Class in ScriptCanvas %}
+{%         set namespaceName = '::' %}
+{%         if Class.attrib['Namespace'] is defined and Class.attrib['Namespace'] != 'None' %}
+{%             set namespaceName = Class.attrib['Namespace'] + '::' %}
+{%         endif %}
+{%         if Class.attrib['BaseClass'] is not defined or Class.attrib['BaseClass'].lower() == "false" %}
+{%         if "UnitTesting" in Class.attrib['QualifiedName'] %}
+#ifndef _RELEASE
+{%         endif %}
+            {{namespaceName}}{{Class.attrib['QualifiedName']}}::CreateDescriptor(),
+{%         endif %}
+{%         if "UnitTesting" in Class.attrib['QualifiedName'] %}
+#endif
+{%         endif %}
+{%     endfor %}
+{% endfor %}
+        });
+    }
+}

+ 8 - 3
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasGrammar_Header.jinja

@@ -43,8 +43,13 @@ SPDX-License-Identifier: Apache-2.0 OR MIT
 namespace {{attribute_Namespace}}
 {
 {% endif %}
-{% set className = Class.attrib['Name'] %}
-{% set baseClasses = ", ".join(Class.attrib['Base'].split(';')) if Class.attrib['Base'] is string else "ScriptCanvas::Node" %}
+
+{%- set className = Class.attrib['Name'] %}
+
+{%- set baseClass = "ScriptCanvas::Node" %}
+{% if Class.attrib['Base'] is defined and Class.attrib['Base'] %}
+{%    set baseClass = Class.attrib['Base'] %}
+{% endif %}
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ////
@@ -64,7 +69,7 @@ namespace {{attribute_Namespace}}
 // You must #include the generated header into the source header
 #define SCRIPTCANVAS_NODE_{{ className }} \
 public: \
-    AZ_COMPONENT({{ className }}, "{{ classUuid }}", {{ baseClasses }} ); \
+    AZ_COMPONENT({{ className }}, "{{ classUuid }}", {{ baseClass }} ); \
     static void Reflect(AZ::ReflectContext* reflection); \
     void ConfigureSlots() override; \
     bool RequiresDynamicSlotOrdering() const override; \

+ 10 - 3
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasGrammar_Source.jinja

@@ -29,9 +29,14 @@ SPDX-License-Identifier: Apache-2.0 OR MIT
 #include "{{ xml.attrib['Include'] }}"
 
 {%     for Class in xml.iter('Class') %}
-{% set baseClass = Class.attrib['Base'].split(';')[0] if Class.attrib['Base'] is string else "ScriptCanvas::Node" %}
-{% set attribute_Namespace = undefined %}
-{%- if Class.attrib['Namespace'] is defined %}
+
+{%- set baseClass = "ScriptCanvas::Node" %}
+{% if Class.attrib['Base'] is defined and Class.attrib['Base'] %}
+{%    set baseClass = Class.attrib['Base'] %}
+{% endif %}
+
+{%- set attribute_Namespace = undefined %}
+{% if Class.attrib['Namespace'] is defined %}
 {%      if Class.attrib['Namespace'] != "None" %}
 {%          set attribute_Namespace = Class.attrib['Namespace'] %}
 {%      endif %}
@@ -221,6 +226,8 @@ void {{ Class.attrib['QualifiedName'] }}::Reflect(AZ::ReflectContext* context)
 {% endif %}
 {% if Class.attrib['Version'] is defined %}
             ->Version({{ Class.attrib['Version'] }}{% if Class.attrib['VersionConverter'] is defined %}, &{{ Class.attrib['VersionConverter'] }}{% endif %})
+{% else %}
+            ->Version(0)
 {% endif %}
 {% for Property in Class.iter('SerializedProperty') %}
             ->Field("{{ Property.attrib['Name'] }}", &{{ Class.attrib['Name'] }}::{{ Property.attrib['Name'] | replace(' ','') }})

+ 50 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasNodeableRegistry_Header.jinja

@@ -0,0 +1,50 @@
+{#
+Copyright (c) Contributors to the Open 3D Engine Project.
+For complete copyright and license terms please see the LICENSE at the root of this distribution.
+
+SPDX-License-Identifier: Apache-2.0 OR MIT
+#}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// This code was produced with AzAutoGen, any modifications made will not be preserved.
+// If you need to modify this code see:
+//
+// Gems\ScriptCanvas\Code\Include\ScriptCanvas\AutoGen\ScriptCanvasNodeableRegistry_Header.jinja
+//
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+{% import 'ScriptCanvas_Macros.jinja' as macros %}
+
+#pragma once
+
+#include <ScriptCanvas/AutoGen/ScriptCanvasAutoGenRegistry.h>
+
+namespace AZ
+{
+    class ReflectContext;
+    class ComponentDescriptor;
+}
+
+namespace ScriptCanvas
+{
+    struct NodeRegistry;
+
+    //! {{autogenTargetName}}NodeableRegistry
+    //! AutoGen registry to register nodeable required metadata into system
+    class {{autogenTargetName}}NodeableRegistry
+        : public ScriptCanvasRegistry
+    {
+    public:
+        {{autogenTargetName}}NodeableRegistry();
+        virtual ~{{autogenTargetName}}NodeableRegistry();
+ 
+        //! ScriptCanvasRegistry
+        void Init(NodeRegistry* nodeRegistry) override;
+        void Reflect(AZ::ReflectContext* context) override;
+        AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors() override;
+
+        //! Get AutoGen registry name
+        static const char* GetRegistryName();
+    };
+}

+ 95 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasNodeableRegistry_Source.jinja

@@ -0,0 +1,95 @@
+{#
+Copyright (c) Contributors to the Open 3D Engine Project.
+For complete copyright and license terms please see the LICENSE at the root of this distribution.
+
+SPDX-License-Identifier: Apache-2.0 OR MIT
+#}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// This code was produced with AzAutoGen, any modifications made will not be preserved.
+// If you need to modify this code see:
+//
+// Gems\ScriptCanvas\Code\Include\ScriptCanvas\AutoGen\ScriptCanvasNodeableRegistry_Source.jinja
+//
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+{% import 'ScriptCanvas_Macros.jinja' as macros %}
+
+#include "{{filename}}.h"
+#include <AzCore/RTTI/BehaviorContext.h>
+#include <AzCore/Component/Component.h>
+#include <ScriptCanvas/Libraries/ScriptCanvasNodeRegistry.h>
+{% for ScriptCanvas in dataFiles %}
+#include <{{ ScriptCanvas.attrib['Include'] }}>
+{% endfor %}
+
+namespace ScriptCanvas
+{
+    {{autogenTargetName}}NodeableRegistry::{{autogenTargetName}}NodeableRegistry()
+    {
+        ScriptCanvas::AutoGenRegistryManager::GetInstance()->RegisterRegistry(GetRegistryName(), this);
+    }
+
+    {{autogenTargetName}}NodeableRegistry::~{{autogenTargetName}}NodeableRegistry()
+    {
+        ScriptCanvas::AutoGenRegistryManager::GetInstance()->UnregisterRegistry(GetRegistryName());
+    }
+
+    const char* {{autogenTargetName}}NodeableRegistry::GetRegistryName() {
+        return "{{autogenTargetName}}NodeableRegistry";
+    }
+
+    void {{autogenTargetName}}NodeableRegistry::Init(NodeRegistry* nodeRegistry)
+    {
+        if (nodeRegistry)
+        {
+{% for ScriptCanvas in dataFiles %}
+{%     for Class in ScriptCanvas %}
+{%         set nodeName = Class.attrib['Name'] %}
+{%         set namespaceName = '::' %}
+{%         if Class.attrib['Namespace'] is defined and Class.attrib['Namespace'] != 'None' %}
+{%             set namespaceName = Class.attrib['Namespace'] + '::' %}
+{%         endif %}
+{%         if Class.attrib['BaseClass'] is not defined or Class.attrib['BaseClass'].lower() == "false" %}
+            nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<{{namespaceName}}Nodes::{{nodeName}}Node>::Uuid());
+{%         endif %}
+{%     endfor %}
+{% endfor %}
+        }
+    }
+
+    void {{autogenTargetName}}NodeableRegistry::Reflect([[maybe_unused]] AZ::ReflectContext* context)
+    {
+{% for ScriptCanvas in dataFiles %}
+{%     for Class in ScriptCanvas %}
+{%         set nodeName = Class.attrib['Name'] %}
+{%         set namespaceName = '::' %}
+{%         if Class.attrib['Namespace'] is defined and Class.attrib['Namespace'] != 'None' %}
+{%             set namespaceName = Class.attrib['Namespace'] + '::' %}
+{%         endif %}
+{%         if Class.attrib['BaseClass'] is defined and Class.attrib['BaseClass'].lower() == "true" %}
+        {{Class.attrib['QualifiedName']}}::Reflect(context);
+{%         endif %}
+{%     endfor %}
+{% endfor %}
+    }
+
+    AZStd::vector<AZ::ComponentDescriptor*> {{autogenTargetName}}NodeableRegistry::GetComponentDescriptors()
+    {
+        return AZStd::vector<AZ::ComponentDescriptor*>({
+{% for ScriptCanvas in dataFiles %}
+{%     for Class in ScriptCanvas %}
+{%         set nodeName = Class.attrib['Name'] %}
+{%         set namespaceName = '::' %}
+{%         if Class.attrib['Namespace'] is defined and Class.attrib['Namespace'] != 'None' %}
+{%             set namespaceName = Class.attrib['Namespace'] + '::' %}
+{%         endif %}
+{%         if Class.attrib['BaseClass'] is not defined or Class.attrib['BaseClass'].lower() == "false" %}
+            {{namespaceName}}Nodes::{{nodeName}}Node::CreateDescriptor(),
+{%         endif %}
+{%     endfor %}
+{% endfor %}
+        });
+    }
+}

+ 6 - 6
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasNodeable_Header.jinja

@@ -44,9 +44,9 @@ SPDX-License-Identifier: Apache-2.0 OR MIT
 {%      endif %}
 {% endif %}
 
-{%- set attribute_Base = Class.attrib['Base']  %}
-{% if not Class.attrib['Base'] is defined %}
-{%    set attribute_Base = "ScriptCanvas::Nodeable" %}
+{% set attribute_Base = "ScriptCanvas::Nodeable" %}
+{% if Class.attrib['Base'] is defined and Class.attrib['Base'] %}
+{%    set attribute_Base = Class.attrib['Base'] %}
 {% endif %}
 
 {% if attribute_Namespace is defined %}
@@ -70,7 +70,7 @@ namespace {{attribute_Namespace}}
 // You must #include the generated header into the source header
 #define SCRIPTCANVAS_NODE_{{className}} \
 public: \
-    AZ_RTTI({{className}}, "{{nodeableClassName|createHashGuid}}"{% if Class.attrib['Base'] is defined %}, {{ Class.attrib['Base'] }}{% endif %}); \
+    AZ_RTTI({{className}}, "{{nodeableClassName|createHashGuid}}", {{attribute_Base}}); \
     static void Reflect(AZ::ReflectContext* reflection); \
     static void ExtendReflectionSerialize([[maybe_unused]] AZ::SerializeContext::ClassBuilder* builder){% if Class.attrib['ExtendReflectionSerialize'] is defined %};{% else %}{}{% endif %} \
     static void ExtendReflectionEdit([[maybe_unused]] AZ::EditContext::ClassBuilder* builder){% if Class.attrib['ExtendReflectionEdit'] is defined %};{% else %}{}{% endif %} \
@@ -112,10 +112,10 @@ public: \
 
               size_t GenerateFingerprint() const override;
 
-{% if Class.attrib['EntryPoint'] is defined and Class.attrib['EntryPoint'] == "true" %}
+{% if Class.attrib['GraphEntryPoint'] is defined and Class.attrib['GraphEntryPoint'] == "True" %}
               bool IsEntryPoint() const override { return true; }
-
 {% endif %}
+
               {{nodeableNodeName}}();
 
               {{Class.attrib['NodeDeclarations']}}

+ 6 - 7
Gems/ScriptCanvas/Code/Include/ScriptCanvas/AutoGen/ScriptCanvasNodeable_Source.jinja

@@ -45,14 +45,13 @@ SPDX-License-Identifier: Apache-2.0 OR MIT
 {%- set attribute_EventHandler = Class.attrib['EventHandler'] %}
 {%- set attribute_Deprecated = Class.attrib['Deprecated'] %}
 
-
-{%- set attribute_Base = Class.attrib['Base']  %}
-{% if not Class.attrib['Base'] is defined %}
-{%    set attribute_Base = "ScriptCanvas::Nodeable" %}
+{%- set attribute_Base = "ScriptCanvas::Nodeable" %}
+{% if Class.attrib['Base'] is defined and Class.attrib['Base'] %}
+{%    set attribute_Base = Class.attrib['Base'] %}
 {% endif %}
 
-{% set attribute_Namespace = undefined %}
-{%- if Class.attrib['Namespace'] is defined %}
+{%- set attribute_Namespace = undefined %}
+{% if Class.attrib['Namespace'] is defined %}
 {%      if Class.attrib['Namespace'] != "None" %}
 {%          set attribute_Namespace = Class.attrib['Namespace'] %}
 {%      endif %}
@@ -159,7 +158,7 @@ void {{attribute_QualifiedName}}::Reflect(AZ::ReflectContext* context)
 
     if (AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
     {
-{% if ExtendReflectionSerialize is defined %}   auto {{preSerialize}} = {% else %}   {% endif %}serializeContext->Class<{{ attribute_Name }}{% if attribute_Base is defined %}, {{ attribute_Base }}{% endif %}>(){{postSerialize}}
+{% if ExtendReflectionSerialize is defined %}   auto {{preSerialize}} = {% else %}   {% endif %}serializeContext->Class<{{ attribute_Name }}, {{ attribute_Base }}>(){{postSerialize}}
 {% if attribute_EventHandler is defined %}
 #if defined(OBJECT_STREAM_EDITOR_ASSET_LOADING_SUPPORT_ENABLED)////
             {{preSerialize}}->EventHandler<{{ attribute_EventHandler }}>(){{postSerialize}}

+ 1 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NodeFunctionGeneric.h

@@ -189,6 +189,7 @@ namespace ScriptCanvas
         static void AddToRegistry([[maybe_unused]] NodeRegistry& nodeRegistry)
         {
             // Deprecated, do nothing here
+            AZ_Warning("ScriptCanvas", false, "NodeFunctionGeneric is deprecated, please migrate to autogen function node.");
         }
 
         template<typename t_Library>

+ 6 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Grammar/ParsingUtilities.cpp

@@ -12,7 +12,12 @@
 #include <ScriptCanvas/Core/Node.h>
 #include <ScriptCanvas/Core/Slot.h>
 #include <ScriptCanvas/Execution/ExecutionState.h>
-#include <ScriptCanvas/Libraries/Comparison/Comparison.h>
+#include <ScriptCanvas/Libraries/Comparison/EqualTo.h>
+#include <ScriptCanvas/Libraries/Comparison/Greater.h>
+#include <ScriptCanvas/Libraries/Comparison/GreaterEqual.h>
+#include <ScriptCanvas/Libraries/Comparison/Less.h>
+#include <ScriptCanvas/Libraries/Comparison/LessEqual.h>
+#include <ScriptCanvas/Libraries/Comparison/NotEqualTo.h>
 #include <ScriptCanvas/Libraries/Core/AzEventHandler.h>
 #include <ScriptCanvas/Libraries/Core/EBusEventHandler.h>
 #include <ScriptCanvas/Libraries/Core/FunctionDefinitionNode.h>

+ 18 - 25
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodeables/BaseTimer.ScriptCanvasNodeable.xml

@@ -2,32 +2,25 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Internal/Nodeables/BaseTimer.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="BaseTimer"
-         QualifiedName="ScriptCanvas::Nodeables::Time::BaseTimer"
-         PreferredClassName="BaseTimer"
-           Uuid="{64814C82-DAE5-9B04-B375-5E47D51ECD26}"
-           Base="ScriptCanvas::Nodeable"
-           Icon="Icons/ScriptCanvas/Placeholder.png"
-           Category="Utilities"
-           Version="0"
-           EntryPoint="true"
-           GeneratePropertyFriend="False"
-           Description="Provides a basic interaciton layer for all time based nodes for users(handles swapping between ticks and seconds).">
+        QualifiedName="ScriptCanvas::Nodeables::Time::BaseTimer"
+        PreferredClassName="BaseTimer"
+        Uuid="{64814C82-DAE5-9B04-B375-5E47D51ECD26}"
+        BaseClass="True"
+        Category="Timing"
+        Description="Provides a basic interaciton layer for all time based nodes for users(handles swapping between ticks and seconds).">
 
-      <Property Name="m_timeUnits" Type="int" DefaultValue="0" Serialize="true">
-        <PropertyData Name="Units"
-                      Description="Units to represent the time in."
-                      Serialize="true"
-                      UIHandler="AZ::Edit::UIHandlers::ComboBox">
-          <EditAttribute Key="AZ::Edit::Attributes::GenericValueList" Value="&amp;BaseTimer::GetTimeUnitList"/>
-          <EditAttribute Key="AZ::Edit::Attributes::PostChangeNotify" Value="&amp;BaseTimer::OnTimeUnitsChanged"/>
-        </PropertyData>
-      </Property>
-
-      <Property Name="m_tickOrder" Type="int" DefaultValue="static_cast&lt;int&gt;(AZ::TICK_DEFAULT)" Serialize="true">
-        <PropertyData Name="TickOrder"
-                      Description="When the tick for this time update should be handled."
-                      />
-      </Property>
+        <Property Name="m_timeUnits" Type="int" DefaultValue="0" Serialize="true">
+            <PropertyData Name="Units"
+                Description="Units to represent the time in."
+                Serialize="true"
+                UIHandler="AZ::Edit::UIHandlers::ComboBox">
+                <EditAttribute Key="AZ::Edit::Attributes::GenericValueList" Value="&amp;BaseTimer::GetTimeUnitList"/>
+                <EditAttribute Key="AZ::Edit::Attributes::PostChangeNotify" Value="&amp;BaseTimer::OnTimeUnitsChanged"/>
+            </PropertyData>
+        </Property>
 
+        <Property Name="m_tickOrder" Type="int" DefaultValue="static_cast&lt;int&gt;(AZ::TICK_DEFAULT)" Serialize="true">
+            <PropertyData Name="TickOrder" Description="When the tick for this time update should be handled."/>
+        </Property>
     </Class>
 </ScriptCanvas>

+ 7 - 11
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.ScriptCanvasGrammar.xml

@@ -2,22 +2,18 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="BaseTimerNode"
-	       QualifiedName="ScriptCanvas::Nodes::Internal::BaseTimerNode"
-	       PreferredClassName="BaseTimerNode"
-           Uuid="{BAD6C904-6078-49E8-B461-CA4410B785A4}"
-           Base="ScriptCanvas::Node"
-           Icon="Icons/ScriptCanvas/Placeholder.png"
-           Category="Utilities"
-           Version="0"
-           GeneratePropertyFriend="True"
-           Description="Provides a basic interaction layer for all time based nodes for users(handles swapping between ticks and seconds).">
+        QualifiedName="ScriptCanvas::Nodes::Internal::BaseTimerNode"
+        PreferredClassName="BaseTimerNode"
+        Uuid="{BAD6C904-6078-49E8-B461-CA4410B785A4}"
+        BaseClass="True"
+        Category="Utilities"
+        Description="Provides a basic interaction layer for all time based nodes for users(handles swapping between ticks and seconds).">
         <SerializedProperty Name="m_timeUnits" />
         <SerializedProperty Name="m_tickOrder" />
         <EditProperty UiHandler="AZ::Edit::UIHandlers::ComboBox" FieldName="m_timeUnits" Name="m_timeUnits" >
             <EditAttribute Key="AZ::Edit::Attributes::GenericValueList" Value="&amp;BaseTimerNode::GetTimeUnitList"/>
             <EditAttribute Key="AZ::Edit::Attributes::PostChangeNotify" Value="&amp;BaseTimerNode::OnTimeUnitsChanged"/>
         </EditProperty>
-        <EditProperty UiHandler="AZ::Edit::UIHandlers::Default" FieldName="m_tickOrder" Name="m_tickOrder" >
-        </EditProperty>
+        <EditProperty UiHandler="AZ::Edit::UIHandlers::Default" FieldName="m_tickOrder" Name="m_tickOrder"/>
     </Class>
 </ScriptCanvas>

+ 7 - 9
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/ExpressionNodeBase.ScriptCanvasGrammar.xml

@@ -2,15 +2,13 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Internal/Nodes/ExpressionNodeBase.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="ExpressionNodeBase"
-	       QualifiedName="ScriptCanvas::Nodes::Internal::ExpressionNodeBase"
-	       PreferredClassName="ExpressionNodeBase"
-           Uuid="{797C800D-8C96-4675-B5B5-2A321AC09433}"
-           Base="ScriptCanvas::Node"
-           Category="Internal"
-           Version="0"
-           DynamicSlotOrdering="True"
-           GeneratePropertyFriend="True"
-           Description="Base class for any node that wants to evaluate user given expressions.">
+        QualifiedName="ScriptCanvas::Nodes::Internal::ExpressionNodeBase"
+        PreferredClassName="ExpressionNodeBase"
+        Uuid="{797C800D-8C96-4675-B5B5-2A321AC09433}"
+        BaseClass="True"
+        Category="Internal"
+        DynamicSlotOrdering="True"
+        Description="Base class for any node that wants to evaluate user given expressions.">
         <In Name="In" Description="Input signal"/>
         <SerializedProperty Name="m_format" />
         <SerializedProperty Name="m_expressionTree" />

+ 8 - 9
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/StringFormatted.ScriptCanvasGrammar.xml

@@ -2,15 +2,14 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Internal/Nodes/StringFormatted.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="StringFormatted"
-           QualifiedName="ScriptCanvas::Nodes::Internal::StringFormatted"
-           PreferredClassName="StringFormatted"
-           Uuid="{0B1577E0-339D-4573-93D1-6C311AD12A13}"
-           Base="ScriptCanvas::Node"
-           Category="Internal"
-           Version="1"
-           DynamicSlotOrdering="True"
-           GeneratePropertyFriend="True"
-           Description="Base class for any nodes that use string formatting capabilities.">
+        QualifiedName="ScriptCanvas::Nodes::Internal::StringFormatted"
+        PreferredClassName="StringFormatted"
+        Uuid="{0B1577E0-339D-4573-93D1-6C311AD12A13}"
+        BaseClass="True"
+        Category="Internal"
+        Version="1"
+        DynamicSlotOrdering="True"
+        Description="Base class for any nodes that use string formatting capabilities.">
         <In Name="In" Description="Input signal"/>
         <Out Name="Out" Description=""/>
         <SerializedProperty Name="m_format" />

+ 0 - 68
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Comparison.cpp

@@ -1,68 +0,0 @@
-/*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
-
-#include <Libraries/Libraries.h>
-
-#include "Comparison.h"
-
-#include <ScriptCanvas/Core/Attributes.h>
-
-namespace ScriptCanvas
-{
-    namespace Library
-    {
-        void Comparison::Reflect(AZ::ReflectContext* reflection)
-        {
-            AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection);
-            if (serializeContext)
-            {
-                serializeContext->Class<Comparison, LibraryDefinition>()
-                    ->Version(1)
-                    ;
-
-                AZ::EditContext* editContext = serializeContext->GetEditContext();
-                if (editContext)
-                {
-                    editContext->Class<Comparison>("Comparisons", "Provides mathematical equality operations")->
-                        ClassElement(AZ::Edit::ClassElements::EditorData, "")->
-                        Attribute(AZ::Edit::Attributes::Category, "Math/Comparisons")->
-                        Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Libraries/Logic.png")->
-                        Attribute(AZ::Edit::Attributes::CategoryStyle, ".comparison")->
-                        Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "ComparisonNodeTitlePalette")
-                        ;
-                }
-
-            }
-        }
-
-        void Comparison::InitNodeRegistry(NodeRegistry& nodeRegistry)
-        {
-            using namespace ScriptCanvas::Nodes::Comparison;
-            AddNodeToRegistry<Comparison, EqualTo>(nodeRegistry);
-            AddNodeToRegistry<Comparison, NotEqualTo>(nodeRegistry);
-            AddNodeToRegistry<Comparison, Less>(nodeRegistry);
-            AddNodeToRegistry<Comparison, Greater>(nodeRegistry);
-            AddNodeToRegistry<Comparison, LessEqual>(nodeRegistry);
-            AddNodeToRegistry<Comparison, GreaterEqual>(nodeRegistry);
-        }
-
-        AZStd::vector<AZ::ComponentDescriptor*> Comparison::GetComponentDescriptors()
-        {
-            return AZStd::vector<AZ::ComponentDescriptor*>({
-                ScriptCanvas::Nodes::Comparison::EqualTo::CreateDescriptor(),
-                ScriptCanvas::Nodes::Comparison::NotEqualTo::CreateDescriptor(),
-                ScriptCanvas::Nodes::Comparison::Less::CreateDescriptor(),
-                ScriptCanvas::Nodes::Comparison::Greater::CreateDescriptor(),
-                ScriptCanvas::Nodes::Comparison::LessEqual::CreateDescriptor(),
-                ScriptCanvas::Nodes::Comparison::GreaterEqual::CreateDescriptor(),
-            });
-        }
-    }
-} 
-
-

+ 0 - 38
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Comparison.h

@@ -1,38 +0,0 @@
-/*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
-
-#pragma once
-
-// This header is only meant to include the nodes and should not contain
-// shared code
-
-#include <Libraries/Libraries.h>
-
-#include "EqualTo.h"
-#include "NotEqualTo.h"
-#include "Less.h"
-#include "Greater.h"
-#include "Less.h"
-#include "LessEqual.h"
-#include "GreaterEqual.h"
-
-namespace ScriptCanvas
-{
-    namespace Library
-    {
-        struct Comparison 
-            : public LibraryDefinition
-        {
-            AZ_RTTI(Comparison, "{8125A479-DF01-4CDF-B8BF-F0810F69E3C7}", LibraryDefinition);
-
-            static void Reflect(AZ::ReflectContext*);
-            static void InitNodeRegistry(NodeRegistry& nodeRegistry);
-            static AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors();
-        };
-    }
-}

+ 43 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/ComparisonLibrary.cpp

@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) Contributors to the Open 3D Engine Project.
+ * For complete copyright and license terms please see the LICENSE at the root of this distribution.
+ *
+ * SPDX-License-Identifier: Apache-2.0 OR MIT
+ *
+ */
+
+#include "ComparisonLibrary.h"
+#include "EqualTo.h"
+#include "NotEqualTo.h"
+#include "Less.h"
+#include "Greater.h"
+#include "Less.h"
+#include "LessEqual.h"
+#include "GreaterEqual.h"
+#include <ScriptCanvas/Libraries/ScriptCanvasNodeRegistry.h>
+
+namespace ScriptCanvas::ComparisonLibrary
+{
+    void InitNodeRegistry(NodeRegistry* nodeRegistry)
+    {
+        using namespace ScriptCanvas::Nodes::Comparison;
+        nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<EqualTo>::Uuid());
+        nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<NotEqualTo>::Uuid());
+        nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<Less>::Uuid());
+        nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<Greater>::Uuid());
+        nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<LessEqual>::Uuid());
+        nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<GreaterEqual>::Uuid());
+    }
+
+    AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors()
+    {
+        return AZStd::vector<AZ::ComponentDescriptor*>({
+            ScriptCanvas::Nodes::Comparison::EqualTo::CreateDescriptor(),
+            ScriptCanvas::Nodes::Comparison::NotEqualTo::CreateDescriptor(),
+            ScriptCanvas::Nodes::Comparison::Less::CreateDescriptor(),
+            ScriptCanvas::Nodes::Comparison::Greater::CreateDescriptor(),
+            ScriptCanvas::Nodes::Comparison::LessEqual::CreateDescriptor(),
+            ScriptCanvas::Nodes::Comparison::GreaterEqual::CreateDescriptor(),
+        });
+    }
+} 

+ 27 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/ComparisonLibrary.h

@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) Contributors to the Open 3D Engine Project.
+ * For complete copyright and license terms please see the LICENSE at the root of this distribution.
+ *
+ * SPDX-License-Identifier: Apache-2.0 OR MIT
+ *
+ */
+
+#pragma once
+
+#include <AzCore/std/containers/vector.h>
+
+namespace AZ
+{
+    class ComponentDescriptor;
+} // namespace AZ
+
+namespace ScriptCanvas
+{
+    struct NodeRegistry;
+
+    namespace ComparisonLibrary
+    {
+        void InitNodeRegistry(NodeRegistry* nodeRegistry);
+        AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors();
+    } // namespace ComparisonLibrary
+} // namespace ScriptCanvas

+ 1 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/EqualTo.h

@@ -34,6 +34,7 @@ namespace ScriptCanvas
                         {
                             editContext->Class<EqualTo>("Equal To (==)", "Checks if Value A and Value B are equal to each other")
                                 ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
+                                    ->Attribute(AZ::Edit::Attributes::Category, "Math/Comparisons")
                                     ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png")
                                     ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
                                 ;

+ 1 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Greater.h

@@ -34,6 +34,7 @@ namespace ScriptCanvas
                         {
                             editContext->Class<Greater>("Greater Than (>)", "Checks if Value A is greater than Value B")
                                 ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
+                                    ->Attribute(AZ::Edit::Attributes::Category, "Math/Comparisons")
                                     ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png")
                                     ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
                                 ;

+ 1 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/GreaterEqual.h

@@ -34,6 +34,7 @@ namespace ScriptCanvas
                         {
                             editContext->Class<GreaterEqual>("Greater Than or Equal To (>=)", "Checks if Value A is greater than or equal to Value B")
                                 ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
+                                    ->Attribute(AZ::Edit::Attributes::Category, "Math/Comparisons")
                                     ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png")
                                     ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
                                 ;

+ 1 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Less.h

@@ -34,6 +34,7 @@ namespace ScriptCanvas
                         {
                             editContext->Class<Less>("Less Than (<)", "Checks if Value A is less than Value B")
                                 ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
+                                    ->Attribute(AZ::Edit::Attributes::Category, "Math/Comparisons")
                                     ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png")
                                     ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
                                 ;

+ 1 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/LessEqual.h

@@ -34,6 +34,7 @@ namespace ScriptCanvas
                         {
                             editContext->Class<LessEqual>("Less Than or Equal To (<=)", "Checks if Value A is less than or equal to Value B")
                                 ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
+                                    ->Attribute(AZ::Edit::Attributes::Category, "Math/Comparisons")
                                     ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png")
                                     ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
                                 ;

+ 1 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/NotEqualTo.h

@@ -34,6 +34,7 @@ namespace ScriptCanvas
                         {
                             editContext->Class<NotEqualTo>("Not Equal To (!=)", "Checks if Value A is not equal to Value B")
                                 ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
+                                    ->Attribute(AZ::Edit::Attributes::Category, "Math/Comparisons")
                                     ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png")
                                     ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
                                 ;

+ 0 - 3
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/AzEventHandler.ScriptCanvasGrammar.xml

@@ -4,9 +4,6 @@
         QualifiedName="ScriptCanvas::Nodes::Core::AzEventHandler"
         PreferredClassName="AZ Event Handler"
         Uuid="{38B808C5-152C-4643-A08C-463EBED55E19}"
-        Base="ScriptCanvas::Node"
-        Icon="Icons/ScriptCanvas/AzEvent.png"
-        Version="0"
         EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
         GraphEntryPoint="True"
         Description="Handler for an AZ::Event returned from a BehaviorContent method.">

+ 94 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreLibrary.cpp

@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) Contributors to the Open 3D Engine Project.
+ * For complete copyright and license terms please see the LICENSE at the root of this distribution.
+ *
+ * SPDX-License-Identifier: Apache-2.0 OR MIT
+ *
+ */
+
+#include "CoreLibrary.h"
+#include "EBusEventHandler.h"
+#include "Method.h"
+#include "MethodOverloaded.h"
+#include "ScriptEventBase.h"
+
+#include <Data/DataMacros.h>
+#include <Data/DataTrait.h>
+#include <ScriptCanvas/Core/EBusHandler.h>
+#include <ScriptCanvas/Core/SubgraphInterface.h>
+#include <ScriptCanvas/Grammar/DebugMap.h>
+#include <ScriptCanvas/Libraries/Core/AzEventHandler.h>
+#include <ScriptCanvas/Libraries/Core/ContainerTypeReflection.h>
+#include <ScriptCanvas/Libraries/ScriptCanvasNodeRegistry.h>
+
+namespace ContainerTypeReflection
+{
+    #define SCRIPT_CANVAS_CALL_REFLECT_ON_TRAITS(TYPE)\
+        TraitsReflector<TYPE##Type>::Reflect(reflectContext);
+
+    using namespace AZStd;
+    using namespace ScriptCanvas;
+
+    // use this to reflect on demand reflection targets in the appropriate place
+    class ReflectOnDemandTargets
+    {
+
+    public:
+        AZ_TYPE_INFO(ReflectOnDemandTargets, "{FE658DB8-8F68-4E05-971A-97F398453B92}");
+        AZ_CLASS_ALLOCATOR(ReflectOnDemandTargets, AZ::SystemAllocator, 0);
+
+        ReflectOnDemandTargets() = default;
+        ~ReflectOnDemandTargets() = default;
+
+        static void Reflect(AZ::ReflectContext* reflectContext)
+        {
+            using namespace ScriptCanvas::Data;
+
+            // First Macro creates a list of all of the types, that is invoked using the second macro.
+            SCRIPT_CANVAS_PER_DATA_TYPE(SCRIPT_CANVAS_CALL_REFLECT_ON_TRAITS);
+        }
+    };
+
+#undef SCRIPT_CANVAS_CALL_REFLECT_ON_TRAITS
+}
+
+namespace ScriptCanvas::CoreLibrary
+{
+    void Reflect(AZ::ReflectContext* reflection)
+    {
+        Nodes::Core::EBusEventEntry::Reflect(reflection);
+        Nodes::Core::AzEventEntry::Reflect(reflection);
+        Nodes::Core::Internal::ScriptEventEntry::Reflect(reflection);
+
+        ContainerTypeReflection::ReflectOnDemandTargets::Reflect(reflection);
+            
+        // reflected to go over the network
+        Grammar::Variable::Reflect(reflection);
+        Grammar::FunctionPrototype::Reflect(reflection);
+
+        // reflect to build nodes that are built from sub graph definitions
+        Grammar::SubgraphInterface::Reflect(reflection);
+
+        // used to speed up the broadcast of debug information from Lua
+        Grammar::ReflectDebugSymbols(reflection);
+
+        //ContainerTypeReflection::TraitsReflector<AzFramework::SliceInstantiationTicket>::Reflect(reflection);
+        SlotExecution::Map::Reflect(reflection);
+        EBusHandler::Reflect(reflection);
+    }
+
+    void InitNodeRegistry(NodeRegistry* nodeRegistry)
+    {
+        using namespace ScriptCanvas::Nodes::Core;
+        nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<Method>::Uuid());
+        nodeRegistry->m_nodes.push_back(AZ::AzTypeInfo<MethodOverloaded>::Uuid());
+    }
+
+    AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors()
+    {
+        return AZStd::vector<AZ::ComponentDescriptor*>({
+            ScriptCanvas::Nodes::Core::Method::CreateDescriptor(),
+            ScriptCanvas::Nodes::Core::MethodOverloaded::CreateDescriptor(),
+        });
+    }
+}

+ 29 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreLibrary.h

@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) Contributors to the Open 3D Engine Project.
+ * For complete copyright and license terms please see the LICENSE at the root of this distribution.
+ *
+ * SPDX-License-Identifier: Apache-2.0 OR MIT
+ *
+ */
+
+#pragma once
+
+#include <AzCore/std/containers/vector.h>
+
+namespace AZ
+{
+    class ReflectContext;
+    class ComponentDescriptor;
+} // namespace AZ
+
+namespace ScriptCanvas
+{
+    struct NodeRegistry;
+
+    namespace CoreLibrary
+    {
+        void Reflect(AZ::ReflectContext* reflection);
+        void InitNodeRegistry(NodeRegistry* nodeRegistry);
+        AZStd::vector<AZ::ComponentDescriptor*> GetComponentDescriptors();
+    } // namespace CoreLibrary
+} // namespace ScriptCanvas

+ 0 - 141
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp

@@ -1,141 +0,0 @@
-/*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
-
-#include "CoreNodes.h"
-
-#include <Data/DataMacros.h>
-#include <Data/DataTrait.h>
-#include <ScriptCanvas/Core/Attributes.h>
-#include <ScriptCanvas/Core/EBusHandler.h>
-#include <ScriptCanvas/Grammar/DebugMap.h>
-#include <ScriptCanvas/Libraries/Core/AzEventHandler.h>
-#include <ScriptCanvas/Libraries/Core/ContainerTypeReflection.h>
-#include <ScriptCanvas/Libraries/Libraries.h>
-#include <ScriptCanvas/Core/SubgraphInterface.h>
-
-namespace ContainerTypeReflection
-{
-    #define SCRIPT_CANVAS_CALL_REFLECT_ON_TRAITS(TYPE)\
-        TraitsReflector<TYPE##Type>::Reflect(reflectContext);
-
-    using namespace AZStd;
-    using namespace ScriptCanvas;
-
-    // use this to reflect on demand reflection targets in the appropriate place
-    class ReflectOnDemandTargets
-    {
-
-    public:
-        AZ_TYPE_INFO(ReflectOnDemandTargets, "{FE658DB8-8F68-4E05-971A-97F398453B92}");
-        AZ_CLASS_ALLOCATOR(ReflectOnDemandTargets, AZ::SystemAllocator, 0);
-
-        ReflectOnDemandTargets() = default;
-        ~ReflectOnDemandTargets() = default;
-
-        static void Reflect(AZ::ReflectContext* reflectContext)
-        {
-            using namespace ScriptCanvas::Data;
-
-            // First Macro creates a list of all of the types, that is invoked using the second macro.
-            SCRIPT_CANVAS_PER_DATA_TYPE(SCRIPT_CANVAS_CALL_REFLECT_ON_TRAITS);
-        }
-    };
-
-#undef SCRIPT_CANVAS_CALL_REFLECT_ON_TRAITS
-}
-
-namespace ScriptCanvas
-{
-    namespace Library
-    {
-        void Core::Reflect(AZ::ReflectContext* reflection)
-        {
-            if (AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection))
-            {
-                serializeContext->Class<Core, LibraryDefinition>()
-                    ->Version(1)
-                    ;
-
-                if (AZ::EditContext* editContext = serializeContext->GetEditContext())
-                {
-                    editContext->Class<Core>("Core", "")->
-                        ClassElement(AZ::Edit::ClassElements::EditorData, "")->
-                        Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Libraries/Core.png")->
-                        Attribute(AZ::Edit::Attributes::CategoryStyle, ".time")->
-                        Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "TimeNodeTitlePalette")
-                        ;
-                }
-            }
-
-            Nodes::Core::EBusEventEntry::Reflect(reflection);
-            Nodes::Core::AzEventEntry::Reflect(reflection);
-            Nodes::Core::Internal::ScriptEventEntry::Reflect(reflection);
-            Nodes::Core::Internal::ScriptEventBase::Reflect(reflection);
-            Nodes::Core::Internal::Nodeling::Reflect(reflection);
-
-            ContainerTypeReflection::ReflectOnDemandTargets::Reflect(reflection);
-            
-            // reflected to go over the network
-            Grammar::Variable::Reflect(reflection);
-            Grammar::FunctionPrototype::Reflect(reflection);
-
-            // reflect to build nodes that are built from sub graph definitions
-            Grammar::SubgraphInterface::Reflect(reflection);
-
-            // used to speed up the broadcast of debug information from Lua
-            Grammar::ReflectDebugSymbols(reflection);
-
-            //ContainerTypeReflection::TraitsReflector<AzFramework::SliceInstantiationTicket>::Reflect(reflection);
-            SlotExecution::Map::Reflect(reflection);
-            EBusHandler::Reflect(reflection);
-        }
-
-        void Core::InitNodeRegistry(NodeRegistry& nodeRegistry)
-        {
-            using namespace ScriptCanvas::Nodes::Core;
-            AddNodeToRegistry<Core, Method>(nodeRegistry);
-            AddNodeToRegistry<Core, MethodOverloaded>(nodeRegistry);
-            AddNodeToRegistry<Core, Start>(nodeRegistry);            
-            AddNodeToRegistry<Core, EBusEventHandler>(nodeRegistry);
-            AddNodeToRegistry<Core, AzEventHandler>(nodeRegistry);
-            AddNodeToRegistry<Core, ExtractProperty>(nodeRegistry);
-            AddNodeToRegistry<Core, ForEach>(nodeRegistry);
-            AddNodeToRegistry<Core, GetVariableNode>(nodeRegistry);
-            AddNodeToRegistry<Core, SetVariableNode>(nodeRegistry);
-            AddNodeToRegistry<Core, ReceiveScriptEvent>(nodeRegistry);
-            AddNodeToRegistry<Core, SendScriptEvent>(nodeRegistry);
-            AddNodeToRegistry<Core, Repeater>(nodeRegistry);
-            AddNodeToRegistry<Core, FunctionCallNode>(nodeRegistry);
-            AddNodeToRegistry<Core, FunctionDefinitionNode>(nodeRegistry);
-            // Nodeables
-            AddNodeToRegistry<Core, Nodes::RepeaterNodeableNode>(nodeRegistry);
-        }
-
-        AZStd::vector<AZ::ComponentDescriptor*> Core::GetComponentDescriptors()
-        {
-            return AZStd::vector<AZ::ComponentDescriptor*>({
-                ScriptCanvas::Nodes::Core::Method::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::MethodOverloaded::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::Start::CreateDescriptor(),                
-                ScriptCanvas::Nodes::Core::EBusEventHandler::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::AzEventHandler::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::ExtractProperty::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::ForEach::CreateDescriptor(),                
-                ScriptCanvas::Nodes::Core::GetVariableNode::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::SetVariableNode::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::ReceiveScriptEvent::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::SendScriptEvent::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::Repeater::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::FunctionCallNode::CreateDescriptor(),
-                ScriptCanvas::Nodes::Core::FunctionDefinitionNode::CreateDescriptor(),
-                // Nodeables
-                ScriptCanvas::Nodes::RepeaterNodeableNode::CreateDescriptor(),
-            });
-        }
-    }
-}

+ 0 - 28
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.h

@@ -1,28 +0,0 @@
-/*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
-
-#pragma once
-
-// This header is only meant to include the nodes and should not contain
-// shared code
-
-#include "EBusEventHandler.h"
-#include "ExtractProperty.h"
-#include "FunctionDefinitionNode.h"
-#include "ForEach.h"
-#include "FunctionCallNode.h"
-#include "GetVariable.h"
-#include "Method.h"
-#include "MethodOverloaded.h"
-#include "ReceiveScriptEvent.h"
-#include "Repeater.h"
-#include "RepeaterNodeable.h"
-#include "ScriptEventBase.h"
-#include "SendScriptEvent.h"
-#include "SetVariable.h"
-#include "Start.h"

+ 9 - 12
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.ScriptCanvasGrammar.xml

@@ -2,18 +2,15 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/EBusEventHandler.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="EBusEventHandler"
-	       QualifiedName="ScriptCanvas::Nodes::Core::EBusEventHandler"
-	       PreferredClassName="Event Handler"
-           Uuid="{33E12915-EFCA-4AA7-A188-D694DAD58980}"
-           Base="ScriptCanvas::Node"
-           Icon="Icons/ScriptCanvas/Bus.png"
-           Version="5"
-           VersionConverter="ScriptCanvas::VersionConverters::EBusEventHandlerVersionConverter"
-           EventHandler="SerializeContextOnWriteEndHandler&lt;EBusEventHandler&gt;"
-           EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
-           GraphEntryPoint="True"
-           GeneratePropertyFriend="True"
-           Description="Allows you to handle a event.">
+        QualifiedName="ScriptCanvas::Nodes::Core::EBusEventHandler"
+        PreferredClassName="Event Handler"
+        Uuid="{33E12915-EFCA-4AA7-A188-D694DAD58980}"
+        Version="5"
+        VersionConverter="ScriptCanvas::VersionConverters::EBusEventHandlerVersionConverter"
+        EventHandler="SerializeContextOnWriteEndHandler&lt;EBusEventHandler&gt;"
+        EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
+        GraphEntryPoint="True"
+        Description="Allows you to handle a event.">
         <In Name="Connect" Description="Connect this event handler to the specified entity."/>
         <In Name="Disconnect" Description="Disconnect this event handler."/>
         <Out Name="OnConnected" Description="Signaled when a connection has taken place."/>

+ 10 - 13
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.ScriptCanvasGrammar.xml

@@ -2,22 +2,19 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/ExtractProperty.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="ExtractProperty"
-	       QualifiedName="ScriptCanvas::Nodes::Core::ExtractProperty"
-	       PreferredClassName="Extract Properties"
-           Uuid="{D4C9DA8E-838B-41C6-B870-C75294C323DC}"
-           Base="ScriptCanvas::Node"
-           Icon="Icons/ScriptCanvas/Placeholder.png"
-           Category="Utilities"
-           Version="1"
-           VersionConverter="VersionConverter"
-           GeneratePropertyFriend="True"
-           Description="Extracts property values from connected input">
+        QualifiedName="ScriptCanvas::Nodes::Core::ExtractProperty"
+        PreferredClassName="Extract Properties"
+        Uuid="{D4C9DA8E-838B-41C6-B870-C75294C323DC}"
+        Category="Utilities"
+        Version="1"
+        VersionConverter="VersionConverter"
+        Description="Extracts property values from connected input">
         <In Name="In" Description="When signaled assigns property values using the supplied source input"/>
         <Out Name="Out" Description="Signaled after all property haves have been pushed to the output slots"/>
         <DynamicDataSlot Name="Source"
-                         Description="The value on which to extract properties from."
-                         ConnectionType="ScriptCanvas::ConnectionType::Input"
-                         DynamicType="ScriptCanvas::DynamicDataType::Value" />
+            Description="The value on which to extract properties from."
+            ConnectionType="ScriptCanvas::ConnectionType::Input"
+            DynamicType="ScriptCanvas::DynamicDataType::Value" />
         <SerializedProperty Name="m_dataType" />
         <SerializedProperty Name="m_propertyAccounts" />
     </Class>

+ 7 - 10
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.ScriptCanvasGrammar.xml

@@ -2,16 +2,13 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/ForEach.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="ForEach"
-	       QualifiedName="ScriptCanvas::Nodes::Core::ForEach"
-	       PreferredClassName="For Each"
-           Uuid="{31823035-A3FF-4B8D-A3A6-819519478B7C}"
-           Base="ScriptCanvas::Node"
-           Icon="Icons/ScriptCanvas/Placeholder.png"
-           Category="Containers"
-           Version="2"
-           VersionConverter="ScriptCanvas::VersionConverters::ForEachVersionConverter"
-           GeneratePropertyFriend="True"
-           Description="Node for iterating through a container">
+        QualifiedName="ScriptCanvas::Nodes::Core::ForEach"
+        PreferredClassName="For Each"
+        Uuid="{31823035-A3FF-4B8D-A3A6-819519478B7C}"
+        Category="Containers"
+        Version="2"
+        VersionConverter="ScriptCanvas::VersionConverters::ForEachVersionConverter"
+        Description="Node for iterating through a container">
         <In Name="In" Description="Signaled upon node entry"/>
         <In Name="Break" Description="Stops the iteration when signaled"/>
         <Out Name="Each" Description="Signalled after each element of the container"/>

+ 12 - 15
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionCallNode.ScriptCanvasGrammar.xml

@@ -2,20 +2,17 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/FunctionCallNode.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="FunctionCallNode"
-           QualifiedName="ScriptCanvas::Nodes::Core::FunctionCallNode"
-           PreferredClassName="Function Call Node"
-           Uuid="{ECFDD30E-A16D-4435-97B7-B2A4DF3C543A}"
-           Base="ScriptCanvas::Node"
-           Icon="Icons/ScriptCanvas/Bus.png"
-           Version="Version::Current"
-           VersionConverter="ScriptCanvas::VersionConverters::FunctionNodeVersionConverter"
-           DynamicSlotOrdering="True"
-           EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
-           GeneratePropertyFriend="True"
-           Description="Displays a node that represents a call to a function in a user graph">
-      <SerializedProperty Name="m_sourceId" />
-      <SerializedProperty Name="m_asset" />
-      <SerializedProperty Name="m_slotExecutionMap" />
-      <SerializedProperty Name="m_slotExecutionMapSourceInterface" />
+        QualifiedName="ScriptCanvas::Nodes::Core::FunctionCallNode"
+        PreferredClassName="Function Call Node"
+        Uuid="{ECFDD30E-A16D-4435-97B7-B2A4DF3C543A}"
+        Version="Version::Current"
+        VersionConverter="ScriptCanvas::VersionConverters::FunctionNodeVersionConverter"
+        DynamicSlotOrdering="True"
+        EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
+        Description="Displays a node that represents a call to a function in a user graph">
+        <SerializedProperty Name="m_sourceId" />
+        <SerializedProperty Name="m_asset" />
+        <SerializedProperty Name="m_slotExecutionMap" />
+        <SerializedProperty Name="m_slotExecutionMapSourceInterface" />
     </Class>
 </ScriptCanvas>

+ 9 - 11
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.ScriptCanvasGrammar.xml

@@ -2,17 +2,15 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="FunctionDefinitionNode"
-           QualifiedName="ScriptCanvas::Nodes::Core::FunctionDefinitionNode"
-           PreferredClassName="Function Definition"
-           Uuid="{4EE28D9F-67FB-4E61-B777-5DC5B059710F}"
-           Base="ScriptCanvas::Nodes::Core::Internal::Nodeling"
-           Icon="Icons/ScriptCanvas/Start.png"
-           Category="Core"
-           Version="1"
-           EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
-           GeneratePropertyFriend="True"
-           GraphEntryPoint="True"
-           Description="Represents either an execution entry or exit node.">
+        QualifiedName="ScriptCanvas::Nodes::Core::FunctionDefinitionNode"
+        PreferredClassName="Function Definition"
+        Uuid="{4EE28D9F-67FB-4E61-B777-5DC5B059710F}"
+        Base="ScriptCanvas::Nodes::Core::Internal::Nodeling"
+        Category="Core"
+        Version="1"
+        EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
+        GraphEntryPoint="True"
+        Description="Represents either an execution entry or exit node.">
         <SerializedProperty Name="m_isExecutionEntry" />
     </Class>
 </ScriptCanvas>

+ 4 - 8
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/GetVariable.ScriptCanvasGrammar.xml

@@ -2,14 +2,10 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/GetVariable.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="GetVariableNode"
-	       QualifiedName="ScriptCanvas::Nodes::Core::GetVariableNode"
-	       PreferredClassName="Get Variable"
-           Uuid="{8225BE35-4C45-4A32-94D9-3DE114F6F5AF}"
-           Base="ScriptCanvas::Node"
-           Icon="Icons/ScriptCanvas/Placeholder.png"
-           Version="0"
-           GeneratePropertyFriend="True"
-           Description="Node for referencing a property within the graph">
+        QualifiedName="ScriptCanvas::Nodes::Core::GetVariableNode"
+        PreferredClassName="Get Variable"
+        Uuid="{8225BE35-4C45-4A32-94D9-3DE114F6F5AF}"
+        Description="Node for referencing a property within the graph">
         <In Name="In" Description="When signaled sends the property referenced by this node to a Data Output slot"/>
         <Out Name="Out" Description="Signaled after the referenced property has been pushed to the Data Output slot"/>
         <SerializedProperty Name="m_variableId" />

+ 11 - 13
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Nodeling.ScriptCanvasGrammar.xml

@@ -1,17 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/Nodeling.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <Class Name="Nodeling"
-         QualifiedName="ScriptCanvas::Nodes::Core::Internal::Nodeling"
-         PreferredClassName="Nodeling"
-         Uuid="{4413EEA0-8D81-4D61-A1E1-3C1A437F3643}"
-         Base="ScriptCanvas::Node"
-         Icon="Icons/ScriptCanvas/Start.png"
-         Category="Core"
-         Version="1"
-         GeneratePropertyFriend="True"
-         Description="Represents either an execution entry or exit node">
-    <SerializedProperty Name="m_displayName" />
-    <SerializedProperty Name="m_identifier" />
-  </Class>
+    <Class Name="Nodeling"
+        QualifiedName="ScriptCanvas::Nodes::Core::Internal::Nodeling"
+        PreferredClassName="Nodeling"
+        Uuid="{4413EEA0-8D81-4D61-A1E1-3C1A437F3643}"
+        BaseClass="True"
+        Category="Core"
+        Version="1"
+        Description="Represents either an execution entry or exit node">
+        <SerializedProperty Name="m_displayName" />
+        <SerializedProperty Name="m_identifier" />
+    </Class>
 </ScriptCanvas>

+ 10 - 12
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.ScriptCanvasGrammar.xml

@@ -2,23 +2,21 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="ReceiveScriptEvent"
-	       QualifiedName="ScriptCanvas::Nodes::Core::ReceiveScriptEvent"
-	       PreferredClassName="Receive Script Event"
-           Uuid="{76CF9938-4A7E-4CDA-8DF3-77C10239D99C}"
-           Base="ScriptCanvas::Nodes::Core::Internal::ScriptEventBase"
-           Icon="Icons/ScriptCanvas/Bus.png"
-           Version="4"
-           VersionConverter="ScriptCanvas::VersionConverters::ReceiveScriptEventVersionConverter"
-           EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
-           GraphEntryPoint="True"
-           GeneratePropertyFriend="True"
-           Description="Allows you to handle a event.">
+        QualifiedName="ScriptCanvas::Nodes::Core::ReceiveScriptEvent"
+        PreferredClassName="Receive Script Event"
+        Uuid="{76CF9938-4A7E-4CDA-8DF3-77C10239D99C}"
+        Base="ScriptCanvas::Nodes::Core::Internal::ScriptEventBase"
+        Version="4"
+        VersionConverter="ScriptCanvas::VersionConverters::ReceiveScriptEventVersionConverter"
+        EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
+        GraphEntryPoint="True"
+        Description="Allows you to handle a event.">
         <SerializedProperty Name="m_busId" />
+        <SerializedProperty Name="m_autoConnectToGraphOwner" />
         <In Name="Connect" Description="Connect this event handler to the specified entity."/>
         <In Name="Disconnect" Description="Disconnect this event handler."/>
         <Out Name="OnConnected" Description="Signaled when a connection has taken place."/>
         <Out Name="OnDisconnected" Description="Signaled when this event handler is disconnected."/>
         <Out Name="OnFailure" Description="Signaled when it is not possible to connect this handler."/>
-        <SerializedProperty Name="m_autoConnectToGraphOwner" />
     </Class>
 </ScriptCanvas>

+ 0 - 28
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.ScriptCanvasNodeable.xml

@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <Class Name="RepeaterNodeable"
-           QualifiedName="ScriptCanvas::Nodeables::Core::RepeaterNodeable"
-           PreferredClassName="Repeater"
-           Uuid="{4FBB5021-F3C8-E743-BF2E-BC6E5D57D48E}"
-           Base="Nodeables::Time::BaseTimer"
-           Icon="Icons/ScriptCanvas/Placeholder.png"
-           Category="Nodeables"
-           GeneratePropertyFriend="True"
-           Namespace="ScriptCanvas"
-           Description="Repeats the output signal the given number of times using the specified delay to space the signals out.">
-
-
-      <!-- Input tag is for an execution input that has optional data (parameters) -->
-      <Input Name="Start" Description="">
-        <Parameter Name="Repetitions" Type="Data::NumberType" DefaultValue="0.0" Description="How many times to repeat."/>
-        <Parameter Name="Interval" Type="Data::NumberType" DefaultValue="0.0" Description="The Interval between repetitions. If zero, all repititions execute immediately, before On Start"/>
-      </Input>
-
-      <Output Name="Complete" Description="Signaled upon node exit"/>
-      <Output Name="Action" Description="Signaled every repetition"/>
-
-      <PropertyInterface Property="m_timeUnitsInterface" Name="Units" Type="Input" Description="Units to represent the time in."/>
-
-    </Class>
-</ScriptCanvas>

+ 9 - 10
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ScriptEventBase.ScriptCanvasGrammar.xml

@@ -2,16 +2,15 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/ScriptEventBase.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="ScriptEventBase"
-	       QualifiedName="ScriptCanvas::Nodes::Core::Internal::ScriptEventBase"
-	       PreferredClassName="Script Event"
-           Uuid="{B6614CEC-4788-476C-A19A-BA0A8B490C73}"
-           Base="ScriptCanvas::Node"
-           Category="Internal"
-           Version="6"
-           VersionConverter="VersionConverters::ScriptEventBaseVersionConverter"
-           EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
-           GeneratePropertyFriend="True"
-           Description="Base class for Script Events.">
+        QualifiedName="ScriptCanvas::Nodes::Core::Internal::ScriptEventBase"
+        PreferredClassName="Script Event"
+        Uuid="{B6614CEC-4788-476C-A19A-BA0A8B490C73}"
+        BaseClass="True"
+        Category="Internal"
+        Version="6"
+        VersionConverter="VersionConverters::ScriptEventBaseVersionConverter"
+        EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
+        Description="Base class for Script Events.">
         <SerializedProperty Name="m_version" />
         <SerializedProperty Name="m_eventMap" />
         <SerializedProperty Name="m_eventSlotMapping" />

+ 8 - 10
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SendScriptEvent.ScriptCanvasGrammar.xml

@@ -2,16 +2,14 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/SendScriptEvent.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="SendScriptEvent"
-	       QualifiedName="ScriptCanvas::Nodes::Core::SendScriptEvent"
-	       PreferredClassName="Send Script Event"
-           Uuid="{64A97CC3-2BEA-4B47-809B-6C7DA34FD00F}"
-           Base="ScriptCanvas::Nodes::Core::Internal::ScriptEventBase"
-           Icon="Icons/ScriptCanvas/Bus.png"
-           Version="4"
-           DynamicSlotOrdering="True"
-           EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
-           GeneratePropertyFriend="True"
-           Description="Allows you to send an event.">
+        QualifiedName="ScriptCanvas::Nodes::Core::SendScriptEvent"
+        PreferredClassName="Send Script Event"
+        Uuid="{64A97CC3-2BEA-4B47-809B-6C7DA34FD00F}"
+        Base="ScriptCanvas::Nodes::Core::Internal::ScriptEventBase"
+        Version="4"
+        DynamicSlotOrdering="True"
+        EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All"
+        Description="Allows you to send an event.">
         <SerializedProperty Name="m_namespaces" />
         <SerializedProperty Name="m_busId" />
         <SerializedProperty Name="m_eventId" />

+ 5 - 8
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SetVariable.ScriptCanvasGrammar.xml

@@ -2,14 +2,11 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/SetVariable.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="SetVariableNode"
-	       QualifiedName="ScriptCanvas::Nodes::Core::SetVariableNode"
-	       PreferredClassName="Set Variable"
-           Uuid="{5EFD2942-AFF9-4137-939C-023AEAA72EB0}"
-           Base="ScriptCanvas::Node"
-           Icon="Icons/ScriptCanvas/Placeholder.png"
-           Version="1"
-           GeneratePropertyFriend="True"
-           Description="Node for setting a property within the graph">
+        QualifiedName="ScriptCanvas::Nodes::Core::SetVariableNode"
+        PreferredClassName="Set Variable"
+        Uuid="{5EFD2942-AFF9-4137-939C-023AEAA72EB0}"
+        Version="1"
+        Description="Node for setting a property within the graph">
         <In Name="In" Description="When signaled sends the variable referenced by this node to a Data Output slot"/>
         <Out Name="Out" Description="Signaled after the referenced variable has been pushed to the Data Output slot"/>
         <SerializedProperty Name="m_variableId" />

+ 7 - 10
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Start.ScriptCanvasGrammar.xml

@@ -2,16 +2,13 @@
 
 <ScriptCanvas Include="Include/ScriptCanvas/Libraries/Core/Start.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="Start"
-	       QualifiedName="ScriptCanvas::Nodes::Core::Start"
-	       PreferredClassName="On Graph Start"
-           Uuid="{F200B22A-5903-483A-BF63-5241BC03632B}"
-           Base="ScriptCanvas::Node"
-           Icon="Icons/ScriptCanvas/Start.png"
-           Category="Timing"
-           Version="2"
-           GraphEntryPoint="True"
-           GeneratePropertyFriend="True"
-           Description="Starts executing the graph when the entity that owns the graph is fully activated.">
+        QualifiedName="ScriptCanvas::Nodes::Core::Start"
+        PreferredClassName="On Graph Start"
+        Uuid="{F200B22A-5903-483A-BF63-5241BC03632B}"
+        Category="Timing"
+        Version="2"
+        GraphEntryPoint="True"
+        Description="Starts executing the graph when the entity that owns the graph is fully activated.">
         <Out Name="Out" Description="Signaled when the entity that owns this graph is fully activated."/>
     </Class>
 </ScriptCanvas>

+ 27 - 34
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/DeprecatedNodeLibrary.cpp

@@ -10,32 +10,29 @@
 
 #include <AzCore/Serialization/EditContext.h>
 
-#include <Libraries/Deprecated/WorldNodes.h>
-#include <Libraries/Deprecated/EntityNodes.h>
-#include <Libraries/Deprecated/RotateMethod.h>
-#include <Libraries/Deprecated/AABBNodes.h>
-#include <Libraries/Deprecated/ColorNodes.h>
-#include <Libraries/Deprecated/CRCNodes.h>
-#include <Libraries/Deprecated/MathGenerics.h>
-#include <Libraries/Deprecated/MathRandom.h>
-#include <Libraries/Deprecated/Divide.h>
-#include <Libraries/Deprecated/Multiply.h>
-#include <Libraries/Deprecated/Matrix3x3Nodes.h>
-#include <Libraries/Deprecated/Matrix4x4Nodes.h>
-#include <Libraries/Deprecated/OBBNodes.h>
-#include <Libraries/Deprecated/PlaneNodes.h>
-#include <Libraries/Deprecated/RotationNodes.h>
-#include <Libraries/Deprecated/Subtract.h>
-#include <Libraries/Deprecated/Sum.h>
-#include <Libraries/Deprecated/TransformNodes.h>
-#include <Libraries/Deprecated/Vector2Nodes.h>
-#include <Libraries/Deprecated/Vector3Nodes.h>
-#include <Libraries/Deprecated/Vector4Nodes.h>
-#include <Libraries/Deprecated/Contains.h>
-#include <Libraries/Deprecated/Replace.h>
-#include <Libraries/Deprecated/StringGenerics.h>
-#include <Libraries/Deprecated/StringMethods.h>
-#include <Libraries/Deprecated/Utilities.h>
+#include <Libraries/Deprecated/PhysX/WorldNodes.h>
+#include <Libraries/Deprecated/Entity/EntityNodes.h>
+#include <Libraries/Deprecated/Entity/RotateMethod.h>
+#include <Libraries/Deprecated/Math/AABBNodes.h>
+#include <Libraries/Deprecated/Math/ColorNodes.h>
+#include <Libraries/Deprecated/Math/CRCNodes.h>
+#include <Libraries/Deprecated/Math/MathGenerics.h>
+#include <Libraries/Deprecated/Math/MathRandom.h>
+#include <Libraries/Deprecated/Math/Divide.h>
+#include <Libraries/Deprecated/Math/Multiply.h>
+#include <Libraries/Deprecated/Math/Matrix3x3Nodes.h>
+#include <Libraries/Deprecated/Math/Matrix4x4Nodes.h>
+#include <Libraries/Deprecated/Math/OBBNodes.h>
+#include <Libraries/Deprecated/Math/PlaneNodes.h>
+#include <Libraries/Deprecated/Math/RotationNodes.h>
+#include <Libraries/Deprecated/Math/Subtract.h>
+#include <Libraries/Deprecated/Math/Sum.h>
+#include <Libraries/Deprecated/Math/TransformNodes.h>
+#include <Libraries/Deprecated/Math/Vector2Nodes.h>
+#include <Libraries/Deprecated/Math/Vector3Nodes.h>
+#include <Libraries/Deprecated/Math/Vector4Nodes.h>
+#include <Libraries/Deprecated/String/StringGenerics.h>
+#include <Libraries/Deprecated/String/StringMethods.h>
 #include <Libraries/Libraries.h>
 
 namespace ScriptCanvas
@@ -47,12 +44,14 @@ namespace ScriptCanvas
         REFLECT_GENERIC_FUNCTION_NODE(AABB, "{AB0C2753-680E-47AD-8277-66B3AC01C659}");
         REFLECT_GENERIC_FUNCTION_NODE(Color, "{6CC7B2F9-F551-4CB8-A713-4149959AE337}");
         REFLECT_GENERIC_FUNCTION_NODE(CRC, "{D8B65A5B-38FF-4B41-9FA4-FCA080D75625}");
+        REFLECT_GENERIC_FUNCTION_NODE(Math, "{76898795-2B30-4645-B6D4-67568ECC889F}");
         REFLECT_GENERIC_FUNCTION_NODE(Matrix3x3, "{8C5F6959-C2C4-46D9-9FCD-4DC234E7732D}");
         REFLECT_GENERIC_FUNCTION_NODE(Matrix4x4, "{537AB179-E23C-492D-8EF7-53845A2DB163}");
         REFLECT_GENERIC_FUNCTION_NODE(OBB, "{8CBDA3B7-9DCD-4A04-A12C-123C322CA63A}");
         REFLECT_GENERIC_FUNCTION_NODE(Plane, "{F2C799DF-2CC1-4DD8-91DC-18C2D517BAB0}");
         REFLECT_GENERIC_FUNCTION_NODE(Quaternion, "{9BE75E2E-AA07-4767-9BF3-905C289EB38A}");
         REFLECT_GENERIC_FUNCTION_NODE(Random, "{D9DF1385-6C5C-4E41-94CA-8B10E9D8FAAF}");
+        REFLECT_GENERIC_FUNCTION_NODE(String, "{5B700838-21A2-4579-9303-F4A4822AFEF4}");
         REFLECT_GENERIC_FUNCTION_NODE(Transform, "{59E0EF87-352C-4CFB-A810-5B8752BDD1EF}");
         REFLECT_GENERIC_FUNCTION_NODE(Vector2, "{FD1BFADF-BA1F-4AFC-819B-ABA1F22AE6E6}");
         REFLECT_GENERIC_FUNCTION_NODE(Vector3, "{53EA7604-E3AE-4E88-BE0E-66CBC488A7DB}");
@@ -65,11 +64,11 @@ namespace ScriptCanvas
         {
             SCRIPT_CANVAS_GENERICS_TO_VM(EntityNodes::Registrar, DeprecatedLibrary::Entity, behaviorContext, EntityNodes::k_categoryName);
             SCRIPT_CANVAS_GENERICS_TO_VM(ScriptCanvasPhysics::WorldNodes::Registrar, DeprecatedLibrary::World, behaviorContext, ScriptCanvasPhysics::WorldNodes::k_categoryName);
-            SCRIPT_CANVAS_GENERICS_TO_VM(StringNodes::Registrar, Library::String, behaviorContext, StringNodes::k_categoryName);
+            SCRIPT_CANVAS_GENERICS_TO_VM(StringNodes::Registrar, DeprecatedLibrary::String, behaviorContext, StringNodes::k_categoryName);
             SCRIPT_CANVAS_GENERICS_TO_VM(AABBNodes::Registrar, DeprecatedLibrary::AABB, behaviorContext, AABBNodes::k_categoryName);
             SCRIPT_CANVAS_GENERICS_TO_VM(ColorNodes::Registrar, DeprecatedLibrary::Color, behaviorContext, ColorNodes::k_categoryName);
             SCRIPT_CANVAS_GENERICS_TO_VM(CRCNodes::Registrar, DeprecatedLibrary::CRC, behaviorContext, CRCNodes::k_categoryName);
-            SCRIPT_CANVAS_GENERICS_TO_VM(MathNodes::Registrar, Library::Math, behaviorContext, MathNodes::k_categoryName);
+            SCRIPT_CANVAS_GENERICS_TO_VM(MathNodes::Registrar, DeprecatedLibrary::Math, behaviorContext, MathNodes::k_categoryName);
             SCRIPT_CANVAS_GENERICS_TO_VM(Matrix3x3Nodes::Registrar, DeprecatedLibrary::Matrix3x3, behaviorContext, Matrix3x3Nodes::k_categoryName);
             SCRIPT_CANVAS_GENERICS_TO_VM(Matrix4x4Nodes::Registrar, DeprecatedLibrary::Matrix4x4, behaviorContext, Matrix4x4Nodes::k_categoryName);
             SCRIPT_CANVAS_GENERICS_TO_VM(OBBNodes::Registrar, DeprecatedLibrary::OBB, behaviorContext, OBBNodes::k_categoryName);
@@ -93,12 +92,6 @@ namespace ScriptCanvas
             ScriptCanvas::Nodes::Math::Multiply::CreateDescriptor(),
             ScriptCanvas::Nodes::Math::Subtract::CreateDescriptor(),
             ScriptCanvas::Nodes::Math::Sum::CreateDescriptor(),
-            ScriptCanvas::Nodes::String::Replace::CreateDescriptor(),
-            ScriptCanvas::Nodes::String::Contains::CreateDescriptor(),
-            ScriptCanvas::Nodes::String::StartsWith::CreateDescriptor(),
-            ScriptCanvas::Nodes::String::EndsWith::CreateDescriptor(),
-            ScriptCanvas::Nodes::String::Split::CreateDescriptor(),
-            ScriptCanvas::Nodes::String::Join::CreateDescriptor()
         };
 
         EntityNodes::Registrar::AddDescriptors(descriptors);

+ 13 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/DeprecatedNodeLibrary.h

@@ -9,6 +9,19 @@
 
 #include <AzCore/std/containers/vector.h>
 
+#define REFLECT_GENERIC_FUNCTION_NODE(GenericFunction, Guid) \
+    struct GenericFunction \
+    { \
+        AZ_TYPE_INFO(GenericFunction, Guid); \
+        static void Reflect(AZ::ReflectContext* reflection) \
+        { \
+            if (AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(reflection)) \
+            { \
+                serializeContext->Class<GenericFunction>()->Version(0); \
+            } \
+        } \
+    };
+
 namespace AZ
 {
     class ReflectContext;

+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/EntityNodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Entity/EntityNodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/RotateMethod.cpp → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Entity/RotateMethod.cpp


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/RotateMethod.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Entity/RotateMethod.h


+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Indexer.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Indexer.ScriptCanvasGrammar.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Logic/Indexer.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Logic/Indexer.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="Indexer"
 	       QualifiedName="ScriptCanvas::Nodes::Logic::Indexer"
 	       PreferredClassName="Indexer"

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Indexer.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Indexer.h

@@ -10,7 +10,7 @@
 
 #include <ScriptCanvas/Core/Node.h>
 
-#include <Include/ScriptCanvas/Libraries/Logic/Indexer.generated.h>
+#include <Include/ScriptCanvas/Libraries/Deprecated/Logic/Indexer.generated.h>
 
 namespace ScriptCanvas
 {

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Multiplexer.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Multiplexer.ScriptCanvasGrammar.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Logic/Multiplexer.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Logic/Multiplexer.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="Multiplexer"
 	       QualifiedName="ScriptCanvas::Nodes::Logic::Multiplexer"
 	       PreferredClassName="Multiplexer"

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Multiplexer.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Multiplexer.h

@@ -10,7 +10,7 @@
 
 #include <ScriptCanvas/Core/Node.h>
 
-#include <Include/ScriptCanvas/Libraries/Logic/Multiplexer.generated.h>
+#include <Include/ScriptCanvas/Libraries/Deprecated/Logic/Multiplexer.generated.h>
 
 namespace ScriptCanvas
 {

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Sequencer.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Sequencer.ScriptCanvasGrammar.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Logic/Sequencer.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Logic/Sequencer.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="Sequencer"
 	       QualifiedName="ScriptCanvas::Nodes::Logic::Sequencer"
 	       PreferredClassName="Sequencer"

+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Sequencer.cpp → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Sequencer.cpp


+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Sequencer.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Logic/Sequencer.h

@@ -10,7 +10,7 @@
 
 #include <ScriptCanvas/Core/Node.h>
 
-#include <Include/ScriptCanvas/Libraries/Logic/Sequencer.generated.h>
+#include <Include/ScriptCanvas/Libraries/Deprecated/Logic/Sequencer.generated.h>
 
 
 namespace ScriptCanvas

+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/AABBNodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/AABBNodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/CRCNodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/CRCNodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/ColorNodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/ColorNodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Divide.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Divide.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/MathGenerics.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/MathGenerics.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/MathRandom.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/MathRandom.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Matrix3x3Nodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Matrix3x3Nodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Matrix4x4Nodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Matrix4x4Nodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Multiply.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Multiply.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/OBBNodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/OBBNodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/PlaneNodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/PlaneNodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/RotationNodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/RotationNodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Subtract.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Subtract.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Sum.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Sum.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/TransformNodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/TransformNodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Vector2Nodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Vector2Nodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Vector3Nodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Vector3Nodes.h


+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Vector4Nodes.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Math/Vector4Nodes.h


+ 3 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Operator.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/Operator.ScriptCanvasGrammar.xml

@@ -1,13 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Operators/Operator.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/Operator.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="OperatorBase"
 	       QualifiedName="ScriptCanvas::Nodes::Operators::OperatorBase"
 	       PreferredClassName="OperatorBase"
            Uuid="{30FED030-71ED-4498-AB2C-F5586DFA490E}"
+           BaseClass="True"
            Base="ScriptCanvas::Node"
            Category="Operators"
            Version="2"
+           Deprecated="True"
            GeneratePropertyFriend="True"
            Description="">
         <In Name="In" Description="Input signal"/>

+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Operator.cpp → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/Operator.cpp


+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Operator.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/Operator.h

@@ -15,7 +15,7 @@
 #include <ScriptCanvas/Core/GraphBus.h>
 #include <ScriptCanvas/Core/SlotMetadata.h>
 
-#include <Include/ScriptCanvas/Libraries/Operators/Operator.generated.h>
+#include <Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/Operator.generated.h>
 
 namespace ScriptCanvas
 {

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorAt.ScriptCanvasGrammar.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorAt.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="OperatorAt"
 	       QualifiedName="ScriptCanvas::Nodes::Operators::OperatorAt"
 	       PreferredClassName="Get Element"

+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.cpp → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorAt.cpp


+ 2 - 2
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorAt.h

@@ -8,11 +8,11 @@
 
 #pragma once
 
-#include <ScriptCanvas/Libraries/Operators/Operator.h>
+#include "Operator.h"
 
 #include <ScriptCanvas/Core/Node.h>
 
-#include <Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.generated.h>
+#include <Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorAt.generated.h>
 
 namespace ScriptCanvas
 {

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorBack.ScriptCanvasGrammar.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorBack.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="OperatorBack"
 	       QualifiedName="ScriptCanvas::Nodes::Operators::OperatorBack"
 	       PreferredClassName="Get Last Element"

+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.cpp → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorBack.cpp


+ 2 - 2
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorBack.h

@@ -8,10 +8,10 @@
 
 #pragma once
 
-#include <ScriptCanvas/Libraries/Operators/Operator.h>
+#include "Operator.h"
 
 #include <ScriptCanvas/Core/Node.h>
-#include <Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.generated.h>
+#include <Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorBack.generated.h>
 
 namespace ScriptCanvas
 {

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorClear.ScriptCanvasGrammar.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorClear.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="OperatorClear"
 	       QualifiedName="ScriptCanvas::Nodes::Operators::OperatorClear"
 	       PreferredClassName="Clear All Elements"

+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.cpp → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorClear.cpp


+ 2 - 2
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorClear.h

@@ -8,10 +8,10 @@
 
 #pragma once
 
-#include <ScriptCanvas/Libraries/Operators/Operator.h>
+#include "Operator.h"
 
 #include <ScriptCanvas/Core/Node.h>
-#include <Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.generated.h>
+#include <Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorClear.generated.h>
 
 namespace ScriptCanvas
 {

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorEmpty.ScriptCanvasGrammar.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorEmpty.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="OperatorEmpty"
 	       QualifiedName="ScriptCanvas::Nodes::Operators::OperatorEmpty"
 	       PreferredClassName="Is Empty"

+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.cpp → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorEmpty.cpp


+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorEmpty.h

@@ -10,7 +10,7 @@
 
 #include <ScriptCanvas/Core/Node.h>
 
-#include <Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.generated.h>
+#include <Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorEmpty.generated.h>
 
 namespace ScriptCanvas
 {

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorErase.ScriptCanvasGrammar.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorErase.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="OperatorErase"
 	       QualifiedName="ScriptCanvas::Nodes::Operators::OperatorErase"
 	       PreferredClassName="Erase"

+ 0 - 0
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.cpp → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorErase.cpp


+ 2 - 2
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.h → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorErase.h

@@ -8,10 +8,10 @@
 
 #pragma once
 
-#include <ScriptCanvas/Libraries/Operators/Operator.h>
+#include "Operator.h"
 
 #include <ScriptCanvas/Core/Node.h>
-#include <Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.generated.h>
+#include <Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorErase.generated.h>
 
 namespace ScriptCanvas
 {

+ 1 - 1
Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Containers/OperatorFront.ScriptCanvasGrammar.xml → Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorFront.ScriptCanvasGrammar.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Operators/Containers/OperatorFront.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Deprecated/Operators/Containers/OperatorFront.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Class Name="OperatorFront"
 	       QualifiedName="ScriptCanvas::Nodes::Operators::OperatorFront"
 	       PreferredClassName="Get First Element"

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно