From 59ff74f559034379420379a82a8558a63e221a31 Mon Sep 17 00:00:00 2001 From: chcurran <82187351+carlitosan@users.noreply.github.com> Date: Thu, 1 Jul 2021 09:57:36 -0700 Subject: [PATCH] The Great ScriptCanvas Purge. Part I. Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com> --- .../GraphCanvas/Editor/GraphModelBus.h | 13 - .../GraphModel/Integration/GraphController.h | 2 - .../Source/Integration/GraphController.cpp | 8 - .../Code/Editor/Components/EditorGraph.cpp | 63 -- .../Framework/ScriptCanvasTraceUtilities.h | 2 - .../EntityRefNodeDescriptorComponent.cpp | 126 --- .../EntityRefNodeDescriptorComponent.h | 48 - .../ScriptCanvas/Components/EditorGraph.h | 6 +- .../Code/Editor/Nodes/NodeCreateUtils.cpp | 1 - .../Code/Editor/Nodes/NodeDisplayUtils.cpp | 52 - .../Code/Editor/Nodes/NodeDisplayUtils.h | 1 - .../Code/Editor/Nodes/NodeUtils.cpp | 16 - .../Code/Editor/ScriptCanvasEditorGem.cpp | 2 - .../Widgets/NodePalette/NodePaletteModel.cpp | 7 - .../SpecializedNodePaletteTreeItemTypes.cpp | 1 - .../VariableNodePaletteTreeItemTypes.cpp | 1 - .../ScriptCanvasNodePaletteDockWidget.cpp | 1 - .../Include/ScriptCanvas/Core/Contracts.h | 1 - .../Contracts/ExclusivePureDataContract.cpp | 56 -- .../Contracts/ExclusivePureDataContract.h | 30 - .../Code/Include/ScriptCanvas/Core/Graph.cpp | 1 - .../ScriptCanvas/Core/NativeDatumNode.h | 133 --- .../Code/Include/ScriptCanvas/Core/Node.cpp | 30 +- .../ScriptCanvas/Core/NodeFunctionGeneric.h | 10 + .../Include/ScriptCanvas/Core/PureData.cpp | 230 ----- .../Code/Include/ScriptCanvas/Core/PureData.h | 111 --- .../Code/Include/ScriptCanvas/Core/Slot.cpp | 6 - .../ScriptCanvas/Libraries/Core/Assign.cpp | 88 -- .../ScriptCanvas/Libraries/Core/Assign.h | 39 - .../Core/BehaviorContextObjectNode.cpp | 216 ----- .../Core/BehaviorContextObjectNode.h | 73 -- .../Libraries/Core/BinaryOperator.h | 1 - .../ScriptCanvas/Libraries/Core/CoreNodes.cpp | 4 - .../ScriptCanvas/Libraries/Core/CoreNodes.h | 2 - .../Libraries/Core/ErrorHandler.cpp | 1 - .../Libraries/Core/ExtractProperty.cpp | 27 - .../Libraries/Core/ExtractProperty.h | 4 - .../ScriptCanvas/Libraries/Core/ForEach.cpp | 1 - .../ScriptCanvas/Libraries/Core/String.h | 47 - .../Libraries/Core/UnaryOperator.cpp | 30 - .../Libraries/Core/UnaryOperator.h | 19 +- .../ScriptCanvas/Libraries/Entity/Entity.cpp | 18 +- .../ScriptCanvas/Libraries/Entity/Entity.h | 3 - .../Libraries/Entity/EntityIDNode.h | 47 - .../ScriptCanvas/Libraries/Entity/EntityRef.h | 79 -- .../Entity/Rotate.ScriptCanvasGrammar.xml | 29 - .../ScriptCanvas/Libraries/Entity/Rotate.cpp | 56 -- .../ScriptCanvas/Libraries/Entity/Rotate.h | 44 - .../ScriptCanvas/Libraries/Logic/Boolean.h | 48 - .../ScriptCanvas/Libraries/Logic/Gate.cpp | 17 - .../ScriptCanvas/Libraries/Logic/Gate.h | 15 +- .../ScriptCanvas/Libraries/Logic/Logic.cpp | 2 - .../ScriptCanvas/Libraries/Logic/Logic.h | 1 - .../ScriptCanvas/Libraries/Logic/Not.h | 9 - .../ScriptCanvas/Libraries/Logic/Once.h | 5 +- .../ScriptCanvas/Libraries/Logic/While.h | 5 +- .../ScriptCanvas/Libraries/Math/AABBNode.h | 48 - .../ScriptCanvas/Libraries/Math/CRCNode.h | 48 - .../ScriptCanvas/Libraries/Math/ColorNode.h | 48 - .../ScriptCanvas/Libraries/Math/Math.cpp | 55 +- .../ScriptCanvas/Libraries/Math/Math.h | 12 - .../Libraries/Math/Matrix3x3Node.h | 49 - .../Libraries/Math/Matrix4x4Node.h | 48 - .../ScriptCanvas/Libraries/Math/Number.h | 46 - .../ScriptCanvas/Libraries/Math/OBBNode.h | 48 - .../ScriptCanvas/Libraries/Math/PlaneNode.h | 48 - .../Math/Random.ScriptCanvasGrammar.xml | 34 - .../ScriptCanvas/Libraries/Math/Random.cpp | 42 - .../ScriptCanvas/Libraries/Math/Random.h | 36 - .../ScriptCanvas/Libraries/Math/Rotation.h | 46 - .../ScriptCanvas/Libraries/Math/Transform.h | 45 - .../ScriptCanvas/Libraries/Math/Vector.h | 106 --- .../Code/Source/ScriptCanvasCommonGem.cpp | 2 - .../Code/scriptcanvasgem_common_files.cmake | 28 - .../Code/scriptcanvasgem_editor_files.cmake | 2 - .../Framework/ScriptCanvasTestUtilities.cpp | 95 -- .../Framework/ScriptCanvasTestUtilities.h | 1 - .../Tests/ScriptCanvas_BehaviorContext.cpp | 43 - .../Code/Tests/ScriptCanvas_Core.cpp | 157 +-- .../Code/Tests/ScriptCanvas_Math.cpp | 70 -- .../Code/Tests/ScriptCanvas_NodeGenerics.cpp | 901 ------------------ 81 files changed, 40 insertions(+), 3906 deletions(-) delete mode 100644 Gems/ScriptCanvas/Code/Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.cpp delete mode 100644 Gems/ScriptCanvas/Code/Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.cpp delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NativeDatumNode.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/PureData.cpp delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/PureData.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Assign.cpp delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Assign.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.cpp delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/String.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityIDNode.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityRef.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.ScriptCanvasGrammar.xml delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.cpp delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Boolean.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/AABBNode.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/CRCNode.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/ColorNode.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix3x3Node.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix4x4Node.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Number.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/OBBNode.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/PlaneNode.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.ScriptCanvasGrammar.xml delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.cpp delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Rotation.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Transform.h delete mode 100644 Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Vector.h diff --git a/Gems/GraphCanvas/Code/StaticLib/GraphCanvas/Editor/GraphModelBus.h b/Gems/GraphCanvas/Code/StaticLib/GraphCanvas/Editor/GraphModelBus.h index b59a4162d1..e7a05c5ee9 100644 --- a/Gems/GraphCanvas/Code/StaticLib/GraphCanvas/Editor/GraphModelBus.h +++ b/Gems/GraphCanvas/Code/StaticLib/GraphCanvas/Editor/GraphModelBus.h @@ -90,19 +90,6 @@ namespace GraphCanvas return result; } - //! This is sent to confirm whether or not a variable assignment can take place. - virtual bool IsValidVariableAssignment(const AZ::EntityId& variableId, const Endpoint& targetPoint) const = 0; - - //! This will return the structure needed to display why a variable could not be assigned to a specific reference inside of GraphCanvas. - virtual ConnectionValidationTooltip GetVariableAssignmentValidityTooltip(const AZ::EntityId& variableId, const Endpoint& targetPoint) const - { - ConnectionValidationTooltip result; - - result.m_isValid = IsValidVariableAssignment(variableId, targetPoint); - - return result; - } - //! Get the Display Type name for the given AZ type virtual AZStd::string GetDataTypeString(const AZ::Uuid& typeId) = 0; diff --git a/Gems/GraphModel/Code/Include/GraphModel/Integration/GraphController.h b/Gems/GraphModel/Code/Include/GraphModel/Integration/GraphController.h index 84e54ea6bf..817b709b70 100644 --- a/Gems/GraphModel/Code/Include/GraphModel/Integration/GraphController.h +++ b/Gems/GraphModel/Code/Include/GraphModel/Integration/GraphController.h @@ -147,8 +147,6 @@ namespace GraphModelIntegration bool CreateConnection(const AZ::EntityId& connectionUiId, const GraphCanvas::Endpoint& sourcePoint, const GraphCanvas::Endpoint& targetPoint) override; bool IsValidConnection(const GraphCanvas::Endpoint& sourcePoint, const GraphCanvas::Endpoint& targetPoint) const override; - bool IsValidVariableAssignment(const AZ::EntityId& variableId, const GraphCanvas::Endpoint& targetPoint) const override; - //////////////////////////////////////////////////////////////////////////////////// // GraphCanvas::GraphModelRequestBus, undo diff --git a/Gems/GraphModel/Code/Source/Integration/GraphController.cpp b/Gems/GraphModel/Code/Source/Integration/GraphController.cpp index dff224b03d..e61cd7671e 100644 --- a/Gems/GraphModel/Code/Source/Integration/GraphController.cpp +++ b/Gems/GraphModel/Code/Source/Integration/GraphController.cpp @@ -1187,14 +1187,6 @@ namespace GraphModelIntegration return dataTypesMatch && !CheckForLoopback(sourceSlot->GetParentNode(), targetSlot->GetParentNode()); } - - bool GraphController::IsValidVariableAssignment([[maybe_unused]] const AZ::EntityId& variableId, [[maybe_unused]] const GraphCanvas::Endpoint& targetPoint) const - { - AZ_Assert(false, "This Graph Canvas does not support graph variables"); - return false; - } - - //! Helper function to create a GraphCanvas::NodePropertyDisplay and a data interface for editing input pin values //! \typename DataInterfaceType One of the data interface types. Ex: BooleanDataInterface //! \typename CreateDisplayFunctionType Function pointer type should be filled automatically diff --git a/Gems/ScriptCanvas/Code/Editor/Components/EditorGraph.cpp b/Gems/ScriptCanvas/Code/Editor/Components/EditorGraph.cpp index f1b4af88d8..a8dd5904fc 100644 --- a/Gems/ScriptCanvas/Code/Editor/Components/EditorGraph.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Components/EditorGraph.cpp @@ -38,9 +38,6 @@ AZ_POP_DISABLE_WARNING #include #include #include - -#include - #include #include #include @@ -1087,66 +1084,6 @@ namespace ScriptCanvasEditor return CanCreateConnectionBetween(scSourceEndpoint, scTargetEndpoint).IsSuccess(); } - GraphCanvas::ConnectionValidationTooltip Graph::GetConnectionValidityTooltip(const GraphCanvas::Endpoint& sourcePoint, const GraphCanvas::Endpoint& targetPoint) const - { - ScriptCanvas::Endpoint scSourceEndpoint = ConvertToScriptCanvasEndpoint(sourcePoint); - ScriptCanvas::Endpoint scTargetEndpoint = ConvertToScriptCanvasEndpoint(targetPoint); - - AZ::Outcome connectionResult = CanCreateConnectionBetween(scSourceEndpoint, scTargetEndpoint); - - GraphCanvas::ConnectionValidationTooltip validationTooltip; - - validationTooltip.m_isValid = connectionResult.IsSuccess(); - - if (!connectionResult) - { - validationTooltip.m_failureReason = connectionResult.GetError(); - } - - return validationTooltip; - } - - bool Graph::IsValidVariableAssignment(const AZ::EntityId& variableId, const GraphCanvas::Endpoint& targetPoint) const - { - AZStd::any* userData = nullptr; - GraphCanvas::NodeRequestBus::EventResult(userData, variableId, &GraphCanvas::NodeRequests::GetUserData); - AZ::EntityId variableNodeId = (userData && userData->is()) ? *AZStd::any_cast(userData) : AZ::EntityId(); - - ScriptCanvas::SlotId variableSlotId; - ScriptCanvas::NodeRequestBus::EventResult(variableSlotId, variableNodeId, &ScriptCanvas::NodeRequests::GetSlotId, ScriptCanvas::PureData::k_getThis); - - ScriptCanvas::Endpoint variableSourceEndpoint(variableNodeId, variableSlotId); - ScriptCanvas::Endpoint targetEndpoint = ConvertToScriptCanvasEndpoint(targetPoint); - - return CanCreateConnectionBetween(variableSourceEndpoint, targetEndpoint).IsSuccess(); - } - - GraphCanvas::ConnectionValidationTooltip Graph::GetVariableAssignmentValidityTooltip(const AZ::EntityId& variableId, const GraphCanvas::Endpoint& targetPoint) const - { - AZStd::any* userData = nullptr; - GraphCanvas::NodeRequestBus::EventResult(userData, variableId, &GraphCanvas::NodeRequests::GetUserData); - AZ::EntityId variableNodeId = (userData && userData->is()) ? *AZStd::any_cast(userData) : AZ::EntityId(); - - ScriptCanvas::SlotId variableSlotId; - ScriptCanvas::NodeRequestBus::EventResult(variableSlotId, variableNodeId, &ScriptCanvas::NodeRequests::GetSlotId, ScriptCanvas::PureData::k_getThis); - - ScriptCanvas::Endpoint variableSourceEndpoint(variableNodeId, variableSlotId); - ScriptCanvas::Endpoint targetEndpoint = ConvertToScriptCanvasEndpoint(targetPoint); - - AZ::Outcome connectionResult = CanCreateConnectionBetween(variableSourceEndpoint, targetEndpoint); - - GraphCanvas::ConnectionValidationTooltip validationTooltip; - - validationTooltip.m_isValid = connectionResult.IsSuccess(); - - if (!connectionResult) - { - validationTooltip.m_failureReason = connectionResult.GetError(); - } - - return validationTooltip; - } - AZStd::string Graph::GetDataTypeString(const AZ::Uuid& typeId) { return TranslationHelper::GetSafeTypeName(ScriptCanvas::Data::FromAZType(typeId)); diff --git a/Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasTraceUtilities.h b/Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasTraceUtilities.h index 381e7c78ea..62050980b6 100644 --- a/Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasTraceUtilities.h +++ b/Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasTraceUtilities.h @@ -20,10 +20,8 @@ #include #include #include -#include #include #include -#include #include #include #include diff --git a/Gems/ScriptCanvas/Code/Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.cpp b/Gems/ScriptCanvas/Code/Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.cpp deleted file mode 100644 index d49b776963..0000000000 --- a/Gems/ScriptCanvas/Code/Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.cpp +++ /dev/null @@ -1,126 +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 "precompiled.h" - -#include - -#include "EntityRefNodeDescriptorComponent.h" - -#include "ScriptCanvas/Core/Datum.h" -#include "ScriptCanvas/Core/PureData.h" -#include "ScriptCanvas/Core/Slot.h" - -namespace ScriptCanvasEditor -{ - ///////////////////////////////////// - // EntityRefNodeDescriptorComponent - ///////////////////////////////////// - - void EntityRefNodeDescriptorComponent::Reflect(AZ::ReflectContext* reflectContext) - { - AZ::SerializeContext* serializeContext = azrtti_cast(reflectContext); - if (serializeContext) - { - serializeContext->Class() - ->Version(1) - ; - } - } - - EntityRefNodeDescriptorComponent::EntityRefNodeDescriptorComponent() - : NodeDescriptorComponent(NodeDescriptorType::EntityRef) - { - } - - void EntityRefNodeDescriptorComponent::OnEntityNameChanged([[maybe_unused]] const AZStd::string& name) - { - UpdateNodeTitle(); - } - - void EntityRefNodeDescriptorComponent::OnSlotInputChanged(const ScriptCanvas::SlotId& slotId) - { - if (slotId == m_endpoint.GetSlotId()) - { - AZ::EntityBus::Handler::BusDisconnect(); - - AZ::EntityId referencedId = GetReferencedEntityId(); - - if (referencedId.IsValid()) - { - AZ::EntityBus::Handler::BusConnect(referencedId); - } - - UpdateNodeTitle(); - } - } - - void EntityRefNodeDescriptorComponent::OnAddedToGraphCanvasGraph([[maybe_unused]] const GraphCanvas::GraphId& sceneId, const AZ::EntityId& scriptCanvasNodeId) - { - ScriptCanvas::SlotId scriptCanvasSlotId; - ScriptCanvas::NodeRequestBus::EventResult(scriptCanvasSlotId, scriptCanvasNodeId, &ScriptCanvas::NodeRequests::GetSlotId, ScriptCanvas::PureData::k_setThis); - - m_endpoint = ScriptCanvas::Endpoint(scriptCanvasNodeId, scriptCanvasSlotId); - - if (m_endpoint.IsValid()) - { - AZ::EntityId referencedId = GetReferencedEntityId(); - - if (referencedId.IsValid()) - { - AZ::EntityBus::Handler::BusConnect(referencedId); - } - } - - UpdateNodeTitle(); - } - - AZ::EntityId EntityRefNodeDescriptorComponent::GetReferencedEntityId() const - { - AZ::EntityId retVal; - - const ScriptCanvas::Datum* object = nullptr; - ScriptCanvas::NodeRequestBus::EventResult(object, m_endpoint.GetNodeId(), &ScriptCanvas::NodeRequests::FindDatum, m_endpoint.GetSlotId()); - - if (object && object->IS_A()) - { - retVal = (*object->GetAs()); - } - - return retVal; - } - - void EntityRefNodeDescriptorComponent::UpdateNodeTitle() - { - bool needsTitle = true; - - if (m_endpoint.IsValid()) - { - AZ::EntityId referencedId = GetReferencedEntityId(); - - AZStd::string entityName; - AZ::ComponentApplicationBus::BroadcastResult(entityName, &AZ::ComponentApplicationRequests::GetEntityName, referencedId); - - if (!entityName.empty()) - { - needsTitle = false; - GraphCanvas::NodeTitleRequestBus::Event(GetEntityId(), &GraphCanvas::NodeTitleRequests::SetTitle, entityName.c_str()); - } - else if (referencedId.IsValid()) - { - needsTitle = false; - GraphCanvas::NodeTitleRequestBus::Event(GetEntityId(), &GraphCanvas::NodeTitleRequests::SetTitle, referencedId.ToString().c_str()); - } - } - - if (needsTitle) - { - GraphCanvas::NodeTitleRequestBus::Event(GetEntityId(), &GraphCanvas::NodeTitleRequests::SetTitle, ""); - } - - GraphCanvas::NodeTitleRequestBus::Event(GetEntityId(), &GraphCanvas::NodeTitleRequests::SetSubTitle, "EntityRef"); - } -} diff --git a/Gems/ScriptCanvas/Code/Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.h b/Gems/ScriptCanvas/Code/Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.h deleted file mode 100644 index af8b55a69d..0000000000 --- a/Gems/ScriptCanvas/Code/Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.h +++ /dev/null @@ -1,48 +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 - -#include - -#include - -#include "Editor/GraphCanvas/Components/NodeDescriptors/NodeDescriptorComponent.h" - -#include "ScriptCanvas/Core/NodeBus.h" -#include "ScriptCanvas/Core/Endpoint.h" - -namespace ScriptCanvasEditor -{ - class EntityRefNodeDescriptorComponent - : public NodeDescriptorComponent - , public AZ::EntityBus::Handler - { - public: - AZ_COMPONENT(EntityRefNodeDescriptorComponent, "{887AE9AC-C793-4FE5-BAE2-AF6A7F70A374}", NodeDescriptorComponent); - static void Reflect(AZ::ReflectContext* reflectContext); - - EntityRefNodeDescriptorComponent(); - ~EntityRefNodeDescriptorComponent() = default; - - // AZ::EntityBus - void OnEntityNameChanged(const AZStd::string& name) override; - //// - - // ScriptCanvas::NodeNotificationsBus - void OnSlotInputChanged(const ScriptCanvas::SlotId& slotId) override; - //// - - private: - - void OnAddedToGraphCanvasGraph(const GraphCanvas::GraphId& graphId, const AZ::EntityId& scriptCanvasNodeId) override; - - AZ::EntityId GetReferencedEntityId() const; - void UpdateNodeTitle(); - - ScriptCanvas::Endpoint m_endpoint; - }; -} diff --git a/Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Components/EditorGraph.h b/Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Components/EditorGraph.h index a32333e5ce..777a84c4fa 100644 --- a/Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Components/EditorGraph.h +++ b/Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Components/EditorGraph.h @@ -160,11 +160,7 @@ namespace ScriptCanvasEditor bool CreateConnection(const GraphCanvas::ConnectionId& connectionId, const GraphCanvas::Endpoint& sourcePoint, const GraphCanvas::Endpoint& targetPoint) override; bool IsValidConnection(const GraphCanvas::Endpoint& sourcePoint, const GraphCanvas::Endpoint& targetPoint) const override; - GraphCanvas::ConnectionValidationTooltip GetConnectionValidityTooltip(const GraphCanvas::Endpoint& sourcePoint, const GraphCanvas::Endpoint& targetPoint) const override; - - bool IsValidVariableAssignment(const AZ::EntityId& variableId, const GraphCanvas::Endpoint& targetPoint) const override; - GraphCanvas::ConnectionValidationTooltip GetVariableAssignmentValidityTooltip(const AZ::EntityId& variableId, const GraphCanvas::Endpoint& targetPoint) const override; - + AZStd::string GetDataTypeString(const AZ::Uuid& typeId) override; void OnRemoveUnusedNodes() override; diff --git a/Gems/ScriptCanvas/Code/Editor/Nodes/NodeCreateUtils.cpp b/Gems/ScriptCanvas/Code/Editor/Nodes/NodeCreateUtils.cpp index a7282f85b0..1ad27566d9 100644 --- a/Gems/ScriptCanvas/Code/Editor/Nodes/NodeCreateUtils.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Nodes/NodeCreateUtils.cpp @@ -26,7 +26,6 @@ #include #include #include -#include namespace ScriptCanvasEditor::Nodes { diff --git a/Gems/ScriptCanvas/Code/Editor/Nodes/NodeDisplayUtils.cpp b/Gems/ScriptCanvas/Code/Editor/Nodes/NodeDisplayUtils.cpp index ba87796161..0c210441fe 100644 --- a/Gems/ScriptCanvas/Code/Editor/Nodes/NodeDisplayUtils.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Nodes/NodeDisplayUtils.cpp @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -231,57 +230,6 @@ namespace ScriptCanvasEditor::Nodes return DisplayGeneralScriptCanvasNode(graphCanvasGraphId, node, nodeConfiguration); } - AZ::EntityId DisplayEntityNode(AZ::EntityId, const ScriptCanvas::Nodes::Entity::EntityRef* entityNode) - { - AZ::EntityId graphCanvasNodeId; - - AZ::Entity* graphCanvasEntity = nullptr; - GraphCanvas::GraphCanvasRequestBus::BroadcastResult(graphCanvasEntity, &GraphCanvas::GraphCanvasRequests::CreateGeneralNode, ".entity"); - AZ_Assert(graphCanvasEntity, "Unable to create GraphCanvas Bus Node"); - - graphCanvasNodeId = graphCanvasEntity->GetId(); - - // Add the icon component - graphCanvasEntity->CreateComponent(ScriptCanvas::Nodes::Entity::EntityRef::RTTI_Type()); - graphCanvasEntity->CreateComponent(); - graphCanvasEntity->CreateComponent(entityNode->GetEntityId()); - graphCanvasEntity->CreateComponent(entityNode->GetEntityId()); - - graphCanvasEntity->Init(); - graphCanvasEntity->Activate(); - - // Set the user data on the GraphCanvas node to be the EntityId of the ScriptCanvas node - AZStd::any* graphCanvasUserData = nullptr; - GraphCanvas::NodeRequestBus::EventResult(graphCanvasUserData, graphCanvasNodeId, &GraphCanvas::NodeRequests::GetUserData); - if (graphCanvasUserData) - { - *graphCanvasUserData = entityNode->GetEntityId(); - } - - // Create the GraphCanvas slots - for (const auto& slot : entityNode->GetSlots()) - { - if (slot.GetDescriptor() == ScriptCanvas::SlotDescriptors::DataOut() && slot.IsVisible()) - { - DisplayScriptCanvasSlot(graphCanvasNodeId, slot); - } - } - - AZ::Entity* sourceEntity = nullptr; - AZ::ComponentApplicationBus::BroadcastResult(sourceEntity, &AZ::ComponentApplicationRequests::FindEntity, entityNode->GetEntityRef()); - - if (sourceEntity) - { - graphCanvasEntity->SetName(AZStd::string::format("GC-EntityRef(%s)", sourceEntity->GetName().data())); - } - else - { - graphCanvasEntity->SetName(AZStd::string::format("GC-EntityRef(%s)", entityNode->GetEntityRef().ToString().c_str())); - } - - return graphCanvasNodeId; - } - static void ConfigureGeneralScriptCanvasEntity(const ScriptCanvas::Node* node, AZ::Entity* graphCanvasEntity, const GraphCanvas::SlotGroup& slotGroup = GraphCanvas::SlotGroups::Invalid) { if (node->RequiresDynamicSlotOrdering()) diff --git a/Gems/ScriptCanvas/Code/Editor/Nodes/NodeDisplayUtils.h b/Gems/ScriptCanvas/Code/Editor/Nodes/NodeDisplayUtils.h index 2ac38d86ed..59c69ea662 100644 --- a/Gems/ScriptCanvas/Code/Editor/Nodes/NodeDisplayUtils.h +++ b/Gems/ScriptCanvas/Code/Editor/Nodes/NodeDisplayUtils.h @@ -45,7 +45,6 @@ namespace ScriptCanvasEditor::Nodes AZ::EntityId DisplayScriptCanvasNode(AZ::EntityId graphCanvasGraphId, const ScriptCanvas::Node* node); // Core Node - AZ::EntityId DisplayEntityNode(AZ::EntityId graphCanvasGraphId, const ScriptCanvas::Nodes::Entity::EntityRef* entityNode); AZ::EntityId DisplayEbusEventNode(AZ::EntityId graphCanvasGraphId, const AZStd::string& busName, const AZStd::string& eventName, const ScriptCanvas::EBusEventId& eventId); AZ::EntityId DisplayEbusWrapperNode(AZ::EntityId graphCanvasGraphId, const ScriptCanvas::Nodes::Core::EBusEventHandler* busNode); AZ::EntityId DisplayGetVariableNode(AZ::EntityId graphCanvasGraphId, const ScriptCanvas::Nodes::Core::GetVariableNode* variableNode); diff --git a/Gems/ScriptCanvas/Code/Editor/Nodes/NodeUtils.cpp b/Gems/ScriptCanvas/Code/Editor/Nodes/NodeUtils.cpp index a0d79f28a3..b3feb37671 100644 --- a/Gems/ScriptCanvas/Code/Editor/Nodes/NodeUtils.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Nodes/NodeUtils.cpp @@ -11,26 +11,10 @@ #include #include -#include #include namespace { - void CopyTranslationKeyedNameToDatumLabel(ScriptCanvas::PureData* node, - const GraphCanvas::TranslationKeyedString& name) - { - ScriptCanvas::SlotId slotId = node->GetSlotId(ScriptCanvas::PureData::k_setThis); - if (!slotId.IsValid()) - { - return; - } - - ScriptCanvas::ModifiableDatumView datumView; - node->FindModifiableDatumView(slotId, datumView); - - datumView.RelabelDatum(name.GetDisplayString()); - } - ScriptCanvas::ConnectionType ToScriptCanvasConnectionType(GraphCanvas::ConnectionType connectionType) { ScriptCanvas::ConnectionType scriptCanvasConnectionType = ScriptCanvas::ConnectionType::Unknown; diff --git a/Gems/ScriptCanvas/Code/Editor/ScriptCanvasEditorGem.cpp b/Gems/ScriptCanvas/Code/Editor/ScriptCanvasEditorGem.cpp index 7a9d917c52..a9aa8cd0e9 100644 --- a/Gems/ScriptCanvas/Code/Editor/ScriptCanvasEditorGem.cpp +++ b/Gems/ScriptCanvas/Code/Editor/ScriptCanvasEditorGem.cpp @@ -53,7 +53,6 @@ #include #include #include -#include #include #include #include @@ -108,7 +107,6 @@ namespace ScriptCanvas ScriptCanvasEditor::ScriptEventReceiverNodeDescriptorComponent::CreateDescriptor(), ScriptCanvasEditor::ScriptEventSenderNodeDescriptorComponent::CreateDescriptor(), ScriptCanvasEditor::EBusSenderNodeDescriptorComponent::CreateDescriptor(), - ScriptCanvasEditor::EntityRefNodeDescriptorComponent::CreateDescriptor(), ScriptCanvasEditor::VariableNodeDescriptorComponent::CreateDescriptor(), ScriptCanvasEditor::GetVariableNodeDescriptorComponent::CreateDescriptor(), ScriptCanvasEditor::SetVariableNodeDescriptorComponent::CreateDescriptor(), diff --git a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp index 787d881318..9c9a19cd9c 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/NodePaletteModel.cpp @@ -23,7 +23,6 @@ #include #include -#include #include #include #include @@ -342,12 +341,6 @@ namespace continue; } - // Detect primitive types os we avoid making nodes out of them. - // Or anything that is 'pure data' and should be populated through a different mechanism. - if (nodeClassData->m_azRtti && nodeClassData->m_azRtti->IsTypeOf()) - { - 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()) { diff --git a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/SpecializedNodePaletteTreeItemTypes.cpp b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/SpecializedNodePaletteTreeItemTypes.cpp index f0290eef10..a214bb7ab8 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/SpecializedNodePaletteTreeItemTypes.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/SpecializedNodePaletteTreeItemTypes.cpp @@ -24,7 +24,6 @@ #include "Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h" #include -#include namespace ScriptCanvasEditor { diff --git a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/VariableNodePaletteTreeItemTypes.cpp b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/VariableNodePaletteTreeItemTypes.cpp index 3c37de8386..c7649174bb 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/VariableNodePaletteTreeItemTypes.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Widgets/NodePalette/VariableNodePaletteTreeItemTypes.cpp @@ -31,7 +31,6 @@ #include #include -#include #include #include diff --git a/Gems/ScriptCanvas/Code/Editor/View/Widgets/ScriptCanvasNodePaletteDockWidget.cpp b/Gems/ScriptCanvas/Code/Editor/View/Widgets/ScriptCanvasNodePaletteDockWidget.cpp index cfe719114f..3d6c9012cc 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Widgets/ScriptCanvasNodePaletteDockWidget.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Widgets/ScriptCanvasNodePaletteDockWidget.cpp @@ -60,7 +60,6 @@ #include #include #include -#include #include #include #include diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts.h index 8e2a748f0f..77ec030fec 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts.h @@ -11,7 +11,6 @@ #include "Contracts/DisallowReentrantExecutionContract.h" #include "Contracts/DisplayGroupConnectedSlotLimitContract.h" #include "Contracts/DynamicTypeContract.h" -#include "Contracts/ExclusivePureDataContract.h" #include "Contracts/IsReferenceTypeContract.h" #include "Contracts/MathOperatorContract.h" #include "Contracts/MethodOverloadContract.h" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.cpp deleted file mode 100644 index b546a4364d..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.cpp +++ /dev/null @@ -1,56 +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 "ExclusivePureDataContract.h" -#include -#include -#include -#include -#include - -namespace ScriptCanvas -{ - AZ::Outcome ExclusivePureDataContract::HasNoPureDataConnection(const Slot& dataInputSlot) const - { - bool isOnPureDataThread(true); - NodeRequestBus::EventResult(isOnPureDataThread, dataInputSlot.GetNodeId(), &NodeRequests::IsOnPureDataThread, dataInputSlot.GetId()); - - if (!isOnPureDataThread) - { - return AZ::Success(); - } - - return AZ::Failure(AZStd::string("There is already a pure data input into this slot")); - } - - AZ::Outcome ExclusivePureDataContract::OnEvaluate(const Slot& sourceSlot, const Slot& targetSlot) const - { - if (sourceSlot.GetDescriptor().CanConnectTo(targetSlot.GetDescriptor())) - { - if (sourceSlot.GetDescriptor().IsInput()) - { - return HasNoPureDataConnection(sourceSlot); - } - else if (targetSlot.GetDescriptor().IsInput()) - { - return HasNoPureDataConnection(targetSlot); - } - } - - return AZ::Failure(AZStd::string("invalid data connection attempted")); - } - - void ExclusivePureDataContract::Reflect(AZ::ReflectContext* reflection) - { - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.h deleted file mode 100644 index 5e5865fb06..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.h +++ /dev/null @@ -1,30 +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 - -#include - -namespace ScriptCanvas -{ - class ExclusivePureDataContract - : public Contract - { - public: - AZ_CLASS_ALLOCATOR(ExclusivePureDataContract, AZ::SystemAllocator, 0); - AZ_RTTI(ExclusivePureDataContract, "{E48A0B26-B6B7-4AF3-9341-9E5C5C1F0DE8}", Contract); - - // no multiple literals, variables, defaults, gets, or any other new form of data that can be routed without getting pushed by execution - ~ExclusivePureDataContract() override = default; - - static void Reflect(AZ::ReflectContext* reflection); - - protected: - AZ::Outcome OnEvaluate(const Slot& sourceSlot, const Slot& targetSlot) const override; - - AZ::Outcome HasNoPureDataConnection(const Slot& dataInputSlot) const; - }; -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Graph.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Graph.cpp index a1791509b0..16edeaff5d 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Graph.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Graph.cpp @@ -23,7 +23,6 @@ #include #include #include -#include #include #include diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NativeDatumNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NativeDatumNode.h deleted file mode 100644 index 70c30198d5..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NativeDatumNode.h +++ /dev/null @@ -1,133 +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 - -#include -#include -#include -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - template - class NativeDatumNode - : public PureData - { - public: - using t_ThisType = NativeDatumNode; - - AZ_RTTI(((NativeDatumNode), "{B7D8D8D6-B2F1-481A-A712-B07D1C19555F}", t_Node, t_Datum), PureData, AZ::Component); - AZ_COMPONENT_INTRUSIVE_DESCRIPTOR_TYPE(NativeDatumNode); - AZ_COMPONENT_BASE(NativeDatumNode, PureData); - - static void Reflect(AZ::ReflectContext* reflection) - { - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("NativeDatumNode", "") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ; - } - } - } - - ~NativeDatumNode() override = default; - - protected: - virtual void ConfigureSetters() - { - Data::SetterContainer setterWrappers = Data::ExplodeToSetters(Data::FromAZType(Data::Traits::GetAZType())); - for (const auto& setterWrapperPair : setterWrappers) - { - SlotId setterSlotId; - const Data::SetterWrapper& setterWrapper = setterWrapperPair.second; - const AZStd::string argName = AZStd::string::format("%s: %s", Data::GetName(setterWrapper.m_propertyType).data(), setterWrapper.m_propertyName.data()); - AZStd::string_view argumentTooltip; - // Add the slot if it doesn't exist - setterSlotId = FindSlotIdForDescriptor(argName, SlotDescriptors::DataIn()); - - if (!setterSlotId.IsValid()) - { - DataSlotConfiguration slotConfiguration; - - slotConfiguration.m_name = argName; - slotConfiguration.m_toolTip = argumentTooltip; - slotConfiguration.SetType(setterWrapper.m_propertyType); - slotConfiguration.SetConnectionType(ConnectionType::Input); - - setterSlotId = AddSlot(slotConfiguration); - } - - if (setterSlotId.IsValid()) - { - m_propertyAccount.m_getterSetterIdPairs[setterWrapperPair.first].second = setterSlotId; - m_propertyAccount.m_settersByInputSlot.emplace(setterSlotId, setterWrapperPair.second); - } - } - } - - virtual void ConfigureGetters() - { - Data::GetterContainer getterWrappers = Data::ExplodeToGetters(Data::FromAZType(Data::Traits::GetAZType())); - for (const auto& getterWrapperPair : getterWrappers) - { - SlotId getterSlotId; - - const Data::GetterWrapper& getterWrapper = getterWrapperPair.second; - const AZStd::string resultSlotName(AZStd::string::format("%s: %s", getterWrapper.m_propertyName.data(), Data::GetName(getterWrapper.m_propertyType).data())); - // Add the slot if it doesn't exist - - getterSlotId = FindSlotIdForDescriptor(resultSlotName, SlotDescriptors::DataOut()); - - if (!getterSlotId.IsValid()) - { - DataSlotConfiguration slotConfiguration; - - slotConfiguration.m_name = resultSlotName; - slotConfiguration.SetType(getterWrapper.m_propertyType); - slotConfiguration.SetConnectionType(ConnectionType::Output); - - getterSlotId = AddSlot(slotConfiguration); - } - - if (getterSlotId.IsValid()) - { - m_propertyAccount.m_getterSetterIdPairs[getterWrapperPair.first].first = getterSlotId; - m_propertyAccount.m_gettersByInputSlot.emplace(getterSlotId, getterWrapperPair.second); - } - } - } - - virtual void ConfigureProperties() - { - if (IsConfigured()) - { - return; - } - - ConfigureGetters(); - ConfigureSetters(); - m_configured = true; - } - - void OnInit() override - { - AddInputAndOutputTypeSlot(Data::FromAZType()); - ConfigureProperties(); - } - }; - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Node.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Node.cpp index f0faf324c1..8d61eef3a0 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Node.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Node.cpp @@ -19,11 +19,9 @@ #include #include #include -#include #include #include #include -#include #include #include #include @@ -48,9 +46,7 @@ namespace NodeCpp // add your named version above Current, - }; - - + }; } namespace ScriptCanvas @@ -397,7 +393,6 @@ namespace ScriptCanvas void Node::Reflect(AZ::ReflectContext* context) { Slot::Reflect(context); - ExclusivePureDataContract::Reflect(context); Nodes::NodeableNode::Reflect(context); // Version Conversion Reflection @@ -730,26 +725,11 @@ namespace ScriptCanvas // for each output slot... // for each connected node... // remove the ability to default it... - // ...and until a more viable solution is available, variable get input in another node must be exclusive - + EndpointsResolved connections = GetConnectedNodes(inputSlot); if (!connections.empty()) { - bool isConnectedToPureData = false; - - for (auto& nodePtrSlotId : connections) - { - if (azrtti_cast(nodePtrSlotId.first)) - { - isConnectedToPureData = true; - break; - } - } - - if (!isConnectedToPureData) - { - m_possiblyStaleInput.insert(slotId); - } + m_possiblyStaleInput.insert(slotId); } } } @@ -804,9 +784,7 @@ namespace ScriptCanvas bool Node::IsTargetInDataFlowPath(const Node* targetNode) const { AZStd::unordered_set path; - return azrtti_cast(this) - || azrtti_cast(targetNode) - || (targetNode && IsTargetInDataFlowPath(targetNode->GetEntityId(), path)); + return (targetNode && IsTargetInDataFlowPath(targetNode->GetEntityId(), path)); } bool Node::IsTargetInDataFlowPath(const ID& targetNodeId, AZStd::unordered_set& path) const diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NodeFunctionGeneric.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NodeFunctionGeneric.h index 95fc23c5d5..ca88c5179a 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NodeFunctionGeneric.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/NodeFunctionGeneric.h @@ -316,6 +316,9 @@ namespace ScriptCanvas #define SCRIPT_CANVAS_GENERICS_TO_VM(GenericClass, ReflectClass, BehaviorContext, CategoryName)\ GenericClass::Reflect(BehaviorContext, ScriptCanvas::Translation::Context::GetCategoryLibraryName(CategoryName).c_str()); +#define SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(GenericClass, BehaviorContext, CategoryName)\ + GenericClass::Reflect(BehaviorContext, ScriptCanvas::Translation::Context::GetCategoryLibraryName(CategoryName).c_str()); + template class RegistrarGeneric { @@ -332,6 +335,13 @@ namespace ScriptCanvas SCRIPT_CANVAS_CALL_ON_INDEX_SEQUENCE(nodes.push_back({ azrtti_typeid(), AZ::AzTypeInfo::Name() })); } + static void Reflect(AZ::BehaviorContext* behaviorContext, const char* libraryName) + { + auto reflection = behaviorContext->Class>(libraryName); + reflection->Attribute(AZ::ScriptCanvasAttributes::VariableCreationForbidden, AZ::AttributeIsValid::IfPresent)->Attribute(AZ::ScriptCanvasAttributes::Internal::ImplementedAsNodeGeneric, true); + SCRIPT_CANVAS_CALL_ON_INDEX_SEQUENCE(reflection->Method(t_Node::GetNodeFunctionName(), t_Node::GetFunction())->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::ExcludeFlags::List | AZ::Script::Attributes::ExcludeFlags::Documentation)); + } + template static void Reflect(AZ::BehaviorContext* behaviorContext, const char* libraryName) { diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/PureData.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/PureData.cpp deleted file mode 100644 index 44d087e8a5..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/PureData.cpp +++ /dev/null @@ -1,230 +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 "PureData.h" - -namespace ScriptCanvas -{ - const char* PureData::k_getThis("Get"); - const char* PureData::k_setThis("Set"); - - PureData::~PureData() - { - - } - - const AZStd::unordered_map>& PureData::GetPropertyNameSlotMap() const - { - return m_propertyAccount.m_getterSetterIdPairs; - } - - void PureData::AddInputAndOutputTypeSlot(const Data::Type& type, const void* source) - { - { - DataSlotConfiguration slotConfiguration; - - slotConfiguration.m_name = k_setThis; - slotConfiguration.SetConnectionType(ConnectionType::Input); - slotConfiguration.ConfigureDatum(AZStd::move(Datum(type, Datum::eOriginality::Original, source, AZ::Uuid::CreateNull()))); - - AddSlot(slotConfiguration); - } - - { - DataSlotConfiguration slotConfiguration; - - slotConfiguration.m_name = k_getThis; - slotConfiguration.SetConnectionType(ConnectionType::Output); - slotConfiguration.SetType(type); - - AddSlot(slotConfiguration); - } - } - - void PureData::AddInputTypeAndOutputTypeSlot(const Data::Type& type) - { - { - DataSlotConfiguration slotConfiguration; - - slotConfiguration.m_name = k_setThis; - slotConfiguration.SetConnectionType(ConnectionType::Input); - slotConfiguration.SetType(type); - - AddSlot(slotConfiguration); - } - - { - DataSlotConfiguration slotConfiguration; - - slotConfiguration.m_name = k_getThis; - slotConfiguration.SetConnectionType(ConnectionType::Output); - slotConfiguration.SetType(type); - - AddSlot(slotConfiguration); - } - } - - void PureData::OnActivate() - { - PushThis(); - - for (const auto& propertySlotIdsPair : m_propertyAccount.m_getterSetterIdPairs) - { - const SlotId& getterSlotId = propertySlotIdsPair.second.first; - CallGetter(getterSlotId); - } - } - - void PureData::OnInputChanged(const Datum& input, [[maybe_unused]] const SlotId& id) - { - if (IsActivated()) - { - OnOutputChanged(input); - } - } - - AZStd::string_view PureData::GetInputDataName() const - { - return k_setThis; - } - - AZStd::string_view PureData::GetOutputDataName() const - { - return k_getThis; - } - - void PureData::CallGetter(const SlotId& getterSlotId) - { - auto getterFuncIt = m_propertyAccount.m_gettersByInputSlot.find(getterSlotId); - Slot* getterSlot = GetSlot(getterSlotId); - if (getterSlot && getterFuncIt != m_propertyAccount.m_gettersByInputSlot.end()) - { - AZStd::vector> outputNodes(ModConnectedNodes(*getterSlot)); - - if (!outputNodes.empty()) - { - auto getterOutcome = getterFuncIt->second.m_getterFunction((*FindDatum(GetSlotId(k_setThis)))); - if (!getterOutcome) - { - SCRIPTCANVAS_REPORT_ERROR((*this), getterOutcome.GetError().data()); - return; - } - - - for (auto& nodePtrSlot : outputNodes) - { - if (nodePtrSlot.first) - { - Node::SetInput(*nodePtrSlot.first, nodePtrSlot.second, getterOutcome.GetValue()); - } - } - } - } - } - - void PureData::SetInput(const Datum& input, const SlotId& id) - { - if (id == FindSlotIdForDescriptor(GetInputDataName(), SlotDescriptors::DataIn())) - { - // push this value, as usual - Node::SetInput(input, id); - - // now, call every getter, as every property has (presumably) been changed - for (const auto& propertyNameSlotIdsPair : m_propertyAccount.m_getterSetterIdPairs) - { - const SlotId& getterSlotId = propertyNameSlotIdsPair.second.first; - CallGetter(getterSlotId); - } - } - else - { - SetProperty(input, id); - } - } - - void PureData::SetInput(Datum&& input, const SlotId& id) - { - if (id == FindSlotIdForDescriptor(GetInputDataName(), SlotDescriptors::DataIn())) - { - // push this value, as usual - Node::SetInput(AZStd::move(input), id); - - if (IsActivated()) - { - // now, call every getter, as every property has (presumably) been changed - for (const auto& propertyNameSlotIdsPair : m_propertyAccount.m_getterSetterIdPairs) - { - const SlotId& getterSlotId = propertyNameSlotIdsPair.second.first; - CallGetter(getterSlotId); - } - } - } - else - { - SetProperty(AZStd::move(input), id); - } - } - - void PureData::SetProperty(const Datum& input, const SlotId& setterId) - { - auto methodBySlotIter = m_propertyAccount.m_settersByInputSlot.find(setterId); - if (methodBySlotIter == m_propertyAccount.m_settersByInputSlot.end()) - { - AZ_Error("Script Canvas", false, "BehaviorContextObject SlotId %s did not route to a setter", setterId.m_id.ToString().data()); - return; - } - if (!methodBySlotIter->second.m_setterFunction) - { - AZ_Error("Script Canvas", false, "BehaviorContextObject setter is not invocable for SlotId %s is nullptr", setterId.m_id.ToString().data()); - return; - } - - ModifiableDatumView datumView; - FindModifiableDatumView(GetSlotId(k_setThis), datumView); - - Datum* datum = datumView.ModifyDatum(); - - auto setterOutcome = methodBySlotIter->second.m_setterFunction((*datum), input); - - if (!setterOutcome) - { - SCRIPTCANVAS_REPORT_ERROR((*this), setterOutcome.TakeError().data()); - return; - } - - datumView.SignalModification(); - - PushThis(); - - auto getterSetterIt = m_propertyAccount.m_getterSetterIdPairs.find(methodBySlotIter->second.m_propertyName); - - if (getterSetterIt != m_propertyAccount.m_getterSetterIdPairs.end()) - { - CallGetter(getterSetterIt->second.first); - } - } - - - void PureData::Reflect(AZ::ReflectContext* reflectContext) - { - AZ::SerializeContext* serializeContext = azrtti_cast(reflectContext); - if (serializeContext) - { - serializeContext->Class() - ->Version(0) - ; - - AZ::EditContext* editContext = serializeContext->GetEditContext(); - if (editContext) - { - editContext->Class("PureData", "") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ; - } - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/PureData.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/PureData.h deleted file mode 100644 index 01c52d7378..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/PureData.h +++ /dev/null @@ -1,111 +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 - -#include -#include -#include -#include - -namespace AZ -{ - class BehaviorClass; - struct BehaviorValueParameter; - class ReflectContext; -} - -namespace ScriptCanvas -{ - struct PropertyAccount - { - AZStd::unordered_map m_gettersByInputSlot; - AZStd::unordered_map m_settersByInputSlot; - // The first slot id of the pair is the Getter SlotId, the second slot id of the pair is the Setter SlotID - AZStd::unordered_map> m_getterSetterIdPairs; - }; - - class PureData - : public Node - { - public: - AZ_COMPONENT(PureData, "{8B80FF54-0786-4FEE-B4A3-12907EBF8B75}", Node); - - static void Reflect(AZ::ReflectContext* reflectContext); - static const char* k_getThis; - static const char* k_setThis; - - const AZStd::unordered_map>& GetPropertyNameSlotMap() const; - - AZ_INLINE AZ::Outcome GetDependencies() const override { return AZ::Success(DependencyReport{}); } - - ~PureData() override; - - protected: - void AddInputAndOutputTypeSlot(const Data::Type& type, const void* defaultValue = nullptr); - template - void AddDefaultInputAndOutputTypeSlot(DatumType&& defaultValue); - void AddInputTypeAndOutputTypeSlot(const Data::Type& type); - - bool IsDeprecated() const override { return true; } - - void OnActivate() override; - void OnInputChanged(const Datum& input, const SlotId& id) override; - void MarkDefaultableInput() override {} - - AZ_INLINE void OnOutputChanged(const Datum& output) const - { - Slot* slot = GetSlotByName(GetOutputDataName()); - if (slot) - { - OnOutputChanged(output, (*slot)); - } - } - - AZ_INLINE void OnOutputChanged(const Datum& output, const Slot& outputSlot) const - { - PushOutput(output, outputSlot); - } - - // push data out - AZ_INLINE void PushThis() - { - auto slotId = GetSlotId(GetInputDataName()); - - if (auto setDatum = FindDatum(slotId)) - { - OnInputChanged(*setDatum, slotId); - } - else - { - SCRIPTCANVAS_REPORT_ERROR((*this), "No input datum in a PureData class %s. You must push your data manually in OnActivate() if no input is connected!"); - } - } - - AZStd::string_view GetInputDataName() const; - AZStd::string_view GetOutputDataName() const; - - void SetInput(const Datum& input, const SlotId& id) override; - void SetInput(Datum&& input, const SlotId& id) override; - void SetProperty(const Datum& input, const SlotId& id); - void CallGetter(const SlotId& getterSlotId); - bool IsConfigured() { return m_configured; } - - PropertyAccount m_propertyAccount; - bool m_configured = false; - }; - - template - void PureData::AddDefaultInputAndOutputTypeSlot(DatumType&& defaultValue) - { - AddInputDatumSlot(GetInputDataName(), "", Datum::eOriginality::Original, AZStd::forward(defaultValue)); - AddOutputTypeSlot(GetOutputDataName(), "", Data::FromAZType(azrtti_typeid>()), OutputStorage::Optional); - } - - template<> - void PureData::AddDefaultInputAndOutputTypeSlot(Data::Type&&) = delete; -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Slot.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Slot.cpp index 5b117dc4a9..2517c0c7ed 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Slot.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Slot.cpp @@ -231,12 +231,6 @@ namespace ScriptCanvas // Add the slot type contract by default, It is used for filtering input/output slots and flow/data slots m_contracts.emplace_back(AZStd::make_unique()); - // Every DataIn slot has a contract validating that only 1 connection from any PureData node is allowed - if (IsData() && IsInput()) - { - AddContract({ []() { return aznew ExclusivePureDataContract(); } }); - } - for (const auto& contractDesc : slotConfiguration.m_contractDescs) { AddContract(contractDesc); diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Assign.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Assign.cpp deleted file mode 100644 index 39faae9f0a..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Assign.cpp +++ /dev/null @@ -1,88 +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 "Assign.h" - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Core - { - void Assign::OnInit() - { - AddSlot("In", "", SlotType::ExecutionIn); - AddSlot("Out", "", SlotType::ExecutionOut); - AddInputDatumDynamicTypedSlot("Source"); - AddSlot("Target", "", SlotType::DataOut); - } - - Data::Type Assign::GetSlotDataType(const SlotId& slotId) const - { - if (Slot* sourceSlot = GetSlot(GetSlotId("Source"))) - { - auto inputs = GetConnectedNodes(*sourceSlot); - // contracts should enforce this, but in case it breaks... - if (inputs.size() == 1) - { - auto input = *inputs.begin(); - return input.first->GetSlotDataType(input.second); - } - else - { - AZ_Error("ScriptCanvas", (inputs.size() == 0), "Multiple inputs to 'Assign' are forbidden"); - } - } - - return Data::Type::Invalid(); - } - - void Assign::OnInputSignal(const SlotId&) - { - if (auto input = GetDatumByIndex(k_sourceInputIndex)) - { - PushOutput(*input, *GetSlotByIndex(k_targetSlotIndex)); - } - - SignalOutput(GetSlotId("Out")); - } - - AZStd::Outcome Assign::SlotAcceptsType(const SlotId& slotID, const Data::Type& type) const - { - Slot* sourceSlot = GetSlot(GetSlotId("Source")); - Slot* targetSlot = GetSlot(GetSlotId("Target")); - - if (sourceSlot == nullptr - || targetSlot == nullptr) - { - return AZ::Failure(AZStd::string("Unable to find all necessary slots on node");) - } - - return DynamicSlotAcceptsType(slotID, type, Node::DynamicTypeArity::Single, *targetSlot, AZStd::vector{sourceSlot}); - } - - void Assign::Reflect(AZ::ReflectContext* reflectContext) - { - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflectContext)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Assign", "") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::ExcludeFlags::All) - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") - ; - } - } - } - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Assign.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Assign.h deleted file mode 100644 index 89d164f3d2..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Assign.h +++ /dev/null @@ -1,39 +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 - -#include -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Core - { - class Assign - : public Node - { - public: - AZ_COMPONENT(Assign, "{E734ADCE-D822-4487-9681-5A80D8E4D263}", Node); - - static void Reflect(AZ::ReflectContext* reflectContext); - - protected: - static const int k_sourceInputIndex = 0; - static const int k_targetSlotIndex = 3; - - Data::Type GetSlotDataType(const SlotId& slotId) const override; - void OnInit() override; - void OnInputSignal(const SlotId&) override; - AZ::Outcome SlotAcceptsType(const SlotId&, const Data::Type&) const override; - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.cpp deleted file mode 100644 index c4d3b6f302..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.cpp +++ /dev/null @@ -1,216 +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 "BehaviorContextObjectNode.h" - -#include -#include -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Core - { - namespace Internal - { - static const AZ::u32 k_thisParamIndex(0); - static const AZ::u32 k_setValueParamIndex(1); - static const AZ::u32 k_firstFirstPropertyDataSlotIndex(2); - static const AZ::u32 k_valueArgumentIndex(1); - static const char* k_setThis("Set"); - } - - AZStd::string BehaviorContextObjectNode::GetDebugName() const - { - if (auto input = FindDatum(GetSlotId(Internal::k_setThis))) - { - return Data::GetName(input->GetType()); - } - - return "Invalid"; - } - - void BehaviorContextObjectNode::InitializeObject(const AZ::Uuid& azType) - { - // \todo this works with basic types, and it probably shouldn't - if (auto bcClass = AZ::BehaviorContextHelper::GetClass(azType)) - { - InitializeObject(*bcClass); - } - else - { - const void* defaultValue = nullptr; - if (Data::IsEntityID(azType)) - { - defaultValue = &ScriptCanvas::GraphOwnerId; - } - AddInputAndOutputTypeSlot(Data::FromAZType(azType), defaultValue); - } - } - - void BehaviorContextObjectNode::InitializeObject(const AZStd::string& classNameString) - { - if (auto bcClass = AZ::BehaviorContextHelper::GetClass(classNameString)) - { - InitializeObject(*bcClass); - } - } - - void BehaviorContextObjectNode::InitializeObject(const AZ::BehaviorClass& behaviorClass) - { - m_className = behaviorClass.m_name; - const void* defaultValue = nullptr; - if (Data::IsEntityID(behaviorClass.m_typeId)) - { - defaultValue = &ScriptCanvas::GraphOwnerId; - } - AddInputAndOutputTypeSlot(Data::FromAZType(behaviorClass.m_typeId), defaultValue); - ConfigureProperties(behaviorClass); - } - - void BehaviorContextObjectNode::InitializeObject(const Data::Type& type) - { - if (auto bcClass = AZ::BehaviorContextHelper::GetClass(type.GetAZType())) - { - InitializeObject(*bcClass); - } - } - - void BehaviorContextObjectNode::ConfigureSetters(const AZ::BehaviorClass& behaviorClass) - { - Data::SetterContainer setterWrappers = Data::ExplodeToSetters(Data::FromAZType(behaviorClass.m_typeId)); - for (const auto& setterWrapperPair : setterWrappers) - { - SlotId setterSlotId; - auto propertyIt = behaviorClass.m_properties.find(setterWrapperPair.first); - if (propertyIt != behaviorClass.m_properties.end()) - { - const Data::SetterWrapper& setterWrapper = setterWrapperPair.second; - const AZStd::string argName = AZStd::string::format("%s: %s", Data::GetName(setterWrapper.m_propertyType).data(), setterWrapper.m_propertyName.data()); - const AZStd::string* argumentTooltipPtr = propertyIt->second->m_setter->GetArgumentToolTip(Internal::k_setValueParamIndex); - AZStd::string_view argumentTooltip = argumentTooltipPtr ? AZStd::string_view(*argumentTooltipPtr) : AZStd::string_view{}; - - // Add the slot if it doesn't exist - setterSlotId = FindSlotIdForDescriptor(argName, SlotDescriptors::DataIn()); - - if (!setterSlotId.IsValid()) - { - DataSlotConfiguration slotConfiguration; - - slotConfiguration.m_name = argName; - slotConfiguration.m_toolTip = argumentTooltip; - slotConfiguration.SetType(setterWrapper.m_propertyType); - slotConfiguration.SetConnectionType(ConnectionType::Input); - - setterSlotId = AddSlot(slotConfiguration); - } - - } - if (setterSlotId.IsValid()) - { - m_propertyAccount.m_getterSetterIdPairs[setterWrapperPair.first].second = setterSlotId; - m_propertyAccount.m_settersByInputSlot.emplace(setterSlotId, setterWrapperPair.second); - } - } - } - - void BehaviorContextObjectNode::ConfigureGetters(const AZ::BehaviorClass& behaviorClass) - { - Data::GetterContainer getterWrappers = Data::ExplodeToGetters(Data::FromAZType(behaviorClass.m_typeId)); - for (const auto& getterWrapperPair : getterWrappers) - { - SlotId getterSlotId; - auto propertyIt = behaviorClass.m_properties.find(getterWrapperPair.first); - if (propertyIt != behaviorClass.m_properties.end()) - { - const Data::GetterWrapper& getterWrapper = getterWrapperPair.second; - const AZStd::string resultSlotName(AZStd::string::format("%s: %s", getterWrapper.m_propertyName.data(), Data::GetName(getterWrapper.m_propertyType).data())); - - // Add the slot if it doesn't exist - getterSlotId = FindSlotIdForDescriptor(resultSlotName, SlotDescriptors::DataOut()); - - if (!getterSlotId.IsValid()) - { - DataSlotConfiguration slotConfiguration; - - slotConfiguration.m_name = resultSlotName; - slotConfiguration.SetType(getterWrapper.m_propertyType); - slotConfiguration.SetConnectionType(ConnectionType::Output); - - getterSlotId = AddSlot(slotConfiguration); - } - - } - if (getterSlotId.IsValid()) - { - m_propertyAccount.m_getterSetterIdPairs[getterWrapperPair.first].first = getterSlotId; - m_propertyAccount.m_gettersByInputSlot.emplace(getterSlotId, getterWrapperPair.second); - } - } - } - - void BehaviorContextObjectNode::ConfigureProperties(const AZ::BehaviorClass& behaviorClass) - { - if (IsConfigured()) - { - return; - } - - ConfigureGetters(behaviorClass); - ConfigureSetters(behaviorClass); - m_configured = true; - } - - void BehaviorContextObjectNode::OnInit() - { - if (auto input = FindDatum(GetSlotId(k_setThis))) - { - if (!input->Empty()) - { - AddInputTypeAndOutputTypeSlot(input->GetType()); - } - } - } - - void BehaviorContextObjectNode::OnWriteEnd() - { - AZStd::lock_guard lock(m_mutex); - - auto bcClass = !m_className.empty() ? AZ::BehaviorContextHelper::GetClass(m_className) : nullptr; - - if (bcClass) - { - ConfigureProperties(*bcClass); - } - } - - - void BehaviorContextObjectNode::Reflect(AZ::ReflectContext* reflectContext) - { - if (auto serializeContext = azrtti_cast(reflectContext)) - { - serializeContext->Class() - ->Version(1) - ->EventHandler>() - ->Field("m_className", &BehaviorContextObjectNode::m_className) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("BehaviorContextObjectNode", "BehaviorContextObjectNode") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::ExcludeFlags::List) - ; - } - } - } - - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.h deleted file mode 100644 index 88680fd0a3..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.h +++ /dev/null @@ -1,73 +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 - -#include -#include -#include -#include - -namespace AZ -{ - class BehaviorClass; - struct BehaviorValueParameter; - class ReflectContext; -} - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Core - { - class BehaviorContextObjectNode - : public PureData - { - public: - //\todo move to behavior context - enum ParameterCount - { - Getter = 1, - Setter = 2, - }; - - AZ_COMPONENT(BehaviorContextObjectNode, "{4344869D-2543-4FA3-BCD0-B6DB1E815928}", PureData); - - static void Reflect(AZ::ReflectContext* reflectContext); - - BehaviorContextObjectNode() = default; - - ~BehaviorContextObjectNode() override = default; - - AZStd::string GetDebugName() const override; - - void InitializeObject(const AZ::Uuid& azType); - - void InitializeObject(const AZStd::string& classNameString); - - void InitializeObject(const Data::Type& type); - - void OnWriteEnd(); - - protected: - void InitializeObject(const AZ::BehaviorClass& behaviorClass); - void OnInit() override; - - virtual void ConfigureSetters(const AZ::BehaviorClass& behaviorClass); - virtual void ConfigureGetters(const AZ::BehaviorClass& behaviorClass); - void ConfigureProperties(const AZ::BehaviorClass& behaviorClass); - - private: - AZStd::recursive_mutex m_mutex; // post-serialization - AZStd::string m_className; - - BehaviorContextObjectNode(const BehaviorContextObjectNode&) = delete; - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BinaryOperator.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BinaryOperator.h index 92890b2842..eb44ce5db1 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BinaryOperator.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/BinaryOperator.h @@ -10,7 +10,6 @@ #include #include #include -#include #include namespace ScriptCanvas diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp index f5a9148231..3c02099403 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp @@ -103,9 +103,7 @@ namespace ScriptCanvas AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); @@ -128,9 +126,7 @@ namespace ScriptCanvas ScriptCanvas::Nodes::Core::ErrorHandler::CreateDescriptor(), ScriptCanvas::Nodes::Core::Method::CreateDescriptor(), ScriptCanvas::Nodes::Core::MethodOverloaded::CreateDescriptor(), - ScriptCanvas::Nodes::Core::BehaviorContextObjectNode::CreateDescriptor(), ScriptCanvas::Nodes::Core::Start::CreateDescriptor(), - ScriptCanvas::Nodes::Core::String::CreateDescriptor(), ScriptCanvas::Nodes::Core::EBusEventHandler::CreateDescriptor(), ScriptCanvas::Nodes::Core::AzEventHandler::CreateDescriptor(), ScriptCanvas::Nodes::Core::ExtractProperty::CreateDescriptor(), diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.h index 2551dfb4b1..567304ee37 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.h @@ -10,7 +10,6 @@ // This header is only meant to include the nodes and should not contain // shared code -#include "BehaviorContextObjectNode.h" #include "EBusEventHandler.h" #include "Error.h" #include "ErrorHandler.h" @@ -28,4 +27,3 @@ #include "SendScriptEvent.h" #include "SetVariable.h" #include "Start.h" -#include "String.h" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ErrorHandler.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ErrorHandler.cpp index a53eb18cbb..06485f5e0a 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ErrorHandler.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ErrorHandler.cpp @@ -9,7 +9,6 @@ #include #include -#include namespace ScriptCanvas { diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.cpp index c97654c1d8..574ccaeecb 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.cpp @@ -5,8 +5,6 @@ * */ #include -#include - #include namespace ScriptCanvas @@ -64,31 +62,6 @@ namespace ScriptCanvas return m_dataType; } - void ExtractProperty::OnInputSignal(const SlotId& slotID) - { - if (slotID == GetSlotId(GetInputSlotName())) - { - if (auto input = FindDatum(ExtractPropertyProperty::GetSourceSlotId(this))) - { - for(auto&& propertyAccount : m_propertyAccounts) - { - Slot* propertySlot = GetSlot(propertyAccount.m_propertySlotId); - if (propertySlot && propertyAccount.m_getterFunction) - { - auto outputOutcome = propertyAccount.m_getterFunction(*input); - if (!outputOutcome) - { - SCRIPTCANVAS_REPORT_ERROR((*this), outputOutcome.TakeError().data()); - return; - } - PushOutput(outputOutcome.TakeValue(), *propertySlot); - } - } - } - SignalOutput(GetSlotId(GetOutputSlotName())); - } - } - void ExtractProperty::AddPropertySlots(const Data::Type& type) { AZStd::unordered_map versionedInfo; diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.h index eb255c8f09..7cde7401db 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.h @@ -47,14 +47,10 @@ namespace ScriptCanvas protected: - bool IsPropertySlot(const SlotId& slotId) const; - void OnInit() override; UpdateResult OnUpdateNode() override; - void OnInputSignal(const SlotId&) override; - void OnSlotDisplayTypeChanged(const SlotId& slotId, const Data::Type& dataType) override; void AddPropertySlots(const Data::Type& type); diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.cpp index 6584f795b8..496b164726 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.cpp @@ -6,7 +6,6 @@ */ #include -#include #include #include diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/String.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/String.h deleted file mode 100644 index 712d3d808f..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/String.h +++ /dev/null @@ -1,47 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Core - { - - class String - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(String, "{9C9B9D96-1838-4493-A14D-40C77B4DB5DD}", ParentType); - - static void Reflect(AZ::ReflectContext* context) - { - if (AZ::SerializeContext* serializeContext = azrtti_cast(context)) - { - serializeContext->Class() - ->Version(3) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("String", "Holds a string value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/String.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/UnaryOperator.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/UnaryOperator.cpp index 43d84f0e28..1695c1d4d3 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/UnaryOperator.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/UnaryOperator.cpp @@ -18,17 +18,6 @@ namespace ScriptCanvas const char* UnaryOperator::k_valueName = "Value"; const char* UnaryOperator::k_resultName = "Result"; - Datum UnaryOperator::Evaluate([[maybe_unused]] const Datum& value) - { - AZ_Assert(false, "Evaluate must be overridden"); - return Datum(); - }; - - void UnaryOperator::OnInputSignal([[maybe_unused]] const SlotId& slot) - { - AZ_Assert(false, "OnInputSignal must be overridden"); - } - void UnaryOperator::ConfigureSlots() { { @@ -68,25 +57,6 @@ namespace ScriptCanvas { } - void UnaryExpression::OnInputSignal(const SlotId&) - { - const Datum output = Evaluate(*FindDatumByIndex(k_datumIndex)); - if (auto slot = GetSlot(GetOutputSlotId())) - { - PushOutput(output, *slot); - } - - const bool* value = output.GetAs(); - if (value && *value) - { - SignalOutput(GetSlotId(k_onTrue)); - } - else - { - SignalOutput(GetSlotId(k_onFalse)); - } - } - void UnaryExpression::ConfigureSlots() { { diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/UnaryOperator.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/UnaryOperator.h index d2188f0b3c..9805c6d9ef 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/UnaryOperator.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/UnaryOperator.h @@ -10,7 +10,6 @@ #include #include #include -#include #include namespace ScriptCanvas @@ -32,8 +31,6 @@ namespace ScriptCanvas static const char* k_onTrue; static const char* k_onFalse; - - protected: ConstSlotsOutcome GetSlotsInExecutionThreadByTypeImpl(const Slot&, CombinedSlotType targetSlotType, const Slot*) const override { @@ -45,15 +42,7 @@ namespace ScriptCanvas void ConfigureSlots() override; - // must be overridden with the binary operations - virtual Datum Evaluate(const Datum& value); - - // Triggered by the execution signal - void OnInputSignal(const SlotId& slot) override; - - SlotId GetOutputSlotId() const; - - + SlotId GetOutputSlotId() const; }; class UnaryExpression : public UnaryOperator @@ -67,11 +56,7 @@ namespace ScriptCanvas void ConfigureSlots() override; - void OnInputSignal(const SlotId& slot) override; - - virtual void InitializeUnaryExpression(); - - + virtual void InitializeUnaryExpression(); }; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.cpp index 79a89ab1bf..d55de9be45 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.cpp @@ -11,8 +11,6 @@ namespace ScriptCanvas { - - static bool OldEntityIdIsValidNodeVersionConverter(AZ::SerializeContext& context, AZ::SerializeContext::DataElementNode& rootNodeElement) { int nodeElementIndex = rootNodeElement.FindElement(AZ_CRC("BaseClass1", 0xd4925735)); @@ -72,9 +70,7 @@ namespace ScriptCanvas } if (AZ::BehaviorContext* behaviorContext = azrtti_cast(reflection)) { - using namespace ScriptCanvas::Nodes::Entity; - SCRIPT_CANVAS_GENERICS_TO_VM(EntityIDNodes::Registrar, EntityID, behaviorContext, EntityIDNodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(EntityNodes::Registrar, Entity, behaviorContext, EntityNodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(EntityNodes::Registrar, behaviorContext, EntityNodes::k_categoryName); } ScriptCanvas::Entity::RotateMethod::Reflect(reflection); @@ -82,25 +78,15 @@ namespace ScriptCanvas void Entity::InitNodeRegistry(NodeRegistry& nodeRegistry) { - using namespace ScriptCanvas::Nodes::Entity; - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); EntityIDNodes::Registrar::AddToRegistry(nodeRegistry); EntityNodes::Registrar::AddToRegistry(nodeRegistry); } AZStd::vector Entity::GetComponentDescriptors() { - AZStd::vector descriptors = { - ScriptCanvas::Nodes::Entity::Rotate::CreateDescriptor(), - ScriptCanvas::Nodes::Entity::EntityID::CreateDescriptor(), - ScriptCanvas::Nodes::Entity::EntityRef::CreateDescriptor() - }; - + AZStd::vector descriptors; EntityIDNodes::Registrar::AddDescriptors(descriptors); EntityNodes::Registrar::AddDescriptors(descriptors); - return descriptors; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.h index 0bd54f4194..be746e65f0 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.h @@ -10,9 +10,6 @@ // This header is only meant to include the nodes and should not contain // shared code -#include "Rotate.h" #include "RotateMethod.h" -#include "EntityIDNode.h" #include "EntityIDNodes.h" -#include "EntityRef.h" #include "EntityNodes.h" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityIDNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityIDNode.h deleted file mode 100644 index 5b60c0cea8..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityIDNode.h +++ /dev/null @@ -1,47 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Entity - { - class EntityID - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(EntityID, "{37F26070-F29B-412A-9228-86D8D10F3C32}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("EntityID", "Stores a reference to an entity") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/EntityID.png") - ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityRef.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityRef.h deleted file mode 100644 index 720205a158..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityRef.h +++ /dev/null @@ -1,79 +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 - -#include -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Entity - { - class EntityRef - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(EntityRef, "{0EE5782F-B241-4127-AE53-E6746B00447F}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(2) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - // EntityRef node is special in that it's only created when we drag in an entity from the main scene. - // And is unmodifiable(essentially an external constant). As such, we hide it from the node palette. - editContext->Class("EntityID", "Stores a reference to an entity") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/EntityRef.png") - ->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::ExcludeFlags::List) - ; - } - } - } - - AZ_INLINE void SetEntityRef(const AZ::EntityId& id) - { - ModifiableDatumView datumView; - FindModifiableDatumView(GetSlotId(k_setThis), datumView); - - if (datumView.IsValid()) - { - // only called on edit time creation, so no need to push out the data, consider cutting this function if possible - datumView.SetAs(id); - OnOutputChanged((*datumView.GetDatum())); - } - } - - AZ_INLINE AZ::EntityId GetEntityRef() const - { - AZ::EntityId retVal; - if (auto input = FindDatum(GetSlotId(k_setThis))) - { - const AZ::EntityId* inputId = input->GetAs(); - - if (inputId) - { - retVal = (*inputId); - } - } - - return retVal; - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.ScriptCanvasGrammar.xml deleted file mode 100644 index 0b2c5714d7..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.ScriptCanvasGrammar.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.cpp deleted file mode 100644 index b1df21ea52..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.cpp +++ /dev/null @@ -1,56 +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 - -#include - -#include -#include -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Entity - { - void Rotate::OnInputSignal(const SlotId&) - { - AZ::EntityId targetEntity = RotateProperty::GetEntity(this); - - if (!targetEntity.IsValid()) - { - SCRIPTCANVAS_REPORT_ERROR((*this), "Invalid entity specified"); - return; - } - - AZ::Entity* entity = nullptr; - AZ::ComponentApplicationBus::BroadcastResult(entity, &AZ::ComponentApplicationRequests::FindEntity, targetEntity); - if (entity) - { - AZ::Vector3 angles = AZ::Vector3::CreateZero(); - if (entity->GetState() == AZ::Entity::State::Active) - { - angles = RotateProperty::GetEulerAngles(this); - - AZ::Quaternion rotation = AZ::ConvertEulerDegreesToQuaternion(angles); - - AZ::Transform currentTransform = AZ::Transform::CreateIdentity(); - AZ::TransformBus::EventResult(currentTransform, targetEntity, &AZ::TransformInterface::GetWorldTM); - - currentTransform.SetRotation((rotation * currentTransform.GetRotation().GetNormalized())); - - AZ::TransformBus::Event(targetEntity, &AZ::TransformInterface::SetWorldTM, currentTransform); - } - } - - SignalOutput(RotateProperty::GetOutSlotId(this)); - } - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.h deleted file mode 100644 index cf6c19c417..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Rotate.h +++ /dev/null @@ -1,44 +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 - -#include - -#include - -#include - -// LY-103055 Temporary workaround to fix compile error when building Android NDK 19 and above due to AzCodeGenerator -// not receiving the correct clang system includes -namespace AZ -{ - class EntityId; - class Vector3; -} - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Entity - { - //! Deprecated: see Entity Transform class' reflection of method "Rotate" - class Rotate - : public Node - { - - public: - - SCRIPTCANVAS_NODE(Rotate); - - void OnInputSignal(const SlotId&) override; - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Boolean.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Boolean.h deleted file mode 100644 index 5a118d9374..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Boolean.h +++ /dev/null @@ -1,48 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Logic - { - class Boolean - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Boolean, "{263E8CAE-9F20-4198-A937-14761A46D996}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(4) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Boolean", "A boolean value (true/false)") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Boolean.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.cpp index 3a36a265c2..a0462ae69a 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.cpp @@ -17,29 +17,12 @@ namespace ScriptCanvas { Gate::Gate() : Node() - , m_condition(false) {} AZ::Outcome Gate::GetDependencies() const { return AZ::Success(DependencyReport{}); } - - void Gate::OnInputSignal(const SlotId&) - { - SlotId trueSlot = GateProperty::GetTrueSlotId(this); - SlotId falseSlot = GateProperty::GetFalseSlotId(this); - - m_condition = GateProperty::GetCondition(this); - if (m_condition) - { - SignalOutput(trueSlot); - } - else - { - SignalOutput(falseSlot); - } - } } } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.h index 0480db1f32..a8e04489d0 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.h @@ -9,7 +9,6 @@ #include #include -#include #include @@ -24,7 +23,6 @@ namespace ScriptCanvas : public Node { public: - SCRIPTCANVAS_NODE(Gate); Gate(); @@ -34,24 +32,13 @@ namespace ScriptCanvas AZ::Outcome GetDependencies() const override; - bool IsIfBranch() const override { return true; } - - + bool IsIfBranch() const override { return true; } protected: ConstSlotsOutcome GetSlotsInExecutionThreadByTypeImpl(const Slot& /*executionSlot*/, CombinedSlotType targetSlotType, const Slot* /*executionChildSlot*/) const override { return AZ::Success(GetSlotsByType(targetSlotType)); } - - ////////////////////////////////////////////////////////////////////////// - - void OnInputSignal(const SlotId&) override; - - private: - - bool m_condition; - }; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.cpp index 8bd587ee4b..444a312edc 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.cpp @@ -43,7 +43,6 @@ namespace ScriptCanvas using namespace ScriptCanvas::Nodes::Logic; AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); @@ -65,7 +64,6 @@ namespace ScriptCanvas return AZStd::vector({ ScriptCanvas::Nodes::Logic::And::CreateDescriptor(), ScriptCanvas::Nodes::Logic::Any::CreateDescriptor(), - ScriptCanvas::Nodes::Logic::Boolean::CreateDescriptor(), ScriptCanvas::Nodes::Logic::Break::CreateDescriptor(), ScriptCanvas::Nodes::Logic::Cycle::CreateDescriptor(), ScriptCanvas::Nodes::Logic::Gate::CreateDescriptor(), diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.h index a59a4e4a88..26fa846885 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.h @@ -12,7 +12,6 @@ #include "And.h" #include "Any.h" -#include "Boolean.h" #include "Break.h" #include "Cycle.h" #include "Gate.h" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Not.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Not.h index 58e0d747c7..ee61c6637a 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Not.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Not.h @@ -8,7 +8,6 @@ #pragma once #include -#include namespace ScriptCanvas { @@ -64,14 +63,6 @@ namespace ScriptCanvas } // Translation ////////////////////////////////////////////////////////////////////////// - - protected: - - Datum Evaluate(const Datum& value) override - { - const bool* boolValue = value.GetAs(); - return Datum(boolValue && (!(*boolValue))); - } }; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Once.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Once.h index e216b7e793..31bcf9a158 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Once.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Once.h @@ -9,7 +9,6 @@ #include #include -#include #include @@ -30,9 +29,7 @@ namespace ScriptCanvas Once(); - AZ::Outcome GetDependencies() const override; - - + AZ::Outcome GetDependencies() const override; protected: diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/While.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/While.h index 68a6b9fdfc..bb0ed3088b 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/While.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/While.h @@ -32,16 +32,13 @@ namespace ScriptCanvas SlotId GetLoopSlotId() const override; - bool IsFormalLoop() const override; - - + bool IsFormalLoop() const override; protected: ConstSlotsOutcome GetSlotsInExecutionThreadByTypeImpl(const Slot& /*executionSlot*/, CombinedSlotType targetSlotType, const Slot* /*executionChildSlot*/) const override { return AZ::Success(GetSlotsByType(targetSlotType)); } - }; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/AABBNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/AABBNode.h deleted file mode 100644 index fb138194c5..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/AABBNode.h +++ /dev/null @@ -1,48 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class AABB - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(AABB, "{AB0C2753-680E-47AD-8277-66B3AC01C659}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("AABB", "An axis-aligned bounding box value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/AABB.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/CRCNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/CRCNode.h deleted file mode 100644 index b1824d0e70..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/CRCNode.h +++ /dev/null @@ -1,48 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class CRC - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(CRC, "{AC47D631-38C3-4B03-A987-425189D1D165}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("CRC", "A CRC value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/CRC.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/ColorNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/ColorNode.h deleted file mode 100644 index 84b9b38b69..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/ColorNode.h +++ /dev/null @@ -1,48 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class Color - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Color, "{26FBE6FF-C4B4-4D62-9474-3B2EE1B3E165}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Color", "A four channel color value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Color.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.cpp index 6fa228c3b9..b287453f0f 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.cpp @@ -37,20 +37,22 @@ namespace ScriptCanvas if (AZ::BehaviorContext* behaviorContext = azrtti_cast(reflection)) { using namespace ScriptCanvas::Nodes::Math; - SCRIPT_CANVAS_GENERICS_TO_VM(AABBNodes::Registrar, AABB, behaviorContext, AABBNodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(CRCNodes::Registrar, CRC, behaviorContext, CRCNodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(ColorNodes::Registrar, Color, behaviorContext, ColorNodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM(MathNodes::Registrar, Math, behaviorContext, MathNodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(Matrix3x3Nodes::Registrar, Matrix3x3, behaviorContext, Matrix3x3Nodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(Matrix4x4Nodes::Registrar, Matrix4x4, behaviorContext, Matrix4x4Nodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(OBBNodes::Registrar, OBB, behaviorContext, OBBNodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(PlaneNodes::Registrar, Plane, behaviorContext, PlaneNodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(QuaternionNodes::Registrar, Quaternion, behaviorContext, QuaternionNodes::k_categoryName); SCRIPT_CANVAS_GENERICS_TO_VM(RandomNodes::Registrar, Random, behaviorContext, RandomNodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(TransformNodes::Registrar, Transform, behaviorContext, TransformNodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(Vector2Nodes::Registrar, Vector2, behaviorContext, Vector2Nodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(Vector3Nodes::Registrar, Vector3, behaviorContext, Vector3Nodes::k_categoryName); - SCRIPT_CANVAS_GENERICS_TO_VM(Vector4Nodes::Registrar, Vector4, behaviorContext, Vector4Nodes::k_categoryName); + + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(AABBNodes::Registrar, behaviorContext, AABBNodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(CRCNodes::Registrar, behaviorContext, CRCNodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(ColorNodes::Registrar, behaviorContext, ColorNodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(Matrix3x3Nodes::Registrar, behaviorContext, Matrix3x3Nodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(Matrix4x4Nodes::Registrar, behaviorContext, Matrix4x4Nodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(OBBNodes::Registrar, behaviorContext, OBBNodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(PlaneNodes::Registrar, behaviorContext, PlaneNodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(QuaternionNodes::Registrar, behaviorContext, QuaternionNodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(TransformNodes::Registrar, behaviorContext, TransformNodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(Vector2Nodes::Registrar, behaviorContext, Vector2Nodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(Vector3Nodes::Registrar, behaviorContext, Vector3Nodes::k_categoryName); + SCRIPT_CANVAS_GENERICS_TO_VM_LIBRARY_ONLY(Vector4Nodes::Registrar, behaviorContext, Vector4Nodes::k_categoryName); } Nodes::Internal::ExpressionNodeBase::Reflect(reflection); @@ -59,25 +61,12 @@ namespace ScriptCanvas void Math::InitNodeRegistry(NodeRegistry& nodeRegistry) { using namespace ScriptCanvas::Nodes::Math; - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); + AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); - AddNodeToRegistry(nodeRegistry); AABBNodes::Registrar::AddToRegistry(nodeRegistry); ColorNodes::Registrar::AddToRegistry(nodeRegistry); @@ -98,25 +87,11 @@ namespace ScriptCanvas AZStd::vector Math::GetComponentDescriptors() { AZStd::vector descriptors = { - ScriptCanvas::Nodes::Math::AABB::CreateDescriptor(), - ScriptCanvas::Nodes::Math::CRC::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Color::CreateDescriptor(), ScriptCanvas::Nodes::Math::Divide::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Matrix3x3::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Matrix4x4::CreateDescriptor(), ScriptCanvas::Nodes::Math::MathExpression::CreateDescriptor(), ScriptCanvas::Nodes::Math::Multiply::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Number::CreateDescriptor(), - ScriptCanvas::Nodes::Math::OBB::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Plane::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Random::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Quaternion::CreateDescriptor(), ScriptCanvas::Nodes::Math::Subtract::CreateDescriptor(), ScriptCanvas::Nodes::Math::Sum::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Transform::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Vector2::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Vector3::CreateDescriptor(), - ScriptCanvas::Nodes::Math::Vector4::CreateDescriptor(), }; AABBNodes::Registrar::AddDescriptors(descriptors); diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.h index e9b39c582f..cc4795498a 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.h @@ -10,34 +10,22 @@ // This header is only meant to include the nodes and should not contain // shared code -#include "AABBNode.h" #include "AABBNodes.h" -#include "ColorNode.h" #include "ColorNodes.h" -#include "CRCNode.h" #include "CRCNodes.h" #include "Divide.h" #include "MathGenerics.h" #include "MathRandom.h" -#include "Matrix3x3Node.h" #include "Matrix3x3Nodes.h" -#include "Matrix4x4Node.h" #include "Matrix4x4Nodes.h" #include "MathExpression.h" #include "Multiply.h" -#include "Number.h" -#include "OBBNode.h" #include "OBBNodes.h" -#include "PlaneNode.h" #include "PlaneNodes.h" -#include "Random.h" -#include "Rotation.h" #include "RotationNodes.h" #include "Subtract.h" #include "Sum.h" -#include "Transform.h" #include "TransformNodes.h" -#include "Vector.h" #include "Vector2Nodes.h" #include "Vector3Nodes.h" #include "Vector4Nodes.h" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix3x3Node.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix3x3Node.h deleted file mode 100644 index 4417413567..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix3x3Node.h +++ /dev/null @@ -1,49 +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 - -#include -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class Matrix3x3 - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Matrix3x3, "{9FDA1949-A74F-4D27-BBD0-8E6F165291FE}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Matrix3x3", "A 3x3 matrix value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Matrix3x3.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix4x4Node.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix4x4Node.h deleted file mode 100644 index da7d5983f4..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix4x4Node.h +++ /dev/null @@ -1,48 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class Matrix4x4 - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Matrix4x4, "{CF059648-8BE5-4CC6-B909-4D3EBD945071}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Matrix4x4", "A 4x4 matrix value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Matrix4x4.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Number.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Number.h deleted file mode 100644 index 9639f1fce7..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Number.h +++ /dev/null @@ -1,46 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class Number - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Number, "{E1E746E9-2761-431E-9D06-717381F9822D}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(3) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Number", "A numeric value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Number.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/OBBNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/OBBNode.h deleted file mode 100644 index 24718c82f4..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/OBBNode.h +++ /dev/null @@ -1,48 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class OBB - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(OBB, "{C63E8C27-412B-4CEE-959B-3D97E1D17370}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("OBB", "An oriented bounding box value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/OBB.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/PlaneNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/PlaneNode.h deleted file mode 100644 index c429eb1dc3..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/PlaneNode.h +++ /dev/null @@ -1,48 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class Plane - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Plane, "{A756E230-B4DC-42E7-A160-20A803CC8FA1}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Plane", "A plane value according to the equation: Ax + By + Cz + D = 0") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Plane.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.ScriptCanvasGrammar.xml deleted file mode 100644 index d2f3aede03..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.ScriptCanvasGrammar.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.cpp deleted file mode 100644 index dba370fa7c..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.cpp +++ /dev/null @@ -1,42 +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 "Random.h" -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - - void Random::OnInputSignal(const SlotId& slotId) - { - if (slotId == RandomProperty::GetInSlotId(this)) - { - const SlotId resultSlotId = RandomProperty::GetResultSlotId(this); - - if (Slot* resultSlot = GetSlot(resultSlotId)) - { - float minValue = RandomProperty::GetMin(this); - float maxValue = RandomProperty::GetMax(this); - - auto randVal = MathNodeUtilities::GetRandom(minValue, maxValue); - - Datum o(Data::Type::Number(), Datum::eOriginality::Copy); - o.Set(randVal); - PushOutput(o, *resultSlot); - } - } - - SignalOutput(RandomProperty::GetOutSlotId(this)); - } - - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.h deleted file mode 100644 index a5cc7d1aa9..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Random.h +++ /dev/null @@ -1,36 +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 - - -#include - -#include - - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - //! Provides a random value within the specified range, uses std::uniform_real_distribution and std::mt19937 - class Random - : public Node - { - public: - - SCRIPTCANVAS_NODE(Random); - - void OnInputSignal(const SlotId& slotId); - - }; - } - } -} - diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Rotation.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Rotation.h deleted file mode 100644 index 9e23a206a1..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Rotation.h +++ /dev/null @@ -1,46 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class Quaternion - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Quaternion, "{E17FE11D-69F2-4746-B582-778B48D0BF47}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Quaternion", "imaginary(X, Y, Z), real W") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Quaternion.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Transform.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Transform.h deleted file mode 100644 index e4260966a9..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Transform.h +++ /dev/null @@ -1,45 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class Transform - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Transform, "{B74F127B-72E0-486B-86FF-2233767C2804}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Transform", "A 3D transform value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Transform.png") - ; - } - } - } - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Vector.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Vector.h deleted file mode 100644 index af5054c45e..0000000000 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Vector.h +++ /dev/null @@ -1,106 +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 - -#include - -namespace ScriptCanvas -{ - namespace Nodes - { - namespace Math - { - class Vector2 - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Vector2, "{EB647398-7F56-4727-9C7C-277593DB1F11}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Vector2", "A 2D vector value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Vector.png") - ; - } - } - } - - }; - - class Vector3 - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Vector3, "{95A12BDE-D4B4-47E8-A917-3E42F678E7FA}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Vector3", "A 3D vector value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Vector.png") - ; - } - } - } - - }; - - class Vector4 - : public NativeDatumNode - { - public: - using ParentType = NativeDatumNode; - AZ_COMPONENT(Vector4, "{9CAE50A1-C575-4DFC-95C5-FA0A12DABCBD}", ParentType); - - static void Reflect(AZ::ReflectContext* reflection) - { - ParentType::Reflect(reflection); - - if (AZ::SerializeContext* serializeContext = azrtti_cast(reflection)) - { - serializeContext->Class() - ->Version(0) - ; - - if (AZ::EditContext* editContext = serializeContext->GetEditContext()) - { - editContext->Class("Vector4", "A 4D vector value") - ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Vector.png") - ; - } - } - } - - }; - } - } -} diff --git a/Gems/ScriptCanvas/Code/Source/ScriptCanvasCommonGem.cpp b/Gems/ScriptCanvas/Code/Source/ScriptCanvasCommonGem.cpp index 1c614dc5bc..792c72b3f6 100644 --- a/Gems/ScriptCanvas/Code/Source/ScriptCanvasCommonGem.cpp +++ b/Gems/ScriptCanvas/Code/Source/ScriptCanvasCommonGem.cpp @@ -11,7 +11,6 @@ #include #include #include -#include #include #include @@ -43,7 +42,6 @@ namespace ScriptCanvas ScriptCanvas::Debugger::ServiceComponent::CreateDescriptor(), ScriptCanvas::Graph::CreateDescriptor(), ScriptCanvasEditor::ScriptCanvasFunctionDataComponent::CreateDescriptor(), - ScriptCanvas::PureData::CreateDescriptor(), ScriptCanvas::GraphVariableManagerComponent::CreateDescriptor(), ScriptCanvas::RuntimeComponent::CreateDescriptor(), diff --git a/Gems/ScriptCanvas/Code/scriptcanvasgem_common_files.cmake b/Gems/ScriptCanvas/Code/scriptcanvasgem_common_files.cmake index d1d7606b4f..8d5f43c3bc 100644 --- a/Gems/ScriptCanvas/Code/scriptcanvasgem_common_files.cmake +++ b/Gems/ScriptCanvas/Code/scriptcanvasgem_common_files.cmake @@ -66,7 +66,6 @@ set(FILES Include/ScriptCanvas/Core/MethodConfiguration.cpp Include/ScriptCanvas/Core/ModifiableDatumView.cpp Include/ScriptCanvas/Core/ModifiableDatumView.h - Include/ScriptCanvas/Core/NativeDatumNode.h Include/ScriptCanvas/Core/Node.cpp Include/ScriptCanvas/Core/Node.h Include/ScriptCanvas/Core/Nodeable.cpp @@ -76,8 +75,6 @@ set(FILES Include/ScriptCanvas/Core/NodeableNodeOverloaded.cpp Include/ScriptCanvas/Core/NodeableNodeOverloaded.h Include/ScriptCanvas/Core/NodeFunctionGeneric.h - Include/ScriptCanvas/Core/PureData.cpp - Include/ScriptCanvas/Core/PureData.h Include/ScriptCanvas/Core/Slot.cpp Include/ScriptCanvas/Core/Slot.h Include/ScriptCanvas/Core/SlotConfigurationDefaults.h @@ -131,8 +128,6 @@ set(FILES Include/ScriptCanvas/Core/Contracts/DisplayGroupConnectedSlotLimitContract.h Include/ScriptCanvas/Core/Contracts/DynamicTypeContract.cpp Include/ScriptCanvas/Core/Contracts/DynamicTypeContract.h - Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.cpp - Include/ScriptCanvas/Core/Contracts/ExclusivePureDataContract.h Include/ScriptCanvas/Core/Contracts/IsReferenceTypeContract.cpp Include/ScriptCanvas/Core/Contracts/IsReferenceTypeContract.h Include/ScriptCanvas/Core/Contracts/MathOperatorContract.cpp @@ -250,8 +245,6 @@ set(FILES Include/ScriptCanvas/Libraries/Core/AzEventHandler.cpp Include/ScriptCanvas/Libraries/Core/AzEventHandler.h Include/ScriptCanvas/Libraries/Core/AzEventHandler.ScriptCanvasGrammar.xml - Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.cpp - Include/ScriptCanvas/Libraries/Core/BehaviorContextObjectNode.h Include/ScriptCanvas/Libraries/Core/BinaryOperator.cpp Include/ScriptCanvas/Libraries/Core/BinaryOperator.h Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp @@ -314,25 +307,18 @@ set(FILES Include/ScriptCanvas/Libraries/Core/Start.cpp Include/ScriptCanvas/Libraries/Core/Start.h Include/ScriptCanvas/Libraries/Core/Start.ScriptCanvasGrammar.xml - Include/ScriptCanvas/Libraries/Core/String.h Include/ScriptCanvas/Libraries/Core/UnaryOperator.cpp Include/ScriptCanvas/Libraries/Core/UnaryOperator.h Include/ScriptCanvas/Libraries/Entity/Entity.cpp Include/ScriptCanvas/Libraries/Entity/Entity.h - Include/ScriptCanvas/Libraries/Entity/EntityIDNode.h Include/ScriptCanvas/Libraries/Entity/EntityIDNodes.h Include/ScriptCanvas/Libraries/Entity/EntityNodes.h - Include/ScriptCanvas/Libraries/Entity/EntityRef.h - Include/ScriptCanvas/Libraries/Entity/Rotate.cpp - Include/ScriptCanvas/Libraries/Entity/Rotate.h - Include/ScriptCanvas/Libraries/Entity/Rotate.ScriptCanvasGrammar.xml Include/ScriptCanvas/Libraries/Entity/RotateMethod.cpp Include/ScriptCanvas/Libraries/Entity/RotateMethod.h Include/ScriptCanvas/Libraries/Logic/And.h Include/ScriptCanvas/Libraries/Logic/Any.cpp Include/ScriptCanvas/Libraries/Logic/Any.h Include/ScriptCanvas/Libraries/Logic/Any.ScriptCanvasGrammar.xml - Include/ScriptCanvas/Libraries/Logic/Boolean.h Include/ScriptCanvas/Libraries/Logic/Break.h Include/ScriptCanvas/Libraries/Logic/Break.cpp Include/ScriptCanvas/Libraries/Logic/Break.ScriptCanvasGrammar.xml @@ -373,11 +359,8 @@ set(FILES Include/ScriptCanvas/Libraries/Logic/While.cpp Include/ScriptCanvas/Libraries/Logic/While.h Include/ScriptCanvas/Libraries/Logic/While.ScriptCanvasGrammar.xml - Include/ScriptCanvas/Libraries/Math/AABBNode.h Include/ScriptCanvas/Libraries/Math/AABBNodes.h - Include/ScriptCanvas/Libraries/Math/ColorNode.h Include/ScriptCanvas/Libraries/Math/ColorNodes.h - Include/ScriptCanvas/Libraries/Math/CRCNode.h Include/ScriptCanvas/Libraries/Math/CRCNodes.h Include/ScriptCanvas/Libraries/Math/Divide.h Include/ScriptCanvas/Libraries/Math/Math.cpp @@ -389,26 +372,15 @@ set(FILES Include/ScriptCanvas/Libraries/Math/MathNodeUtilities.h Include/ScriptCanvas/Libraries/Math/MathGenerics.h Include/ScriptCanvas/Libraries/Math/MathRandom.h - Include/ScriptCanvas/Libraries/Math/Matrix3x3Node.h Include/ScriptCanvas/Libraries/Math/Matrix3x3Nodes.h - Include/ScriptCanvas/Libraries/Math/Matrix4x4Node.h Include/ScriptCanvas/Libraries/Math/Matrix4x4Nodes.h Include/ScriptCanvas/Libraries/Math/Multiply.h - Include/ScriptCanvas/Libraries/Math/Number.h - Include/ScriptCanvas/Libraries/Math/OBBNode.h Include/ScriptCanvas/Libraries/Math/OBBNodes.h - Include/ScriptCanvas/Libraries/Math/PlaneNode.h Include/ScriptCanvas/Libraries/Math/PlaneNodes.h - Include/ScriptCanvas/Libraries/Math/Random.cpp - Include/ScriptCanvas/Libraries/Math/Random.h - Include/ScriptCanvas/Libraries/Math/Random.ScriptCanvasGrammar.xml - Include/ScriptCanvas/Libraries/Math/Rotation.h Include/ScriptCanvas/Libraries/Math/RotationNodes.h Include/ScriptCanvas/Libraries/Math/Subtract.h Include/ScriptCanvas/Libraries/Math/Sum.h - Include/ScriptCanvas/Libraries/Math/Transform.h Include/ScriptCanvas/Libraries/Math/TransformNodes.h - Include/ScriptCanvas/Libraries/Math/Vector.h Include/ScriptCanvas/Libraries/Math/Vector2Nodes.h Include/ScriptCanvas/Libraries/Math/Vector3Nodes.h Include/ScriptCanvas/Libraries/Math/Vector4Nodes.h diff --git a/Gems/ScriptCanvas/Code/scriptcanvasgem_editor_files.cmake b/Gems/ScriptCanvas/Code/scriptcanvasgem_editor_files.cmake index daa2a599ce..ba84163d64 100644 --- a/Gems/ScriptCanvas/Code/scriptcanvasgem_editor_files.cmake +++ b/Gems/ScriptCanvas/Code/scriptcanvasgem_editor_files.cmake @@ -84,8 +84,6 @@ set(FILES Editor/GraphCanvas/Components/NodeDescriptors/EBusHandlerNodeDescriptorComponent.h Editor/GraphCanvas/Components/NodeDescriptors/EBusSenderNodeDescriptorComponent.cpp Editor/GraphCanvas/Components/NodeDescriptors/EBusSenderNodeDescriptorComponent.h - Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.cpp - Editor/GraphCanvas/Components/NodeDescriptors/EntityRefNodeDescriptorComponent.h Editor/GraphCanvas/Components/NodeDescriptors/FunctionNodeDescriptorComponent.cpp Editor/GraphCanvas/Components/NodeDescriptors/FunctionNodeDescriptorComponent.h Editor/GraphCanvas/Components/NodeDescriptors/FunctionDefinitionNodeDescriptorComponent.h diff --git a/Gems/ScriptCanvasTesting/Code/Source/Framework/ScriptCanvasTestUtilities.cpp b/Gems/ScriptCanvasTesting/Code/Source/Framework/ScriptCanvasTestUtilities.cpp index 8f769aefa4..03ecba29be 100644 --- a/Gems/ScriptCanvasTesting/Code/Source/Framework/ScriptCanvasTestUtilities.cpp +++ b/Gems/ScriptCanvasTesting/Code/Source/Framework/ScriptCanvasTestUtilities.cpp @@ -470,14 +470,6 @@ namespace ScriptCanvasTests AZ::u32 TestBehaviorContextObject::s_createdCount = 0; AZ::u32 TestBehaviorContextObject::s_destroyedCount = 0; - ScriptCanvas::Nodes::Core::BehaviorContextObjectNode* CreateTestObjectNode(const AZ::EntityId& graphUniqueId, AZ::EntityId& entityOut, const AZ::Uuid& objectTypeID) - { - ScriptCanvas::Nodes::Core::BehaviorContextObjectNode* node = CreateTestNode(graphUniqueId, entityOut); - EXPECT_TRUE(node != nullptr); - node->InitializeObject(objectTypeID); - return node; - } - AZ::EntityId CreateClassFunctionNode(const ScriptCanvasId& scriptCanvasId, AZStd::string_view className, AZStd::string_view methodName) { using namespace ScriptCanvas; @@ -495,93 +487,6 @@ namespace ScriptCanvasTests return methodNodeID; } - ScriptCanvas::Node* CreateDataNodeByType(const ScriptCanvasId& scriptCanvasId, const ScriptCanvas::Data::Type& type, AZ::EntityId& nodeIDout) - { - using namespace ScriptCanvas; - - Node* node(nullptr); - - switch (type.GetType()) - { - case Data::eType::AABB: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::BehaviorContextObject: - { - auto objectNode = CreateTestNode(scriptCanvasId, nodeIDout); - objectNode->InitializeObject(type); - node = objectNode; - } - break; - - case Data::eType::Boolean: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Color: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::CRC: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::EntityID: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Matrix3x3: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Matrix4x4: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Number: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::OBB: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Plane: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Quaternion: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::String: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Transform: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Vector2: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Vector3: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - case Data::eType::Vector4: - node = CreateTestNode(scriptCanvasId, nodeIDout); - break; - - default: - AZ_Error("ScriptCanvas", false, "unsupported data type"); - } - - return node; - } - AZStd::string SlotDescriptorToString(ScriptCanvas::SlotDescriptor descriptor) { AZStd::string name; diff --git a/Gems/ScriptCanvasTesting/Code/Source/Framework/ScriptCanvasTestUtilities.h b/Gems/ScriptCanvasTesting/Code/Source/Framework/ScriptCanvasTestUtilities.h index e1879f6038..dcc4d2eb3f 100644 --- a/Gems/ScriptCanvasTesting/Code/Source/Framework/ScriptCanvasTestUtilities.h +++ b/Gems/ScriptCanvasTesting/Code/Source/Framework/ScriptCanvasTestUtilities.h @@ -101,7 +101,6 @@ namespace ScriptCanvasTests return addVariableOutcome.TakeValue(); } - ScriptCanvas::Nodes::Core::BehaviorContextObjectNode* CreateTestObjectNode(const ScriptCanvas::ScriptCanvasId& scriptCanvasId, AZ::EntityId& entityOut, const AZ::Uuid& objectTypeID); AZ::EntityId CreateClassFunctionNode(const ScriptCanvas::ScriptCanvasId& scriptCanvasId, AZStd::string_view className, AZStd::string_view methodName); AZStd::string SlotDescriptorToString(ScriptCanvas::SlotDescriptor type); void DumpSlots(const ScriptCanvas::Node& node); diff --git a/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_BehaviorContext.cpp b/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_BehaviorContext.cpp index be0f57665a..c602bde1f2 100644 --- a/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_BehaviorContext.cpp +++ b/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_BehaviorContext.cpp @@ -12,7 +12,6 @@ #include #include -#include #include #include @@ -20,48 +19,6 @@ using namespace ScriptCanvasTests; using namespace ScriptCanvasEditor; using namespace TestNodes; -TEST_F(ScriptCanvasTestFixture, BehaviorContextObjectGenericConstructor) -{ - using namespace ScriptCanvas; - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - - AZ::Entity* graphEntity = aznew AZ::Entity("Graph"); - graphEntity->Init(); - SystemRequestBus::Broadcast(&SystemRequests::CreateGraphOnEntity, graphEntity); - auto graph = graphEntity->FindComponent(); - EXPECT_NE(nullptr, graph); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - //Validates the GenericConstructorOverride attribute is being used to construct types that are normally not initialized in C++ - AZ::EntityId vector3IdA; - ScriptCanvas::Nodes::Core::BehaviorContextObjectNode* vector3NodeA = CreateTestNode(graphUniqueId, vector3IdA); - vector3NodeA->InitializeObject(azrtti_typeid()); - - ReportErrors(graph); - - if (auto result = vector3NodeA->GetInput_UNIT_TEST("Set")) - { - EXPECT_EQ(0, result->GetValue()); - } - else - { - ADD_FAILURE(); - } - - delete graphEntity; - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} - // Tests the basic footprint of the ebus node both before and after graph activation to make sure all internal bookeeping is correct. TEST_F(ScriptCanvasTestFixture, BehaviorContext_BusHandlerNodeFootPrint) { diff --git a/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_Core.cpp b/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_Core.cpp index b365a939e8..d5f4c221c8 100644 --- a/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_Core.cpp +++ b/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_Core.cpp @@ -407,38 +407,6 @@ TEST_F(ScriptCanvasTestFixture, ValueTypes) GTEST_SUCCEED(); } - -namespace -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - bool GraphHasVectorWithValue(const ScriptCanvas::Graph& graph, const AZ::Vector3& vector) - { - for (auto nodeId : graph.GetNodes()) - { - AZ::Entity* entity{}; - AZ::ComponentApplicationBus::BroadcastResult(entity, &AZ::ComponentApplicationRequests::FindEntity, nodeId); - - if (entity) - { - if (auto node = AZ::EntityUtils::FindFirstDerivedComponent(entity)) - { - if (auto candidate = node->GetInput_UNIT_TEST("Set")) - { - if (*candidate == vector) - { - return true; - } - } - } - } - } - - return false; - } -} - TEST_F(ScriptCanvasTestFixture, Contracts) { using namespace ScriptCanvas; @@ -666,126 +634,6 @@ TEST_F(ScriptCanvasTestFixture, Contracts) // m_behaviorContext->DisableRemoveReflection(); // } -TEST_F(ScriptCanvasTestFixture, EntityRefTest) -{ - - - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - // Fake "world" entities - AZ::Entity first("First"); - first.CreateComponent(); - first.Init(); - first.Activate(); - - AZ::Entity second("Second"); - second.CreateComponent(); - second.Init(); - second.Activate(); - - // Script Canvas ScriptCanvas::Graph - ScriptCanvas::Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - - m_entityContext.AddEntity(first.GetId()); - m_entityContext.AddEntity(second.GetId()); - m_entityContext.AddEntity(graph->GetEntityId()); - - graph->GetEntity()->SetName("ScriptCanvas::Graph Owner Entity"); - - graph->GetEntity()->CreateComponent(); - graph->GetEntity()->Init(); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - // EntityRef node to some specific entity #1 - AZ::EntityId selfEntityIdNode; - auto selfEntityRef = CreateTestNode(graphUniqueId, selfEntityIdNode); - selfEntityRef->SetEntityRef(first.GetId()); - - // EntityRef node to some specific entity #2 - AZ::EntityId otherEntityIdNode; - auto otherEntityRef = CreateTestNode(graphUniqueId, otherEntityIdNode); - otherEntityRef->SetEntityRef(second.GetId()); - - // Explicitly set an EntityRef node with this graph's entity Id. - AZ::EntityId graphEntityIdNode; - auto graphEntityRef = CreateTestNode(graphUniqueId, graphEntityIdNode); - graphEntityRef->SetEntityRef(graph->GetEntity()->GetId()); - - // First test: directly set an entity Id on the EntityID: 0 slot - AZ::EntityId eventAid; - ScriptCanvas::Nodes::Core::Method* nodeA = CreateTestNode(graphUniqueId, eventAid); - nodeA->InitializeEvent({ {} }, "EntityRefTestEventBus", "TestEvent"); - if (auto entityId = nodeA->ModInput_UNIT_TEST("EntityID: 0")) - { - *entityId = first.GetId(); - } - - // Second test: Will connect the slot to an EntityRef node - AZ::EntityId eventBid; - ScriptCanvas::Nodes::Core::Method* nodeB = CreateTestNode(graphUniqueId, eventBid); - nodeB->InitializeEvent({ {} }, "EntityRefTestEventBus", "TestEvent"); - - // Third test: Set the slot's EntityId: 0 to SelfReferenceId, this should result in the same Id as graph->GetEntityId() - AZ::EntityId eventCid; - ScriptCanvas::Nodes::Core::Method* nodeC = CreateTestNode(graphUniqueId, eventCid); - nodeC->InitializeEvent({ {} }, "EntityRefTestEventBus", "TestEvent"); - if (auto entityId = nodeC->ModInput_UNIT_TEST("EntityID: 0")) - { - *entityId = ScriptCanvas::GraphOwnerId; - } - - // True - AZ::EntityId trueNodeId; - CreateDataNode(graphUniqueId, true, trueNodeId); - - // False - AZ::EntityId falseNodeId; - CreateDataNode(graphUniqueId, false, falseNodeId); - - // Start -> TestEvent - // O EntityId: 0 (not connected, it was set directly on the slot) - // EntityRef: first -O EntityId: 1 - // False -O Boolean: 2 - EXPECT_TRUE(Connect(*graph, startID, "Out", eventAid, "In")); - EXPECT_TRUE(Connect(*graph, eventAid, "EntityID: 1", selfEntityIdNode, "Get")); - EXPECT_TRUE(Connect(*graph, eventAid, "Boolean: 2", falseNodeId, "Get")); - - // Start -> TestEvent - // EntityRef: second -O EntityId: 0 - // EntityRef: second -O EntityId: 1 - // False -O Boolean: 2 - EXPECT_TRUE(Connect(*graph, startID, "Out", eventBid, "In")); - EXPECT_TRUE(Connect(*graph, eventBid, "EntityID: 0", otherEntityIdNode, "Get")); - EXPECT_TRUE(Connect(*graph, eventBid, "EntityID: 1", otherEntityIdNode, "Get")); - EXPECT_TRUE(Connect(*graph, eventBid, "Boolean: 2", falseNodeId, "Get")); - - // Start -> TestEvent - // -O EntityId: 0 (not connected, slot is set to SelfReferenceId) - // graphEntityIdNode -O EntityId: 1 - // True -O Boolean: 2 - EXPECT_TRUE(Connect(*graph, startID, "Out", eventCid, "In")); - EXPECT_TRUE(Connect(*graph, eventCid, "EntityID: 1", graphEntityIdNode, "Get")); - EXPECT_TRUE(Connect(*graph, eventCid, "Boolean: 2", trueNodeId, "Get")); - - // Execute the graph - - { - ScriptCanvasEditor::ScopedOutputSuppression suppressOutput; - graph->GetEntity()->Activate(); - } - - ReportErrors(graph); - delete graph->GetEntity(); - -} - const int k_executionCount = 998; TEST_F(ScriptCanvasTestFixture, ExecutionLength) @@ -828,10 +676,11 @@ TEST_F(ScriptCanvasTestFixture, ExecutionLength) TEST_F(ScriptCanvasTestFixture, While) { - RunUnitTestGraph("LY_SC_UnitTest_While", ExecutionMode::Interpreted); + + RunUnitTestGraph("LY_SC_UnitTest_While", ScriptCanvas::ExecutionMode::Interpreted); } TEST_F(ScriptCanvasTestFixture, WhileBreak) { - RunUnitTestGraph("LY_SC_UnitTest_WhileBreak", ExecutionMode::Interpreted); + RunUnitTestGraph("LY_SC_UnitTest_WhileBreak", ScriptCanvas::ExecutionMode::Interpreted); } diff --git a/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_Math.cpp b/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_Math.cpp index 65236a7c92..71f0a42b03 100644 --- a/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_Math.cpp +++ b/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_Math.cpp @@ -17,76 +17,6 @@ using namespace ScriptCanvasTests; using namespace ScriptCanvas; -template -AZStd::vector TestMathFunction(std::initializer_list inputNamesList, std::initializer_list inputList, std::initializer_list outputNamesList, std::initializer_list outputList) -{ - AZStd::vector inputNames(inputNamesList); - AZStd::vector input(inputList); - AZStd::vector outputNames(outputNamesList); - AZStd::vector output(outputList); - - AZ_Assert(inputNames.size() == input.size(), "Size mismatch"); - AZ_Assert(outputNames.size() == output.size(), "Size mismatch"); - - AZ::Entity graphEntity("Graph"); - graphEntity.Init(); - SystemRequestBus::Broadcast(&SystemRequests::CreateGraphOnEntity, &graphEntity); - auto graph = graphEntity.FindComponent(); - EXPECT_NE(nullptr, graph); - - const AZ::EntityId& graphEntityId = graph->GetEntityId(); - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - AZ::EntityId functionID; - CreateTestNode(graphUniqueId, functionID); - EXPECT_TRUE(Connect(*graph, startID, "Out", functionID, "In")); - - AZStd::vector inputNodes; - AZStd::vector inputNodeIDs; - AZStd::vector outputNodes; - AZStd::vector outputNodeIDs; - - for (int i = 0; i < input.size(); ++i) - { - AZ::EntityId inputNodeID; - auto node = CreateDataNodeByType(graphUniqueId, input[i].GetType(), inputNodeID); - inputNodeIDs.push_back(inputNodeID); - inputNodes.push_back(node); - node->SetInput_UNIT_TEST(PureData::k_setThis, input[i]); - } - - for (int i = 0; i < output.size(); ++i) - { - AZ::EntityId outputNodeID; - auto node = CreateDataNodeByType(graphUniqueId, output[i].GetType(), outputNodeID); - outputNodeIDs.push_back(outputNodeID); - outputNodes.push_back(node); - } - - for (int i = 0; i < inputNames.size(); ++i) - { - EXPECT_TRUE(Connect(*graph, inputNodeIDs[i], "Get", functionID, inputNames[i].data())); - } - - for (int i = 0; i < output.size(); ++i) - { - EXPECT_TRUE(Connect(*graph, functionID, outputNames[i].data(), outputNodeIDs[i], PureData::k_setThis)); - } - - graph->GetEntity()->Activate(); - - for (int i = 0; i < output.size(); ++i) - { - output[i] = *outputNodes[i]->GetInput_UNIT_TEST(PureData::k_setThis); - } - - graph->GetEntity()->Deactivate(); - delete graph; - return output; -} - TEST_F(ScriptCanvasTestFixture, MathOperations_Graph) { RunUnitTestGraph("LY_SC_UnitTest_MathOperations", ExecutionMode::Interpreted); diff --git a/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_NodeGenerics.cpp b/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_NodeGenerics.cpp index a1e48a4637..e74aa8e641 100644 --- a/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_NodeGenerics.cpp +++ b/Gems/ScriptCanvasTesting/Code/Tests/ScriptCanvas_NodeGenerics.cpp @@ -163,906 +163,5 @@ TEST_F(ScriptCanvasTestFixture, NodeGenerics) delete graph->GetEntity(); } -TEST_F(ScriptCanvasTestFixture, NodeGenericsByValue) -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - RegisterComponentDescriptor(); - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - TestBehaviorContextObject::ResetCounts(); - - UnitTestEventsHandler unitTestHandler; - unitTestHandler.BusConnect(); - - Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - graph->GetEntity()->Init(); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - AZ::EntityId maxByValueID; - CreateTestNode(graphUniqueId, maxByValueID); - - AZ::EntityId valueID1, valueID2, valueID3, valueID4, valueID5; - - Core::BehaviorContextObjectNode* valueNode1 = CreateTestNode(graphUniqueId, valueID1); - valueNode1->InitializeObject(azrtti_typeid()); - valueNode1->ModInput_UNIT_TEST("Set")->SetValue(1); - EXPECT_EQ(1, valueNode1->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode2 = CreateTestNode(graphUniqueId, valueID2); - valueNode2->InitializeObject(azrtti_typeid()); - valueNode2->ModInput_UNIT_TEST("Set")->SetValue(2); - EXPECT_EQ(2, valueNode2->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode3 = CreateTestNode(graphUniqueId, valueID3); - valueNode3->InitializeObject(azrtti_typeid()); - valueNode3->ModInput_UNIT_TEST("Set")->SetValue(3); - EXPECT_EQ(3, valueNode3->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode4 = CreateTestNode(graphUniqueId, valueID4); - valueNode4->InitializeObject(azrtti_typeid()); - valueNode4->ModInput_UNIT_TEST("Set")->SetValue(4); - EXPECT_EQ(4, valueNode4->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode5 = CreateTestNode(graphUniqueId, valueID5); - valueNode5->InitializeObject(azrtti_typeid()); - valueNode5->ModInput_UNIT_TEST("Set")->SetValue(5); - EXPECT_EQ(5, valueNode5->GetInput_UNIT_TEST("Set")->GetValue()); - - auto value1 = valueNode1->GetInput_UNIT_TEST("Set"); - auto value2 = valueNode2->GetInput_UNIT_TEST("Set"); - auto value3 = valueNode3->GetInput_UNIT_TEST("Set"); - auto value4 = valueNode4->GetInput_UNIT_TEST("Set"); - auto value5 = valueNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(value1, value2); - EXPECT_NE(value1, value3); - EXPECT_NE(value1, value4); - EXPECT_NE(value1, value5); - EXPECT_NE(value2, value3); - EXPECT_NE(value2, value4); - EXPECT_NE(value2, value5); - EXPECT_NE(value3, value4); - EXPECT_NE(value3, value5); - EXPECT_NE(value4, value5); - - // data - EXPECT_TRUE(Connect(*graph, valueID1, "Get", maxByValueID, "TestBehaviorContextObject: 0")); - EXPECT_TRUE(Connect(*graph, valueID2, "Get", maxByValueID, "TestBehaviorContextObject: 1")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: TestBehaviorContextObject", valueID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueID3, "Get", valueID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: TestBehaviorContextObject", valueID5, "Set")); - - delete graph->GetEntity(); - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} - -TEST_F(ScriptCanvasTestFixture, NodeGenericsByPointer) -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - RegisterComponentDescriptor(); - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - TestBehaviorContextObject::ResetCounts(); - - UnitTestEventsHandler unitTestHandler; - unitTestHandler.BusConnect(); - - Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - graph->GetEntity()->Init(); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - AZ::EntityId maxByValueID; - CreateTestNode(graphUniqueId, maxByValueID); - - AZ::EntityId valueID1, valueID2, valueID3, valueID4, valueID5; - - Core::BehaviorContextObjectNode* valueNode1 = CreateTestNode(graphUniqueId, valueID1); - valueNode1->InitializeObject(azrtti_typeid()); - valueNode1->ModInput_UNIT_TEST("Set")->SetValue(1); - EXPECT_EQ(1, valueNode1->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode2 = CreateTestNode(graphUniqueId, valueID2); - valueNode2->InitializeObject(azrtti_typeid()); - valueNode2->ModInput_UNIT_TEST("Set")->SetValue(2); - EXPECT_EQ(2, valueNode2->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode3 = CreateTestNode(graphUniqueId, valueID3); - valueNode3->InitializeObject(azrtti_typeid()); - valueNode3->ModInput_UNIT_TEST("Set")->SetValue(3); - EXPECT_EQ(3, valueNode3->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode4 = CreateTestNode(graphUniqueId, valueID4); - valueNode4->InitializeObject(azrtti_typeid()); - valueNode4->ModInput_UNIT_TEST("Set")->SetValue(4); - EXPECT_EQ(4, valueNode4->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode5 = CreateTestNode(graphUniqueId, valueID5); - valueNode5->InitializeObject(azrtti_typeid()); - valueNode5->ModInput_UNIT_TEST("Set")->SetValue(5); - EXPECT_EQ(5, valueNode5->GetInput_UNIT_TEST("Set")->GetValue()); - - auto value1 = valueNode1->GetInput_UNIT_TEST("Set"); - auto value2 = valueNode2->GetInput_UNIT_TEST("Set"); - auto value3 = valueNode3->GetInput_UNIT_TEST("Set"); - auto value4 = valueNode4->GetInput_UNIT_TEST("Set"); - auto value5 = valueNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(value1, value2); - EXPECT_NE(value1, value3); - EXPECT_NE(value1, value4); - EXPECT_NE(value1, value5); - EXPECT_NE(value2, value3); - EXPECT_NE(value2, value4); - EXPECT_NE(value2, value5); - EXPECT_NE(value3, value4); - EXPECT_NE(value3, value5); - EXPECT_NE(value4, value5); - - // data - EXPECT_TRUE(Connect(*graph, valueID1, "Get", maxByValueID, "TestBehaviorContextObject: 0")); - EXPECT_TRUE(Connect(*graph, valueID2, "Get", maxByValueID, "TestBehaviorContextObject: 1")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: TestBehaviorContextObject", valueID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueID3, "Get", valueID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: TestBehaviorContextObject", valueID5, "Set")); - - // execution - EXPECT_TRUE(Connect(*graph, startID, "Out", maxByValueID, "In")); - - delete graph->GetEntity(); - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} - -TEST_F(ScriptCanvasTestFixture, NodeGenericsByReference) -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - RegisterComponentDescriptor(); - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - TestBehaviorContextObject::ResetCounts(); - - UnitTestEventsHandler unitTestHandler; - unitTestHandler.BusConnect(); - - Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - graph->GetEntity()->Init(); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - AZ::EntityId maxByValueID; - CreateTestNode(graphUniqueId, maxByValueID); - - AZ::EntityId valueID1, valueID2, valueID3, valueID4, valueID5; - - Core::BehaviorContextObjectNode* valueNode1 = CreateTestNode(graphUniqueId, valueID1); - valueNode1->InitializeObject(azrtti_typeid()); - valueNode1->ModInput_UNIT_TEST("Set")->SetValue(1); - EXPECT_EQ(1, valueNode1->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode2 = CreateTestNode(graphUniqueId, valueID2); - valueNode2->InitializeObject(azrtti_typeid()); - valueNode2->ModInput_UNIT_TEST("Set")->SetValue(2); - EXPECT_EQ(2, valueNode2->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode3 = CreateTestNode(graphUniqueId, valueID3); - valueNode3->InitializeObject(azrtti_typeid()); - valueNode3->ModInput_UNIT_TEST("Set")->SetValue(3); - EXPECT_EQ(3, valueNode3->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode4 = CreateTestNode(graphUniqueId, valueID4); - valueNode4->InitializeObject(azrtti_typeid()); - valueNode4->ModInput_UNIT_TEST("Set")->SetValue(4); - EXPECT_EQ(4, valueNode4->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode5 = CreateTestNode(graphUniqueId, valueID5); - valueNode5->InitializeObject(azrtti_typeid()); - valueNode5->ModInput_UNIT_TEST("Set")->SetValue(5); - EXPECT_EQ(5, valueNode5->GetInput_UNIT_TEST("Set")->GetValue()); - - auto value1 = valueNode1->GetInput_UNIT_TEST("Set"); - auto value2 = valueNode2->GetInput_UNIT_TEST("Set"); - auto value3 = valueNode3->GetInput_UNIT_TEST("Set"); - auto value4 = valueNode4->GetInput_UNIT_TEST("Set"); - auto value5 = valueNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(value1, value2); - EXPECT_NE(value1, value3); - EXPECT_NE(value1, value4); - EXPECT_NE(value1, value5); - EXPECT_NE(value2, value3); - EXPECT_NE(value2, value4); - EXPECT_NE(value2, value5); - EXPECT_NE(value3, value4); - EXPECT_NE(value3, value5); - EXPECT_NE(value4, value5); - - // data - EXPECT_TRUE(Connect(*graph, valueID1, "Get", maxByValueID, "TestBehaviorContextObject: 0")); - EXPECT_TRUE(Connect(*graph, valueID2, "Get", maxByValueID, "TestBehaviorContextObject: 1")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: TestBehaviorContextObject", valueID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueID3, "Get", valueID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: TestBehaviorContextObject", valueID5, "Set")); - - delete graph->GetEntity(); - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} - -TEST_F(ScriptCanvasTestFixture, NodeGenericsByValueInteger) -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - RegisterComponentDescriptor(); - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - TestBehaviorContextObject::ResetCounts(); - - UnitTestEventsHandler unitTestHandler; - unitTestHandler.BusConnect(); - - Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - graph->GetEntity()->Init(); - - const AZ::EntityId graphEntityId = graph->GetEntityId(); - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - AZ::EntityId maxByValueID; - CreateTestNode(graphUniqueId, maxByValueID); - - AZ::EntityId valueID1, valueID2, valueID3, valueID4, valueID5; - - Node* valueNode1 = CreateDataNode(graphUniqueId, 1, valueID1); - EXPECT_EQ(1, *valueNode1->GetInput_UNIT_TEST("Set")); - - Node* valueNode2 = CreateDataNode(graphUniqueId, 2, valueID2); - EXPECT_EQ(2, *valueNode2->GetInput_UNIT_TEST("Set")); - - Node* valueNode3 = CreateDataNode(graphUniqueId, 3, valueID3); - EXPECT_EQ(3, *valueNode3->GetInput_UNIT_TEST("Set")); - - Node* valueNode4 = CreateDataNode(graphUniqueId, 4, valueID4); - EXPECT_EQ(4, *valueNode4->GetInput_UNIT_TEST("Set")); - - Node* valueNode5 = CreateDataNode(graphUniqueId, 5, valueID5); - EXPECT_EQ(5, *valueNode5->GetInput_UNIT_TEST("Set")); - - auto value1 = valueNode1->GetInput_UNIT_TEST("Set"); - auto value2 = valueNode2->GetInput_UNIT_TEST("Set"); - auto value3 = valueNode3->GetInput_UNIT_TEST("Set"); - auto value4 = valueNode4->GetInput_UNIT_TEST("Set"); - auto value5 = valueNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(value1, value2); - EXPECT_NE(value1, value3); - EXPECT_NE(value1, value4); - EXPECT_NE(value1, value5); - EXPECT_NE(value2, value3); - EXPECT_NE(value2, value4); - EXPECT_NE(value2, value5); - EXPECT_NE(value3, value4); - EXPECT_NE(value3, value5); - EXPECT_NE(value4, value5); - - // data - EXPECT_TRUE(Connect(*graph, valueID1, "Get", maxByValueID, "Number: 0")); - EXPECT_TRUE(Connect(*graph, valueID2, "Get", maxByValueID, "Number: 1")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: Number", valueID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueID3, "Get", valueID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: Number", valueID5, "Set")); - - delete graph->GetEntity(); - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} - -TEST_F(ScriptCanvasTestFixture, NodeGenericsByPointerInteger) -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - RegisterComponentDescriptor(); - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - TestBehaviorContextObject::ResetCounts(); - - UnitTestEventsHandler unitTestHandler; - unitTestHandler.BusConnect(); - - Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - graph->GetEntity()->Init(); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - AZ::EntityId maxByValueID; - CreateTestNode(graphUniqueId, maxByValueID); - - AZ::EntityId valueID1, valueID2, valueID3, valueID4, valueID5; - - Node* valueNode1 = CreateDataNode(graphUniqueId, 1, valueID1); - EXPECT_EQ(1, *valueNode1->GetInput_UNIT_TEST("Set")); - - Node* valueNode2 = CreateDataNode(graphUniqueId, 2, valueID2); - EXPECT_EQ(2, *valueNode2->GetInput_UNIT_TEST("Set")); - - Node* valueNode3 = CreateDataNode(graphUniqueId, 3, valueID3); - EXPECT_EQ(3, *valueNode3->GetInput_UNIT_TEST("Set")); - - Node* valueNode4 = CreateDataNode(graphUniqueId, 4, valueID4); - EXPECT_EQ(4, *valueNode4->GetInput_UNIT_TEST("Set")); - - Node* valueNode5 = CreateDataNode(graphUniqueId, 5, valueID5); - EXPECT_EQ(5, *valueNode5->GetInput_UNIT_TEST("Set")); - - auto value1 = valueNode1->GetInput_UNIT_TEST("Set"); - auto value2 = valueNode2->GetInput_UNIT_TEST("Set"); - auto value3 = valueNode3->GetInput_UNIT_TEST("Set"); - auto value4 = valueNode4->GetInput_UNIT_TEST("Set"); - auto value5 = valueNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(value1, value2); - EXPECT_NE(value1, value3); - EXPECT_NE(value1, value4); - EXPECT_NE(value1, value5); - EXPECT_NE(value2, value3); - EXPECT_NE(value2, value4); - EXPECT_NE(value2, value5); - EXPECT_NE(value3, value4); - EXPECT_NE(value3, value5); - EXPECT_NE(value4, value5); - - // data - EXPECT_TRUE(Connect(*graph, valueID1, "Get", maxByValueID, "Number: 0")); - EXPECT_TRUE(Connect(*graph, valueID2, "Get", maxByValueID, "Number: 1")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: Number", valueID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueID3, "Get", valueID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: Number", valueID5, "Set")); - - EXPECT_TRUE(Connect(*graph, startID, "Out", maxByValueID, "In")); - - delete graph->GetEntity(); - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} - -TEST_F(ScriptCanvasTestFixture, NodeGenericsByReferenceInteger) -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - RegisterComponentDescriptor(); - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - TestBehaviorContextObject::ResetCounts(); - - UnitTestEventsHandler unitTestHandler; - unitTestHandler.BusConnect(); - - Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - graph->GetEntity()->Init(); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - AZ::EntityId maxByValueID; - CreateTestNode(graphUniqueId, maxByValueID); - - AZ::EntityId valueID1, valueID2, valueID3, valueID4, valueID5; - - Node* valueNode1 = CreateDataNode(graphUniqueId, 1, valueID1); - EXPECT_EQ(1, *valueNode1->GetInput_UNIT_TEST("Set")); - - Node* valueNode2 = CreateDataNode(graphUniqueId, 2, valueID2); - EXPECT_EQ(2, *valueNode2->GetInput_UNIT_TEST("Set")); - - Node* valueNode3 = CreateDataNode(graphUniqueId, 3, valueID3); - EXPECT_EQ(3, *valueNode3->GetInput_UNIT_TEST("Set")); - - Node* valueNode4 = CreateDataNode(graphUniqueId, 4, valueID4); - EXPECT_EQ(4, *valueNode4->GetInput_UNIT_TEST("Set")); - - Node* valueNode5 = CreateDataNode(graphUniqueId, 5, valueID5); - EXPECT_EQ(5, *valueNode5->GetInput_UNIT_TEST("Set")); - - auto value1 = valueNode1->GetInput_UNIT_TEST("Set"); - auto value2 = valueNode2->GetInput_UNIT_TEST("Set"); - auto value3 = valueNode3->GetInput_UNIT_TEST("Set"); - auto value4 = valueNode4->GetInput_UNIT_TEST("Set"); - auto value5 = valueNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(value1, value2); - EXPECT_NE(value1, value3); - EXPECT_NE(value1, value4); - EXPECT_NE(value1, value5); - EXPECT_NE(value2, value3); - EXPECT_NE(value2, value4); - EXPECT_NE(value2, value5); - EXPECT_NE(value3, value4); - EXPECT_NE(value3, value5); - EXPECT_NE(value4, value5); - - // data - EXPECT_TRUE(Connect(*graph, valueID1, "Get", maxByValueID, "Number: 0")); - EXPECT_TRUE(Connect(*graph, valueID2, "Get", maxByValueID, "Number: 1")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: Number", valueID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueID3, "Get", valueID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: Number", valueID5, "Set")); - - EXPECT_TRUE(Connect(*graph, startID, "Out", maxByValueID, "In")); - - delete graph->GetEntity(); - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} - -TEST_F(ScriptCanvasTestFixture, NodeGenericsByValueMulti) -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - RegisterComponentDescriptor(); - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - TestBehaviorContextObject::ResetCounts(); - - UnitTestEventsHandler unitTestHandler; - unitTestHandler.BusConnect(); - - Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - graph->GetEntity()->Init(); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - AZ::EntityId maxByValueID; - CreateTestNode(graphUniqueId, maxByValueID); - AZ::EntityId valueID1, valueID2, valueID3, valueID4, valueID5; - - Core::BehaviorContextObjectNode* valueNode1 = CreateTestNode(graphUniqueId, valueID1); - valueNode1->InitializeObject(azrtti_typeid()); - valueNode1->ModInput_UNIT_TEST("Set")->SetValue(1); - EXPECT_EQ(1, valueNode1->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode2 = CreateTestNode(graphUniqueId, valueID2); - valueNode2->InitializeObject(azrtti_typeid()); - valueNode2->ModInput_UNIT_TEST("Set")->SetValue(2); - EXPECT_EQ(2, valueNode2->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode3 = CreateTestNode(graphUniqueId, valueID3); - valueNode3->InitializeObject(azrtti_typeid()); - valueNode3->ModInput_UNIT_TEST("Set")->SetValue(3); - EXPECT_EQ(3, valueNode3->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode4 = CreateTestNode(graphUniqueId, valueID4); - valueNode4->InitializeObject(azrtti_typeid()); - valueNode4->ModInput_UNIT_TEST("Set")->SetValue(4); - EXPECT_EQ(4, valueNode4->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode5 = CreateTestNode(graphUniqueId, valueID5); - valueNode5->InitializeObject(azrtti_typeid()); - valueNode5->ModInput_UNIT_TEST("Set")->SetValue(5); - EXPECT_EQ(5, valueNode5->GetInput_UNIT_TEST("Set")->GetValue()); - - auto value1 = valueNode1->GetInput_UNIT_TEST("Set"); - auto value2 = valueNode2->GetInput_UNIT_TEST("Set"); - auto value3 = valueNode3->GetInput_UNIT_TEST("Set"); - auto value4 = valueNode4->GetInput_UNIT_TEST("Set"); - auto value5 = valueNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(value1, value2); - EXPECT_NE(value1, value3); - EXPECT_NE(value1, value4); - EXPECT_NE(value1, value5); - EXPECT_NE(value2, value3); - EXPECT_NE(value2, value4); - EXPECT_NE(value2, value5); - EXPECT_NE(value3, value4); - EXPECT_NE(value3, value5); - EXPECT_NE(value4, value5); - - AZ::EntityId valueIntegerID1, valueIntegerID2, valueIntegerID3, valueIntegerID4, valueIntegerID5; - - Node* valueIntegerNode1 = CreateDataNode(graphUniqueId, 1, valueIntegerID1); - EXPECT_EQ(1, *valueIntegerNode1->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode2 = CreateDataNode(graphUniqueId, 2, valueIntegerID2); - EXPECT_EQ(2, *valueIntegerNode2->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode3 = CreateDataNode(graphUniqueId, 3, valueIntegerID3); - EXPECT_EQ(3, *valueIntegerNode3->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode4 = CreateDataNode(graphUniqueId, 4, valueIntegerID4); - EXPECT_EQ(4, *valueIntegerNode4->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode5 = CreateDataNode(graphUniqueId, 5, valueIntegerID5); - EXPECT_EQ(5, *valueIntegerNode5->GetInput_UNIT_TEST("Set")); - - auto valueInteger1 = valueIntegerNode1->GetInput_UNIT_TEST("Set"); - auto valueInteger2 = valueIntegerNode2->GetInput_UNIT_TEST("Set"); - auto valueInteger3 = valueIntegerNode3->GetInput_UNIT_TEST("Set"); - auto valueInteger4 = valueIntegerNode4->GetInput_UNIT_TEST("Set"); - auto valueInteger5 = valueIntegerNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(valueInteger1, valueInteger2); - EXPECT_NE(valueInteger1, valueInteger3); - EXPECT_NE(valueInteger1, valueInteger4); - EXPECT_NE(valueInteger1, valueInteger5); - EXPECT_NE(valueInteger2, valueInteger3); - EXPECT_NE(valueInteger2, valueInteger4); - EXPECT_NE(valueInteger2, valueInteger5); - EXPECT_NE(valueInteger3, valueInteger4); - EXPECT_NE(valueInteger3, valueInteger5); - EXPECT_NE(valueInteger4, valueInteger5); - - // data - EXPECT_TRUE(Connect(*graph, valueID1, "Get", maxByValueID, "TestBehaviorContextObject: 0")); - EXPECT_TRUE(Connect(*graph, valueID2, "Get", maxByValueID, "TestBehaviorContextObject: 1")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: TestBehaviorContextObject", valueID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueID3, "Get", valueID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: TestBehaviorContextObject", valueID5, "Set")); - - EXPECT_TRUE(Connect(*graph, valueIntegerID1, "Get", maxByValueID, "Number: 0")); - EXPECT_TRUE(Connect(*graph, valueIntegerID2, "Get", maxByValueID, "Number: 1")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: Number", valueIntegerID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueIntegerID3, "Get", valueIntegerID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByValueID, "Result: Number", valueIntegerID5, "Set")); - - EXPECT_TRUE(Connect(*graph, startID, "Out", maxByValueID, "In")); - - delete graph->GetEntity(); - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} - -TEST_F(ScriptCanvasTestFixture, NodeGenericsByReferenceMulti) -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - RegisterComponentDescriptor(); - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - TestBehaviorContextObject::ResetCounts(); - - UnitTestEventsHandler unitTestHandler; - unitTestHandler.BusConnect(); - - Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - graph->GetEntity()->Init(); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - AZ::EntityId maxByReferenceID; - CreateTestNode(graphUniqueId, maxByReferenceID); - AZ::EntityId valueID1, valueID2, valueID3, valueID4, valueID5; - - Core::BehaviorContextObjectNode* valueNode1 = CreateTestNode(graphUniqueId, valueID1); - valueNode1->InitializeObject(azrtti_typeid()); - valueNode1->ModInput_UNIT_TEST("Set")->SetValue(1); - EXPECT_EQ(1, valueNode1->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode2 = CreateTestNode(graphUniqueId, valueID2); - valueNode2->InitializeObject(azrtti_typeid()); - valueNode2->ModInput_UNIT_TEST("Set")->SetValue(2); - EXPECT_EQ(2, valueNode2->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode3 = CreateTestNode(graphUniqueId, valueID3); - valueNode3->InitializeObject(azrtti_typeid()); - valueNode3->ModInput_UNIT_TEST("Set")->SetValue(3); - EXPECT_EQ(3, valueNode3->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode4 = CreateTestNode(graphUniqueId, valueID4); - valueNode4->InitializeObject(azrtti_typeid()); - valueNode4->ModInput_UNIT_TEST("Set")->SetValue(4); - EXPECT_EQ(4, valueNode4->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode5 = CreateTestNode(graphUniqueId, valueID5); - valueNode5->InitializeObject(azrtti_typeid()); - valueNode5->ModInput_UNIT_TEST("Set")->SetValue(5); - EXPECT_EQ(5, valueNode5->GetInput_UNIT_TEST("Set")->GetValue()); - - auto value1 = valueNode1->GetInput_UNIT_TEST("Set"); - auto value2 = valueNode2->GetInput_UNIT_TEST("Set"); - auto value3 = valueNode3->GetInput_UNIT_TEST("Set"); - auto value4 = valueNode4->GetInput_UNIT_TEST("Set"); - auto value5 = valueNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(value1, value2); - EXPECT_NE(value1, value3); - EXPECT_NE(value1, value4); - EXPECT_NE(value1, value5); - EXPECT_NE(value2, value3); - EXPECT_NE(value2, value4); - EXPECT_NE(value2, value5); - EXPECT_NE(value3, value4); - EXPECT_NE(value3, value5); - EXPECT_NE(value4, value5); - - AZ::EntityId valueIntegerID1, valueIntegerID2, valueIntegerID3, valueIntegerID4, valueIntegerID5; - - Node* valueIntegerNode1 = CreateDataNode(graphUniqueId, 1, valueIntegerID1); - EXPECT_EQ(1, *valueIntegerNode1->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode2 = CreateDataNode(graphUniqueId, 2, valueIntegerID2); - EXPECT_EQ(2, *valueIntegerNode2->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode3 = CreateDataNode(graphUniqueId, 3, valueIntegerID3); - EXPECT_EQ(3, *valueIntegerNode3->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode4 = CreateDataNode(graphUniqueId, 4, valueIntegerID4); - EXPECT_EQ(4, *valueIntegerNode4->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode5 = CreateDataNode(graphUniqueId, 5, valueIntegerID5); - EXPECT_EQ(5, *valueIntegerNode5->GetInput_UNIT_TEST("Set")); - - auto valueInteger1 = valueIntegerNode1->GetInput_UNIT_TEST("Set"); - auto valueInteger2 = valueIntegerNode2->GetInput_UNIT_TEST("Set"); - auto valueInteger3 = valueIntegerNode3->GetInput_UNIT_TEST("Set"); - auto valueInteger4 = valueIntegerNode4->GetInput_UNIT_TEST("Set"); - auto valueInteger5 = valueIntegerNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(valueInteger1, valueInteger2); - EXPECT_NE(valueInteger1, valueInteger3); - EXPECT_NE(valueInteger1, valueInteger4); - EXPECT_NE(valueInteger1, valueInteger5); - EXPECT_NE(valueInteger2, valueInteger3); - EXPECT_NE(valueInteger2, valueInteger4); - EXPECT_NE(valueInteger2, valueInteger5); - EXPECT_NE(valueInteger3, valueInteger4); - EXPECT_NE(valueInteger3, valueInteger5); - EXPECT_NE(valueInteger4, valueInteger5); - - // data - EXPECT_TRUE(Connect(*graph, valueID1, "Get", maxByReferenceID, "TestBehaviorContextObject: 0")); - EXPECT_TRUE(Connect(*graph, valueID2, "Get", maxByReferenceID, "TestBehaviorContextObject: 1")); - EXPECT_TRUE(Connect(*graph, maxByReferenceID, "Result: TestBehaviorContextObject", valueID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueID3, "Get", valueID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByReferenceID, "Result: TestBehaviorContextObject", valueID5, "Set")); - - EXPECT_TRUE(Connect(*graph, valueIntegerID1, "Get", maxByReferenceID, "Number: 0")); - EXPECT_TRUE(Connect(*graph, valueIntegerID2, "Get", maxByReferenceID, "Number: 1")); - EXPECT_TRUE(Connect(*graph, maxByReferenceID, "Result: Number", valueIntegerID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueIntegerID3, "Get", valueIntegerID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByReferenceID, "Result: Number", valueIntegerID5, "Set")); - - EXPECT_TRUE(Connect(*graph, startID, "Out", maxByReferenceID, "In")); - - delete graph->GetEntity(); - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} - -TEST_F(ScriptCanvasTestFixture, NodeGenericsByPointerMulti) -{ - using namespace ScriptCanvas; - using namespace ScriptCanvas::Nodes; - - RegisterComponentDescriptor(); - - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - - TestBehaviorContextObject::ResetCounts(); - - UnitTestEventsHandler unitTestHandler; - unitTestHandler.BusConnect(); - - Graph* graph = nullptr; - SystemRequestBus::BroadcastResult(graph, &SystemRequests::MakeGraph); - EXPECT_TRUE(graph != nullptr); - graph->GetEntity()->Init(); - - const ScriptCanvasId& graphUniqueId = graph->GetScriptCanvasId(); - - AZ::EntityId startID; - CreateTestNode(graphUniqueId, startID); - - AZ::EntityId maxByPointerID; - CreateTestNode(graphUniqueId, maxByPointerID); - AZ::EntityId valueID1, valueID2, valueID3, valueID4, valueID5; - - Core::BehaviorContextObjectNode* valueNode1 = CreateTestNode(graphUniqueId, valueID1); - valueNode1->InitializeObject(azrtti_typeid()); - valueNode1->ModInput_UNIT_TEST("Set")->SetValue(1); - EXPECT_EQ(1, valueNode1->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode2 = CreateTestNode(graphUniqueId, valueID2); - valueNode2->InitializeObject(azrtti_typeid()); - valueNode2->ModInput_UNIT_TEST("Set")->SetValue(2); - EXPECT_EQ(2, valueNode2->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode3 = CreateTestNode(graphUniqueId, valueID3); - valueNode3->InitializeObject(azrtti_typeid()); - valueNode3->ModInput_UNIT_TEST("Set")->SetValue(3); - EXPECT_EQ(3, valueNode3->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode4 = CreateTestNode(graphUniqueId, valueID4); - valueNode4->InitializeObject(azrtti_typeid()); - valueNode4->ModInput_UNIT_TEST("Set")->SetValue(4); - EXPECT_EQ(4, valueNode4->GetInput_UNIT_TEST("Set")->GetValue()); - - Core::BehaviorContextObjectNode* valueNode5 = CreateTestNode(graphUniqueId, valueID5); - valueNode5->InitializeObject(azrtti_typeid()); - valueNode5->ModInput_UNIT_TEST("Set")->SetValue(5); - EXPECT_EQ(5, valueNode5->GetInput_UNIT_TEST("Set")->GetValue()); - - auto value1 = valueNode1->GetInput_UNIT_TEST("Set"); - auto value2 = valueNode2->GetInput_UNIT_TEST("Set"); - auto value3 = valueNode3->GetInput_UNIT_TEST("Set"); - auto value4 = valueNode4->GetInput_UNIT_TEST("Set"); - auto value5 = valueNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(value1, value2); - EXPECT_NE(value1, value3); - EXPECT_NE(value1, value4); - EXPECT_NE(value1, value5); - EXPECT_NE(value2, value3); - EXPECT_NE(value2, value4); - EXPECT_NE(value2, value5); - EXPECT_NE(value3, value4); - EXPECT_NE(value3, value5); - EXPECT_NE(value4, value5); - - AZ::EntityId valueIntegerID1, valueIntegerID2, valueIntegerID3, valueIntegerID4, valueIntegerID5; - - Node* valueIntegerNode1 = CreateDataNode(graphUniqueId, 1, valueIntegerID1); - EXPECT_EQ(1, *valueIntegerNode1->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode2 = CreateDataNode(graphUniqueId, 2, valueIntegerID2); - EXPECT_EQ(2, *valueIntegerNode2->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode3 = CreateDataNode(graphUniqueId, 3, valueIntegerID3); - EXPECT_EQ(3, *valueIntegerNode3->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode4 = CreateDataNode(graphUniqueId, 4, valueIntegerID4); - EXPECT_EQ(4, *valueIntegerNode4->GetInput_UNIT_TEST("Set")); - - Node* valueIntegerNode5 = CreateDataNode(graphUniqueId, 5, valueIntegerID5); - EXPECT_EQ(5, *valueIntegerNode5->GetInput_UNIT_TEST("Set")); - - auto valueInteger1 = valueIntegerNode1->GetInput_UNIT_TEST("Set"); - auto valueInteger2 = valueIntegerNode2->GetInput_UNIT_TEST("Set"); - auto valueInteger3 = valueIntegerNode3->GetInput_UNIT_TEST("Set"); - auto valueInteger4 = valueIntegerNode4->GetInput_UNIT_TEST("Set"); - auto valueInteger5 = valueIntegerNode5->GetInput_UNIT_TEST("Set"); - - EXPECT_NE(valueInteger1, valueInteger2); - EXPECT_NE(valueInteger1, valueInteger3); - EXPECT_NE(valueInteger1, valueInteger4); - EXPECT_NE(valueInteger1, valueInteger5); - EXPECT_NE(valueInteger2, valueInteger3); - EXPECT_NE(valueInteger2, valueInteger4); - EXPECT_NE(valueInteger2, valueInteger5); - EXPECT_NE(valueInteger3, valueInteger4); - EXPECT_NE(valueInteger3, valueInteger5); - EXPECT_NE(valueInteger4, valueInteger5); - - // data - EXPECT_TRUE(Connect(*graph, valueID1, "Get", maxByPointerID, "TestBehaviorContextObject: 0")); - EXPECT_TRUE(Connect(*graph, valueID2, "Get", maxByPointerID, "TestBehaviorContextObject: 1")); - EXPECT_TRUE(Connect(*graph, maxByPointerID, "Result: TestBehaviorContextObject", valueID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueID3, "Get", valueID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByPointerID, "Result: TestBehaviorContextObject", valueID5, "Set")); - - EXPECT_TRUE(Connect(*graph, valueIntegerID1, "Get", maxByPointerID, "Number: 0")); - EXPECT_TRUE(Connect(*graph, valueIntegerID2, "Get", maxByPointerID, "Number: 1")); - EXPECT_TRUE(Connect(*graph, maxByPointerID, "Result: Number", valueIntegerID3, "Set")); - EXPECT_TRUE(Connect(*graph, valueIntegerID3, "Get", valueIntegerID4, "Set")); - EXPECT_TRUE(Connect(*graph, maxByPointerID, "Result: Number", valueIntegerID5, "Set")); - - EXPECT_TRUE(Connect(*graph, startID, "Out", maxByPointerID, "In")); - - delete graph->GetEntity(); - - m_serializeContext->EnableRemoveReflection(); - m_behaviorContext->EnableRemoveReflection(); - TestBehaviorContextObject::Reflect(m_serializeContext); - TestBehaviorContextObject::Reflect(m_behaviorContext); - m_serializeContext->DisableRemoveReflection(); - m_behaviorContext->DisableRemoveReflection(); -} #pragma warning( pop )