Merge remote-tracking branch 'origin/development' into sc-editor-asset-redux

Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
carlitosan
2021-12-02 14:17:35 -08:00
3323 changed files with 90625 additions and 60443 deletions
+17
View File
@@ -57,6 +57,7 @@ ly_add_target(
NAME ScriptCanvas.Static STATIC
NAMESPACE Gem
FILES_CMAKE
scriptcanvasgem_headers.cmake
scriptcanvasgem_common_files.cmake
scriptcanvasgem_runtime_asset_files.cmake
INCLUDE_DIRECTORIES
@@ -89,6 +90,22 @@ ly_add_target(
Gem::ScriptCanvasDebugger
)
ly_add_target(
NAME ScriptCanvas.API HEADERONLY
NAMESPACE Gem
FILES_CMAKE
scriptcanvasgem_headers.cmake
COMPILE_DEFINITIONS
INTERFACE
SCRIPTCANVAS_ERRORS_ENABLED
${SCRIPT_CANVAS_COMMON_DEFINES}
INCLUDE_DIRECTORIES
INTERFACE
.
Include
${SCRIPT_CANVAS_AUTOGEN_BUILD_DIR}
)
ly_add_target(
NAME ScriptCanvas ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
NAMESPACE Gem
@@ -1111,9 +1111,11 @@ namespace ScriptCanvasEditor
return CanCreateConnectionBetween(scSourceEndpoint, scTargetEndpoint).IsSuccess();
}
AZStd::string Graph::GetDataTypeString(const AZ::Uuid& typeId)
AZStd::string Graph::GetDataTypeString(const AZ::Uuid&)
{
return TranslationHelper::GetSafeTypeName(ScriptCanvas::Data::FromAZType(typeId));
// This is used by the default tooltip setting in GraphCanvas, returning an empty string
// in order for tooltips to be fully controlled by ScriptCanvas
return {};
}
void Graph::OnRemoveUnusedNodes()
@@ -11,6 +11,7 @@
#include <GraphCanvas/Components/Nodes/NodeBus.h>
#include <ScriptCanvas/Core/Slot.h>
#include <ScriptCanvas/GraphCanvas/NodeDescriptorBus.h>
#include <Editor/GraphCanvas/Components/DynamicSlotComponent.h>
@@ -168,6 +168,14 @@ namespace ScriptCanvasEditor::Nodes
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasEntity->GetId(), &GraphCanvas::NodeTitleRequests::SetTitle, details.m_name);
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasEntity->GetId(), &GraphCanvas::NodeTitleRequests::SetSubTitle, details.m_category);
// Add to the tooltip the C++ class for reference
if (!details.m_tooltip.empty())
{
details.m_tooltip.append("\n");
}
details.m_tooltip.append(AZStd::string::format("[C++] %s", node->GetNodeTypeName().c_str()));
GraphCanvas::NodeRequestBus::Event(graphCanvasEntity->GetId(), &GraphCanvas::NodeRequests::SetTooltip, details.m_tooltip);
if (!nodeConfiguration.m_titlePalette.empty())
@@ -258,17 +266,20 @@ namespace ScriptCanvasEditor::Nodes
graphCanvasEntity->CreateComponent<SlotMappingComponent>(methodNode->GetEntityId());
graphCanvasEntity->CreateComponent<SceneMemberMappingComponent>(methodNode->GetEntityId());
bool isAccessor = false;
switch (methodNode->GetMethodType())
{
case ScriptCanvas::MethodType::Event:
graphCanvasEntity->CreateComponent<EBusSenderNodeDescriptorComponent>();
break;
case ScriptCanvas::MethodType::Member:
case ScriptCanvas::MethodType::Getter:
case ScriptCanvas::MethodType::Setter:
case ScriptCanvas::MethodType::Free:
isAccessor = true;
case ScriptCanvas::MethodType::Member:
graphCanvasEntity->CreateComponent<ClassMethodNodeDescriptorComponent>();
break;
break;
default:
AZ_Error("ScriptCanvas", false, "Invalid method node type, node creation failed. This node needs to be deleted.");
break;
@@ -288,20 +299,70 @@ namespace ScriptCanvasEditor::Nodes
const bool isEBusSender = (methodNode->GetMethodType() == ScriptCanvas::MethodType::Event);
const AZStd::string& className = methodNode->GetMethodClassName();
const AZStd::string& methodName = methodNode->GetName();
AZStd::string methodName = methodNode->GetName();
GraphCanvas::TranslationKey key;
key = isEBusSender ? "EBusSender" : "BehaviorClass";
key << className;
key << "methods" << methodName;
if (isAccessor)
{
AZ::StringFunc::Replace(methodName, "::Getter", "");
AZ::StringFunc::Replace(methodName, "::Setter", "");
}
GraphCanvas::TranslationRequests::Details details;
details.m_name = methodName;
AZStd::string context;
if (methodNode->GetMethodType() == ScriptCanvas::MethodType::Free)
{
context = "Constant";
}
else
{
context = isEBusSender ? "EBusSender" : "BehaviorClass";
}
key << context << className;
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key + ".details", details);
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeTitleRequests::SetDetails, details.m_name, details.m_subtitle);
GraphCanvas::NodeRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeRequests::SetTooltip, details.m_tooltip);
// Set the class' name as the subtitle fallback
details.m_subtitle = details.m_name;
// Get the method's text data
GraphCanvas::TranslationRequests::Details methodDetails;
methodDetails.m_name = details.m_name; // fallback
key << "methods";
AZStd::string updatedMethodName = methodName;
if (isAccessor)
{
if (methodNode->GetMethodType() == ScriptCanvas::MethodType::Getter || methodNode->GetMethodType() == ScriptCanvas::MethodType::Free)
{
updatedMethodName = "Get";
}
else
{
updatedMethodName = "Set";
}
updatedMethodName.append(methodName);
}
key << updatedMethodName;
GraphCanvas::TranslationRequestBus::BroadcastResult(methodDetails, &GraphCanvas::TranslationRequests::GetDetails, key + ".details", methodDetails);
if (methodDetails.m_subtitle.empty())
{
methodDetails.m_subtitle = details.m_category;
}
// Add to the tooltip the C++ class for reference
if (!methodDetails.m_tooltip.empty())
{
methodDetails.m_tooltip.append("\n");
}
methodDetails.m_tooltip.append(AZStd::string::format("[C++] %s", className.c_str()));
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeTitleRequests::SetDetails, methodDetails.m_name, methodDetails.m_subtitle);
GraphCanvas::NodeRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeRequests::SetTooltip, methodDetails.m_tooltip);
int paramIndex = 0;
int outputIndex = 0;
@@ -329,8 +390,8 @@ namespace ScriptCanvasEditor::Nodes
if (slot.IsData())
{
key = isEBusSender ? "EBusSender" : "BehaviorClass";
key << className << "methods" << methodName;
key.clear();
key << context << className << "methods" << updatedMethodName;
if (slot.IsData() && slot.IsInput())
{
key << "params";
@@ -345,7 +406,7 @@ namespace ScriptCanvasEditor::Nodes
}
if (slot.IsData())
{
{
index++;
}
}
@@ -449,6 +510,13 @@ namespace ScriptCanvasEditor::Nodes
details.m_name = busName;
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details);
// Add to the tooltip the C++ class for reference
if (!details.m_tooltip.empty())
{
details.m_tooltip.append("\n");
}
details.m_tooltip.append(AZStd::string::format("[C++] %s", busName.c_str()));
GraphCanvas::NodeRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeRequests::SetTooltip, details.m_tooltip);
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeTitleRequests::SetTitle, details.m_name);
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeTitleRequests::SetDefaultPalette, "HandlerWrapperNodeTitlePalette");
@@ -486,6 +554,13 @@ namespace ScriptCanvasEditor::Nodes
// Set the name
graphCanvasEntity->SetName(AZStd::string::format("GC-Node(%s)", decoratedName.c_str()));
// Add to the tooltip the C++ class for reference
if (!details.m_tooltip.empty())
{
details.m_tooltip.append("\n");
}
details.m_tooltip.append(AZStd::string::format("[C++] %s", busName.c_str()));
GraphCanvas::NodeRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeRequests::SetTooltip, details.m_tooltip);
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeTitleRequests::SetTitle, details.m_name);
@@ -730,7 +805,7 @@ namespace ScriptCanvasEditor::Nodes
return graphCanvasNodeId;
}
// Function Nodes
// Function Nodes
AZ::EntityId DisplayFunctionNode(AZ::EntityId graphCanvasGraphId, const ScriptCanvas::Nodes::Core::FunctionCallNode* functionNode)
{
return DisplayFunctionNode(graphCanvasGraphId, const_cast<ScriptCanvas::Nodes::Core::FunctionCallNode*>(functionNode));
@@ -12,6 +12,7 @@
#include <GraphCanvas/Components/Slots/SlotBus.h>
#include <GraphCanvas/Components/DynamicOrderingDynamicSlotComponent.h>
#include <ScriptCanvas/Core/ModifiableDatumView.h>
#include <ScriptCanvas/Core/NodeBus.h>
namespace ScriptCanvasEditor::Nodes
+6 -3
View File
@@ -398,6 +398,7 @@ namespace ScriptCanvasEditor
->Field("ShowUpgradeDialog", &ScriptCanvasEditorSettings::m_showUpgradeDialog)
->Field("ZoomSettings", &ScriptCanvasEditorSettings::m_zoomSettings)
->Field("ExperimentalSettings", &ScriptCanvasEditorSettings::m_experimentalSettings)
->Field("SceneContextMenuNodePaletteWidth", &ScriptCanvasEditorSettings::m_sceneContextMenuNodePaletteWidth)
;
AZ::EditContext* editContext = serialize->GetEditContext();
@@ -470,13 +471,13 @@ namespace ScriptCanvasEditor
->Attribute(AZ::Edit::Attributes::Visibility, AZ_CRC("PropertyVisibility_ShowChildrenOnly", 0xef428f20))
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_snapDistance, "Connection Snap Distance", "The distance from a slot under which connections will snap to it.")
->Attribute(AZ::Edit::Attributes::Min, 10.0)
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_enableGroupDoubleClickCollapse, "Double Click to Collapse/Uncollapse Group", "Enables the user to decide whether you can double click on a group to collapse/uncollapse a group.")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_enableGroupDoubleClickCollapse, "Double Click to Collapse/Expand Group", "Enables the user to decide whether you can double click on a group to collapse/expand a group.")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_allowBookmarkViewpointControl, "Bookmark Zooming", "Will cause the bookmarks to force the viewport into the state determined by the bookmark type\nBookmark Anchors - The viewport that exists when the bookmark is created.\nNode Groups - The area the Node Group covers")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_dragNodeCouplingConfig, "Node Coupling Configuration", "Controls for managing Node Coupling.\nNode Coupling is when you are dragging a node and leave it hovered over another Node, we will try to connect the sides you overlapped with each other.")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_dragNodeSplicingConfig, "Drag Node Splicing Configuration", "Controls for managing Node Splicing on a Drag.\nNode Splicing on a Drag will let you drag a node onto a connection, and splice that node onto the specified connection.")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_dropNodeSplicingConfig, "Drop Node Splicing Configuration", "Controls for managing Node Splicing on a Drag.\nNode Splicing on a drop will let you drop a node onto a connection from the Node Palette, and splice that node onto the specified connection.")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_autoSaveConfig, "AutoSave Configuration", "Controls for managing Auto Saving.\nAuto Saving will occur after the specified time of inactivity on a graph.")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_shakeDespliceConfig, "Shake To Desplice", "Settings that controls various parameters of the Shake to Desplice feature")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_shakeDespliceConfig, "Shake To De-splice", "Settings that controls various parameters of the Shake to De-splice feature")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_allowNodeNudging, "Allow Node Nudging", "Controls whether or not nodes will attempt to nudge each other out of the way under various interactions.")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_alignmentTimeMS, "Alignment Time", "Controls the amount of time nodes will take to slide into place when performing alignment commands")
->Attribute(AZ::Edit::Attributes::Min, 0)
@@ -488,8 +489,10 @@ namespace ScriptCanvasEditor
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_experimentalSettings, "Experimental Settings", "Settings that will control elements that are under development and may not work as expected")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_saveRawTranslationOuputToFile, "Save Translation File", "Save out the raw result of translation for debug purposes")
->Attribute(AZ::Edit::Attributes::ChangeNotify, &SettingsCpp::UpdateProcessingSettings)
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_printAbstractCodeModel, "Print Abstract Modeld", "Print out the Abstract Code Model to the console at the end of parsing for debug purposes")
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_printAbstractCodeModel, "Print Abstract Model", "Print out the Abstract Code Model to the console at the end of parsing for debug purposes")
->Attribute(AZ::Edit::Attributes::ChangeNotify, &SettingsCpp::UpdateProcessingSettings)
->DataElement(AZ::Edit::UIHandlers::Default, &ScriptCanvasEditorSettings::m_sceneContextMenuNodePaletteWidth, "Context Menu Width", "Allows you to configure the width of the context menu that opens on a Script Canvas graph")
->Attribute(AZ::Edit::Attributes::Min, 120)
;
editContext->Class<ExperimentalSettings>("Experimental", "Settings for features under development that may not behave as expected yet.")
+2
View File
@@ -357,6 +357,8 @@ namespace ScriptCanvasEditor
AZ::u32 m_alignmentTimeMS;
StylingSettings m_stylingSettings;
AZ::u32 m_sceneContextMenuNodePaletteWidth = 300;
};
}
}
@@ -8,16 +8,8 @@
#pragma once
#include <QCoreApplication>
#include <AzCore/Serialization/Json/StackedString.h>
#include <AzCore/std/string/conversions.h>
#include <ScriptCanvas/Core/Slot.h>
#include <GraphCanvas/Types/TranslationTypes.h>
#include <Source/Translation/TranslationBus.h>
#include <AzFramework/Gem/GemInfo.h>
#include <AzCore/Settings/SettingsRegistry.h>
#include <ScriptCanvas/Data/Data.h>
namespace Translation
{
@@ -28,447 +20,32 @@ namespace Translation
static constexpr const char* MissingFunctionKey = "Globals.MissingFunction";
static constexpr const char* EBusHandlerOutSlot = "Globals.EBusHandler.OutSlot";
}
static inline bool GetValue(const AZStd::string key, AZStd::string& value)
{
GraphCanvas::TranslationKey tkey;
tkey = key;
bool result = false;
GraphCanvas::TranslationRequestBus::BroadcastResult(result, &GraphCanvas::TranslationRequests::Get, key, value);
return result;
}
}
namespace GraphCanvasAttributeHelper
{
template <typename T>
AZStd::string GetStringAttribute(const T* source, const AZ::Crc32& attribute)
{
AZStd::string attributeValue = "";
if (auto attributeItem = azrtti_cast<AZ::AttributeData<AZStd::string>*>(AZ::FindAttribute(attribute, source->m_attributes)))
{
attributeValue = attributeItem->Get(nullptr);
}
return attributeValue;
}
inline AZStd::string ReadStringAttribute(const AZ::AttributeArray& attributes, const AZ::Crc32& attribute)
{
AZStd::string attributeValue = "";
if (auto attributeItem = azrtti_cast<AZ::AttributeData<AZStd::string>*>(AZ::FindAttribute(attribute, attributes)))
{
attributeValue = attributeItem->Get(nullptr);
return attributeValue;
}
if (auto attributeItem = azrtti_cast<AZ::AttributeData<const char*>*>(AZ::FindAttribute(attribute, attributes)))
{
attributeValue = attributeItem->Get(nullptr);
return attributeValue;
}
return {};
}
}
namespace ScriptCanvasEditor
{
enum class TranslationContextGroup : AZ::u32
namespace TranslationHelper
{
EbusSender,
EbusHandler,
ClassMethod,
GlobalMethod,
Invalid
};
enum class TranslationItemType : AZ::u32
{
Node,
Wrapper,
ExecutionInSlot,
ExecutionOutSlot,
ParamDataSlot,
ReturnDataSlot,
BusIdSlot,
Invalid
};
enum class TranslationKeyId : AZ::u32
{
Name,
Tooltip,
Category,
Invalid
};
namespace TranslationKeyParts
{
const char* const handler = "HANDLER_";
const char* const name = "NAME";
const char* const tooltip = "TOOLTIP";
const char* const category = "CATEGORY";
const char* const in = "IN";
const char* const out = "OUT";
const char* const param = "PARAM";
const char* const output = "OUTPUT";
const char* const busid = "BUSID";
}
namespace TranslationContextGroupParts
{
const char* const ebusSender = "EBus";
const char* const ebusHandler = "Handler";
const char* const classMethod = "Method";
constexpr const char* const globalMethod = "GlobalMethod";
};
// The context name and keys generated by TranslationHelper should match the keys
// being exported by the TSGenerateAction.cpp in the ScriptCanvasDeveloper Gem.
class TranslationHelper
{
public:
static AZStd::string GetContextName(TranslationContextGroup group, AZStd::string_view keyBase)
{
if (group == TranslationContextGroup::Invalid || keyBase.empty())
{
// Missing information
return AZStd::string();
}
const char* groupPart;
switch (group)
{
case TranslationContextGroup::EbusSender:
groupPart = TranslationContextGroupParts::ebusSender;
break;
case TranslationContextGroup::EbusHandler:
groupPart = TranslationContextGroupParts::ebusHandler;
break;
case TranslationContextGroup::ClassMethod:
groupPart = TranslationContextGroupParts::classMethod;
break;
case TranslationContextGroup::GlobalMethod:
groupPart = TranslationContextGroupParts::globalMethod;
break;
default:
AZ_Warning("TranslationComponent", false, "Invalid translation group ID.");
groupPart = "";
}
AZStd::string fullKey = AZStd::string::format("%s: %.*s", groupPart,
aznumeric_cast<int>(keyBase.size()), keyBase.data());
return fullKey;
}
// UserDefined
static AZStd::string GetUserDefinedNodeKey(AZStd::string_view contextName, AZStd::string_view nodeName, TranslationKeyId keyId)
{
return GetKey(TranslationContextGroup::ClassMethod, contextName, nodeName, TranslationItemType::Node, keyId);
}
////
static AZStd::string GetKey(TranslationContextGroup group, AZStd::string_view keyBase, AZStd::string_view keyName, TranslationItemType type, TranslationKeyId keyId, int paramIndex = 0)
{
if (group == TranslationContextGroup::Invalid || keyBase.empty()
|| type == TranslationItemType::Invalid || keyId == TranslationKeyId::Invalid)
{
// Missing information
return AZStd::string();
}
if (type != TranslationItemType::Wrapper && keyName.empty())
{
// Missing information
return AZStd::string();
}
AZStd::string fullKey;
const char* prefix = "";
if (group == TranslationContextGroup::EbusHandler)
{
prefix = TranslationKeyParts::handler;
}
const char* keyPart = GetKeyPart(keyId);
switch (type)
{
case TranslationItemType::Node:
fullKey = AZStd::string::format("%s%.*s_%.*s_%s",
prefix,
aznumeric_cast<int>(keyBase.size()),
keyBase.data(),
aznumeric_cast<int>(keyName.size()),
keyName.data(),
keyPart
);
break;
case TranslationItemType::Wrapper:
fullKey = GetClassKey(group, keyBase, keyId);
break;
case TranslationItemType::ExecutionInSlot:
fullKey = AZStd::string::format("%s%.*s_%.*s_%s_%s",
prefix,
aznumeric_cast<int>(keyBase.size()),
keyBase.data(),
aznumeric_cast<int>(keyName.size()),
keyName.data(),
TranslationKeyParts::in,
keyPart
);
break;
case TranslationItemType::ExecutionOutSlot:
fullKey = AZStd::string::format("%s%.*s_%.*s_%s_%s",
prefix,
aznumeric_cast<int>(keyBase.size()),
keyBase.data(),
aznumeric_cast<int>(keyName.size()),
keyName.data(),
TranslationKeyParts::out,
keyPart
);
break;
case TranslationItemType::ParamDataSlot:
fullKey = AZStd::string::format("%s%.*s_%.*s_%s%d_%s",
prefix,
aznumeric_cast<int>(keyBase.size()),
keyBase.data(),
aznumeric_cast<int>(keyName.size()),
keyName.data(),
TranslationKeyParts::param,
paramIndex,
keyPart
);
break;
case TranslationItemType::ReturnDataSlot:
fullKey = AZStd::string::format("%s%.*s_%.*s_%s%d_%s",
prefix,
aznumeric_cast<int>(keyBase.size()),
keyBase.data(),
aznumeric_cast<int>(keyName.size()),
keyName.data(),
TranslationKeyParts::output,
paramIndex,
keyPart
);
break;
case TranslationItemType::BusIdSlot:
fullKey = AZStd::string::format("%s%.*s_%.*s_%s_%s",
prefix,
aznumeric_cast<int>(keyBase.size()),
keyBase.data(),
aznumeric_cast<int>(keyName.size()),
keyName.data(),
TranslationKeyParts::busid,
keyPart
);
break;
default:
AZ_Warning("ScriptCanvas TranslationHelper", false, "Invalid translation item type.");
}
AZStd::to_upper(fullKey.begin(), fullKey.end());
return fullKey;
}
static AZStd::string GetClassKey(TranslationContextGroup group, AZStd::string_view keyBase, TranslationKeyId keyId)
{
const char* prefix = "";
if (group == TranslationContextGroup::EbusHandler)
{
prefix = TranslationKeyParts::handler;
}
const char* keyPart = GetKeyPart(keyId);
AZStd::string fullKey = AZStd::string::format("%s%.*s_%s",
prefix,
aznumeric_cast<int>(keyBase.size()),
keyBase.data(),
keyPart
);
AZStd::to_upper(fullKey.begin(), fullKey.end());
return fullKey;
}
static AZStd::string GetGlobalMethodKey(AZStd::string_view keyName, TranslationItemType keyType,
TranslationKeyId keyId, int paramIndex = 0)
{
const char* keyPart = GetKeyPart(keyId);
AZStd::string fullKey;
switch (keyType)
{
case TranslationItemType::Node:
fullKey = AZStd::string::format("%.*s_%s",
aznumeric_cast<int>(keyName.size()),
keyName.data(),
keyPart
);
break;
case TranslationItemType::ExecutionInSlot:
fullKey = AZStd::string::format("%.*s_%s_%s",
aznumeric_cast<int>(keyName.size()),
keyName.data(),
TranslationKeyParts::in,
keyPart
);
break;
case TranslationItemType::ExecutionOutSlot:
fullKey = AZStd::string::format("%.*s_%s_%s",
aznumeric_cast<int>(keyName.size()),
keyName.data(),
TranslationKeyParts::out,
keyPart
);
break;
case TranslationItemType::ParamDataSlot:
fullKey = AZStd::string::format("%.*s_%s%d_%s",
aznumeric_cast<int>(keyName.size()),
keyName.data(),
TranslationKeyParts::param,
paramIndex,
keyPart
);
break;
case TranslationItemType::ReturnDataSlot:
fullKey = AZStd::string::format("%.*s_%s%d_%s",
aznumeric_cast<int>(keyName.size()),
keyName.data(),
TranslationKeyParts::output,
paramIndex,
keyPart
);
break;
default:
AZ_Warning("ScriptCanvas TranslationHelper", false, "Invalid translation item type.");
}
AZStd::to_upper(fullKey.begin(), fullKey.end());
return fullKey;
}
static const char* GetKeyPart(TranslationKeyId keyId)
{
const char* keyPart = "";
switch (keyId)
{
case TranslationKeyId::Name:
keyPart = TranslationKeyParts::name;
break;
case TranslationKeyId::Tooltip:
keyPart = TranslationKeyParts::tooltip;
break;
case TranslationKeyId::Category:
keyPart = TranslationKeyParts::category;
break;
default:
AZ_Warning("ScriptCanvas TranslationHelper", false, "Invalid translation key ID.");
}
return keyPart;
}
static TranslationItemType GetItemType(ScriptCanvas::SlotDescriptor slotDescriptor)
{
if (slotDescriptor == ScriptCanvas::SlotDescriptors::ExecutionIn())
{
return TranslationItemType::ExecutionInSlot;
}
else if (slotDescriptor == ScriptCanvas::SlotDescriptors::ExecutionOut())
{
return TranslationItemType::ExecutionOutSlot;
}
else if (slotDescriptor == ScriptCanvas::SlotDescriptors::DataIn())
{
return TranslationItemType::ParamDataSlot;
}
else if (slotDescriptor == ScriptCanvas::SlotDescriptors::DataOut())
{
return TranslationItemType::ReturnDataSlot;
}
return TranslationItemType::Invalid;
}
static AZStd::string GetSafeTypeName(ScriptCanvas::Data::Type dataType)
inline AZStd::string GetSafeTypeName(ScriptCanvas::Data::Type dataType)
{
if (!dataType.IsValid())
{
return "";
}
return ScriptCanvas::Data::GetName(dataType);
AZStd::string azType = dataType.GetAZType().ToString<AZStd::string>();
GraphCanvas::TranslationKey key;
key << "BehaviorType" << azType << "details";
GraphCanvas::TranslationRequests::Details details;
details.m_name = ScriptCanvas::Data::GetName(dataType);
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details);
return details.m_name;
}
static AZStd::string GetKeyTranslation(TranslationContextGroup group, AZStd::string_view keyBase, AZStd::string_view keyName, TranslationItemType type, TranslationKeyId keyId, int paramIndex = 0)
{
AZStd::string translationContext = TranslationHelper::GetContextName(group, keyBase);
AZStd::string translationKey = TranslationHelper::GetKey(group, keyBase, keyName, type, keyId, paramIndex);
AZStd::string translated = QCoreApplication::translate(translationContext.c_str(), translationKey.c_str()).toUtf8().data();
if (translated == translationKey)
{
return AZStd::string();
}
return translated;
}
static AZStd::string GetClassKeyTranslation(TranslationContextGroup group, AZStd::string_view keyBase, TranslationKeyId keyId)
{
AZStd::string translationContext = TranslationHelper::GetContextName(group, keyBase);
AZStd::string translationKey = TranslationHelper::GetClassKey(group, keyBase, keyId);
AZStd::string translated = QCoreApplication::translate(translationContext.c_str(), translationKey.c_str()).toUtf8().data();
if (translated == translationKey)
{
return AZStd::string();
}
return translated;
}
static AZStd::string GetGlobalMethodKeyTranslation(AZStd::string_view keyName,
TranslationItemType keyType, TranslationKeyId keyId, int paramIndex = 0)
{
AZStd::string translationKey = TranslationHelper::GetGlobalMethodKey(keyName, keyType, keyId, paramIndex);
AZStd::string translated = QCoreApplication::translate(TranslationContextGroupParts::globalMethod, translationKey.c_str()).toUtf8().data();
if (translated == translationKey)
{
return AZStd::string();
}
return translated;
}
// Use the StackedString to index the translation keys as a Json Pointer
static AZ::StackedString GetAzEventHandlerRootPointer(AZStd::string_view eventName)
{
AZ::StackedString path(AZ::StackedString::Format::JsonPointer);
path.Push(eventName);
return path;
}
};
}
}
@@ -69,6 +69,9 @@ namespace ScriptCanvasEditor
void CanvasWidget::ShowScene(const ScriptCanvas::ScriptCanvasId& scriptCanvasId)
{
EditorGraphRequests* editorGraphRequests = EditorGraphRequestBus::FindFirstHandler(scriptCanvasId);
// #sc-editor-asset check if needed: editorGraphRequests->SetAssetId(m_assetId);
editorGraphRequests->CreateGraphCanvasScene();
AZ::EntityId graphCanvasSceneId = editorGraphRequests->GetGraphCanvasGraphId();
@@ -81,6 +84,13 @@ namespace ScriptCanvasEditor
void CanvasWidget::SetAssetId(const ScriptCanvasEditor::SourceHandle& assetId)
{
m_assetId = assetId;
// #sc-editor-asset check if needed:
/*
if (EditorGraphRequests* editorGraphRequests = EditorGraphRequestBus::FindFirstHandler(m_scriptCanvasId))
{
editorGraphRequests->SetAssetId(m_assetId);
}
*/
}
const GraphCanvas::ViewId& CanvasWidget::GetViewId() const
@@ -16,7 +16,6 @@
#include <AzCore/Serialization/Utils.h>
#include <AzCore/UserSettings/UserSettings.h>
#include <GraphCanvas/Types/TranslationTypes.h>
#include <GraphCanvas/Components/SceneBus.h>
#include <GraphCanvas/Components/StyleBus.h>
@@ -200,7 +199,7 @@ namespace ScriptCanvasEditor
AZ::TypeId DataTypePaletteModel::FindTypeIdForIndex(const QModelIndex& index) const
{
AZ::TypeId retVal;
AZ::TypeId retVal = AZ::TypeId::CreateNull();
if (index.row() >= 0 && index.row() < m_variableTypes.size())
{
@@ -244,7 +243,16 @@ namespace ScriptCanvasEditor
AZStd::string DataTypePaletteModel::FindTypeNameForTypeId(const AZ::TypeId& typeId) const
{
return TranslationHelper::GetSafeTypeName(ScriptCanvas::Data::FromAZType(typeId));
GraphCanvas::TranslationKey key;
key << "BehaviorType" << typeId.ToString<AZStd::string>() << "details";
GraphCanvas::TranslationRequests::Details details;
details.m_name = TranslationHelper::GetSafeTypeName(ScriptCanvas::Data::FromAZType(typeId));
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details);
return details.m_name;
}
void DataTypePaletteModel::TogglePendingPinChange(const AZ::Uuid& azVarType)
@@ -83,7 +83,16 @@ namespace ScriptCanvasEditor
, m_propertyStatus(propertyStatus)
{
GraphCanvas::TranslationKey key;
key << "BehaviorClass" << className << "methods" << methodName << "details";
AZStd::string updatedMethodName;
if (propertyStatus != ScriptCanvas::PropertyStatus::None)
{
updatedMethodName = (propertyStatus == ScriptCanvas::PropertyStatus::Getter) ? "Get" : "Set";
}
updatedMethodName.append(methodName);
key << "BehaviorClass" << className << "methods" << updatedMethodName << "details";
GraphCanvas::TranslationRequests::Details details;
details.m_name = methodName;
@@ -94,15 +103,6 @@ namespace ScriptCanvasEditor
SetName(details.m_name.c_str());
SetToolTip(details.m_tooltip.c_str());
if (propertyStatus == ScriptCanvas::PropertyStatus::Getter)
{
SetName(AZStd::string::format("Get %s", GetName().toUtf8().data()).data());
}
else if (propertyStatus == ScriptCanvas::PropertyStatus::Setter)
{
SetName(AZStd::string::format("Set %s", GetName().toUtf8().data()).data());
}
SetTitlePalette("MethodNodeTitlePalette");
}
@@ -160,13 +160,14 @@ namespace ScriptCanvasEditor
: DraggableNodePaletteTreeItem(nodeModelInformation.m_methodName, ScriptCanvasEditor::AssetEditorId)
, m_methodName{ nodeModelInformation.m_methodName }
{
SetToolTip(QString::fromUtf8(nodeModelInformation.m_displayName.data(),
aznumeric_cast<int>(nodeModelInformation.m_displayName.size())));
SetToolTip(QString::fromUtf8(nodeModelInformation.m_toolTip.data(),
aznumeric_cast<int>(nodeModelInformation.m_toolTip.size())));
SetTitlePalette("MethodNodeTitlePalette");
if (!nodeModelInformation.m_displayName.empty())
{
SetName(nodeModelInformation.m_displayName.c_str());
}
}
GraphCanvas::GraphCanvasMimeEvent* GlobalMethodEventPaletteTreeItem::CreateMimeEvent() const
@@ -180,6 +181,27 @@ namespace ScriptCanvasEditor
return m_methodName;
}
AZ::IO::Path GlobalMethodEventPaletteTreeItem::GetTranslationDataPath() const
{
AZStd::string propertyName = m_methodName;
AZ::StringFunc::Replace(propertyName, "::Getter", "");
AZ::StringFunc::Replace(propertyName, "::Setter", "");
AZStd::string filename = GraphCanvas::TranslationKey::Sanitize(propertyName);
return AZ::IO::Path("Properties") / filename;
}
void GlobalMethodEventPaletteTreeItem::GenerateTranslationData()
{
AZStd::string propertyName = m_methodName;
AZ::StringFunc::Replace(propertyName, "::Getter", "");
AZ::StringFunc::Replace(propertyName, "::Setter", "");
ScriptCanvasEditorTools::TranslationGeneration translation;
translation.TranslateBehaviorProperty(propertyName);
}
//////////////////////////////
// CreateCustomNodeMimeEvent
//////////////////////////////
@@ -70,10 +70,13 @@ namespace ScriptCanvasEditor
AZ::ComponentApplicationBus::BroadcastResult(behaviorContext, &AZ::ComponentApplicationRequests::GetBehaviorContext);
const char* className = m_className.toUtf8().data();
auto behaviorClass = behaviorContext->m_classes.find(className);
if (behaviorContext->m_classes.contains(className))
{
auto behaviorClass = behaviorContext->m_classes.find(className);
ScriptCanvasEditorTools::TranslationGeneration translation;
translation.TranslateBehaviorClass(behaviorClass->second);
ScriptCanvasEditorTools::TranslationGeneration translation;
translation.TranslateBehaviorClass(behaviorClass->second);
}
}
private:
@@ -121,6 +124,10 @@ namespace ScriptCanvasEditor
const AZStd::string& GetMethodName() const;
AZ::IO::Path GetTranslationDataPath() const override;
void GenerateTranslationData() override;
private:
AZStd::string m_methodName;
};
@@ -611,8 +611,9 @@ namespace
{
categoryPath.append(details.m_name.c_str());
}
else
else if (categoryPath.contains("Other"))
{
// Use the BehaviorEBus name to categorize within the 'Other' category
categoryPath.append(behaviorEbus.m_name.c_str());
}
}
@@ -657,8 +658,9 @@ namespace
{
categoryPath.append(details.m_name.c_str());
}
else
else if (categoryPath.contains("Other"))
{
// Use the behavior EBus name to categorize within the 'Other' category
categoryPath.append(behaviorEbus.m_name.c_str());
}
@@ -877,6 +879,7 @@ namespace ScriptCanvasEditor
void NodePaletteModel::RepopulateModel()
{
AZ_PROFILE_FUNCTION(ScriptCanvas);
ClearRegistry();
PopulateNodePaletteModel((*this));
@@ -1019,12 +1022,19 @@ namespace ScriptCanvasEditor
GraphCanvas::TranslationRequestBus::BroadcastResult(catdetails, &GraphCanvas::TranslationRequests::GetDetails, catkey, catdetails);
GraphCanvas::TranslationKey key;
key << "BehaviorClass" << methodClass.c_str() << "methods" << methodName.c_str() << "details";
AZStd::string updatedMethodName;
if (propertyStatus != ScriptCanvas::PropertyStatus::None)
{
updatedMethodName = (propertyStatus == ScriptCanvas::PropertyStatus::Getter) ? "Get" : "Set";
}
updatedMethodName += methodName;
key << "BehaviorClass" << methodClass.c_str() << "methods" << updatedMethodName << "details";
GraphCanvas::TranslationRequests::Details details;
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details);
methodModelInformation->m_displayName = details.m_name.empty() ? methodName : details.m_name;
methodModelInformation->m_displayName = details.m_name.empty() ? updatedMethodName : details.m_name;
methodModelInformation->m_toolTip = details.m_tooltip;
methodModelInformation->m_categoryPath = categoryPath;
@@ -1049,17 +1059,22 @@ namespace ScriptCanvasEditor
if (auto registerIter = m_registeredNodes.find(nodeIdentifier); registerIter == m_registeredNodes.end())
{
auto methodModelInformation = AZStd::make_unique<GlobalMethodNodeModelInformation>();
methodModelInformation->m_methodName = behaviorMethod.m_name;
methodModelInformation->m_nodeIdentifier = nodeIdentifier;
methodModelInformation->m_methodName = behaviorMethod.m_name;
methodModelInformation->m_titlePaletteOverride = "MethodNodeTitlePalette";
AZStd::string name = behaviorProperty->m_name;
AZ::StringFunc::Replace(name, "::Getter", "");
AZ::StringFunc::Replace(name, "::Setter", "");
GraphCanvas::TranslationKey key;
key << "Constant" << behaviorProperty->m_name.c_str() << "details";
key << "Constant" << name << "details";
GraphCanvas::TranslationRequests::Details details;
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details);
methodModelInformation->m_displayName = details.m_name;
methodModelInformation->m_toolTip = details.m_tooltip;
methodModelInformation->m_categoryPath = details.m_category;
@@ -26,12 +26,18 @@
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/UserSettings/UserSettings.h>
#include <AzCore/std/containers/map.h>
#include <AzFramework/Gem/GemInfo.h>
#include <AzFramework/StringFunc/StringFunc.h>
#include <AzToolsFramework/API/EditorAssetSystemAPI.h>
#include <AzToolsFramework/AssetBrowser/Entries/ProductAssetBrowserEntry.h>
#include <AzToolsFramework/AssetBrowser/Entries/SourceAssetBrowserEntry.h>
#include <AzToolsFramework/AssetEditor/AssetEditorUtils.h>
#include <AzToolsFramework/ToolsComponents/EditorComponentBase.h>
#include <AzQtComponents/Utilities/DesktopUtilities.h>
#include <Editor/Assets/ScriptCanvasAssetHelpers.h>
#include <Editor/Components/IconComponent.h>
#include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
@@ -50,9 +56,11 @@
#include <Editor/View/Widgets/NodePalette/VariableNodePaletteTreeItemTypes.h>
#include <Editor/View/Widgets/ScriptCanvasNodePaletteDockWidget.h>
#include <Editor/View/Widgets/ui_ScriptCanvasNodePaletteToolbar.h>
#include <GraphCanvas/Widgets/NodePalette/NodePaletteTreeView.h>
#include <GraphCanvas/Widgets/NodePalette/NodePaletteWidget.h>
#include <GraphCanvas/Widgets/NodePalette/TreeItems/NodePaletteTreeItem.h>
#include <ScriptCanvas/Asset/RuntimeAsset.h>
#include <ScriptCanvas/Core/Attributes.h>
#include <ScriptCanvas/Core/SubgraphInterfaceUtility.h>
@@ -63,7 +71,6 @@
#include <ScriptCanvas/Libraries/Libraries.h>
#include <ScriptCanvas/Utils/NodeUtils.h>
#include <ScriptEvents/ScriptEventsAsset.h>
#include "AzQtComponents/Utilities/DesktopUtilities.h"
namespace ScriptCanvasEditor
{
@@ -639,7 +646,7 @@ namespace ScriptCanvasEditor
m_mimeType = NodePaletteDockWidget::GetMimeType();
m_isInContextMenu = isInContextMenu;
m_allowArrowKeyNavigation = isInContextMenu;
m_saveIdentifier = m_isInContextMenu ? "ScriptCanvas" : "ScriptCnavas_ContextMenu";
m_saveIdentifier = m_isInContextMenu ? "ScriptCanvas" : "ScriptCanvas_ContextMenu";
m_rootTreeItem = Widget::NodePaletteWidget::ExternalCreateNodePaletteRoot(nodePaletteModel, assetModel);
}
@@ -710,7 +717,7 @@ namespace ScriptCanvasEditor
{
m_openTranslationData = new QAction(treeView);
m_openTranslationData->setText("Open Translation Data");
m_openTranslationData->setText("Explore Translation Data");
treeView->addAction(m_openTranslationData);
QObject::connect(m_openTranslationData, &QAction::triggered, this, &NodePaletteDockWidget::OpenTranslationData);
@@ -877,17 +884,14 @@ namespace ScriptCanvasEditor
{
QModelIndexList indexList = GetTreeView()->selectionModel()->selectedRows();
if (indexList.size() == 1)
QSortFilterProxyModel* filterModel = static_cast<QSortFilterProxyModel*>(GetTreeView()->model());
for (const QModelIndex& index : indexList)
{
QSortFilterProxyModel* filterModel = static_cast<QSortFilterProxyModel*>(GetTreeView()->model());
QModelIndex sourceIndex = filterModel->mapToSource(index);
for (const QModelIndex& index : indexList)
{
QModelIndex sourceIndex = filterModel->mapToSource(index);
GraphCanvas::NodePaletteTreeItem* nodePaletteItem = static_cast<GraphCanvas::NodePaletteTreeItem*>(sourceIndex.internalPointer());
nodePaletteItem->GenerateTranslationData();
}
GraphCanvas::NodePaletteTreeItem* nodePaletteItem = static_cast<GraphCanvas::NodePaletteTreeItem*>(sourceIndex.internalPointer());
nodePaletteItem->GenerateTranslationData();
}
}
@@ -19,7 +19,6 @@
#include <AzToolsFramework/ToolsComponents/EditorComponentBase.h>
#include <GraphCanvas/Types/TranslationTypes.h>
#include <GraphCanvas/Components/SceneBus.h>
#include <GraphCanvas/Components/StyleBus.h>
@@ -18,7 +18,6 @@
#include <AzToolsFramework/ToolsComponents/EditorComponentBase.h>
#include <GraphCanvas/Types/TranslationTypes.h>
#include <GraphCanvas/Components/SceneBus.h>
#include <GraphCanvas/Components/StyleBus.h>
@@ -416,6 +416,8 @@ namespace ScriptCanvasEditor
, m_closeCurrentGraphAfterSave(false)
, m_styleManager(ScriptCanvasEditor::AssetEditorId, "ScriptCanvas/StyleSheet/graphcanvas_style.json")
{
AZ_PROFILE_FUNCTION(ScriptCanvas);
VariablePaletteRequestBus::Handler::BusConnect();
GraphCanvas::AssetEditorAutomationRequestBus::Handler::BusConnect(ScriptCanvasEditor::AssetEditorId);
@@ -12,6 +12,8 @@
#include <QMimeData>
#include <QInputDialog>
#include <AzCore/UserSettings/UserSettings.h>
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
#include <Editor/Nodes/NodeUtils.h>
@@ -41,6 +43,8 @@
#include <Editor/View/Widgets/NodePalette/VariableNodePaletteTreeItemTypes.h>
#include "ScriptCanvasContextMenus.h"
#include "Settings.h"
#include <ScriptCanvas/Core/NodeBus.h>
#include <ScriptCanvas/Core/Slot.h>
#include <GraphCanvas/Editor/EditorTypes.h>
@@ -53,6 +57,7 @@
#include <GraphCanvas/Components/Nodes/NodeTitleBus.h>
#include <GraphCanvas/Components/NodeDescriptors/FunctionDefinitionNodeDescriptorComponent.h>
namespace ScriptCanvasEditor
{
////////////////////////////
@@ -805,6 +810,13 @@ namespace ScriptCanvasEditor
SceneContextMenu::SceneContextMenu(const NodePaletteModel& paletteModel, AzToolsFramework::AssetBrowser::AssetBrowserFilterModel* assetModel)
: GraphCanvas::SceneContextMenu(ScriptCanvasEditor::AssetEditorId)
{
auto userSettings = AZ::UserSettings::CreateFind<EditorSettings::ScriptCanvasEditorSettings>(AZ_CRC("ScriptCanvasPreviewSettings", 0x1c5a2965), AZ::UserSettings::CT_LOCAL);
if (userSettings)
{
m_userNodePaletteWidth = userSettings->m_sceneContextMenuNodePaletteWidth;
}
const bool inContextMenu = true;
Widget::ScriptCanvasNodePaletteConfig paletteConfig(paletteModel, assetModel, inContextMenu);
AddNodePaletteMenuAction(paletteConfig);
@@ -59,6 +59,7 @@ namespace ScriptCanvas
m_script = AZStd::move(other.m_script);
m_requiredAssets = AZStd::move(other.m_requiredAssets);
m_requiredScriptEvents = AZStd::move(other.m_requiredScriptEvents);
m_areStaticsInitialized = AZStd::move(other.m_areStaticsInitialized);
}
return *this;
@@ -76,6 +76,9 @@ namespace ScriptCanvas
AZStd::vector<AZ::BehaviorValueParameter> m_activationInputStorage;
Execution::ActivationInputRange m_activationInputRange;
// used to initialize statics only once, and not necessarily on the loading thread
bool m_areStaticsInitialized = false;
bool RequiresStaticInitialization() const;
bool RequiresDependencyConstructionParameters() const;
@@ -94,7 +94,6 @@ namespace ScriptCanvas
RuntimeAsset* runtimeAsset = asset.GetAs<RuntimeAsset>();
AZ_Assert(runtimeAsset, "RuntimeAssetHandler::InitAsset This should be a Script Canvas runtime asset, as this is the only type this handler processes!");
Execution::Context::InitializeActivationData(runtimeAsset->GetData());
Execution::InitializeInterpretedStatics(runtimeAsset->GetData());
}
}
@@ -157,4 +156,5 @@ namespace ScriptCanvas
}
}
}
}
@@ -56,10 +56,16 @@ namespace ScriptCanvas
{
const Data::Type outputType = (unpackedTypes.size() == 1 && AZ::BehaviorContextHelper::IsStringParameter(*result)) ? Data::Type::String() : Data::FromAZType(unpackedTypes[resultIndex]);
AZStd::string resultSlotName(AZStd::string::format("Result: %s", Data::GetName(outputType).data()));
AZStd::string resultSlotName(Data::GetName(outputType));
AZStd::string className = outputConfig.config.m_className ? *outputConfig.config.m_className : "";
if (className.empty())
{
className = outputConfig.config.m_prettyClassName;
}
GraphCanvas::TranslationKey key;
key << "BehaviorClass" << *outputConfig.config.m_className << "methods" << *outputConfig.config.m_lookupName << "results" << resultIndex << "details";
key << "BehaviorClass" << className << "methods" << *outputConfig.config.m_lookupName << "results" << resultIndex << "details";
GraphCanvas::TranslationRequests::Details details;
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details);
@@ -74,7 +80,6 @@ namespace ScriptCanvas
if (outputConfig.isReturnValueOverloaded)
{
DynamicDataSlotConfiguration slotConfiguration;
//slotConfiguration.m_name = outputConfig.outputNamePrefix + resultSlotName;
slotConfiguration.m_dynamicDataType = outputConfig.methodNode->GetOverloadedOutputType(resultIndex);
@@ -2963,6 +2963,11 @@ namespace ScriptCanvas
}
}
AZStd::string Node::GetNodeTypeName() const
{
return RTTI_GetTypeName();
}
AZStd::string Node::GetDebugName() const
{
if (GetEntityId().IsValid())
@@ -525,6 +525,7 @@ namespace ScriptCanvas
void SignalDeserialized();
virtual AZStd::string GetNodeTypeName() const;
virtual AZStd::string GetDebugName() const;
virtual AZStd::string GetNodeName() const;
@@ -1093,7 +1094,7 @@ protected:
{
DataSlotConfiguration slotConfiguration;
slotConfiguration.m_name = AZStd::string::format("%s: %s", t_Traits::GetResultName(0), Data::GetName(Data::FromAZType<AZStd::decay_t<ResultType>>()).data());
slotConfiguration.m_name = t_Traits::GetResultName(0);
slotConfiguration.SetType(Data::FromAZType<AZStd::decay_t<ResultType>>());
slotConfiguration.SetConnectionType(ConnectionType::Output);
@@ -1115,7 +1116,7 @@ protected:
{
DataSlotConfiguration slotConfiguration;
slotConfiguration.m_name = AZStd::string::format("%s: %s", t_Traits::GetResultName(Index), Data::GetName(Data::FromAZType<AZStd::decay_t<AZStd::tuple_element_t<Index, ResultType>>>()).data());
slotConfiguration.m_name = t_Traits::GetResultName(Index);
slotConfiguration.SetType(Data::FromAZType<AZStd::decay_t<AZStd::tuple_element_t<Index, ResultType>>>());
slotConfiguration.SetConnectionType(connectionType);
@@ -256,7 +256,7 @@ namespace ScriptCanvas
{
DataSlotConfiguration slotConfiguration;
slotConfiguration.m_name = AZStd::string::format("%s: %s", Data::Traits<ArgType>::GetName().data(), t_Traits::GetArgName(Index));
slotConfiguration.m_name = t_Traits::GetArgName(Index);
slotConfiguration.ConfigureDatum(AZStd::move(Datum(Data::FromAZType(Data::Traits<ArgType>::GetAZType()), Datum::eOriginality::Copy)));
slotConfiguration.SetConnectionType(connectionType);
@@ -182,7 +182,7 @@ namespace ScriptCanvas
static AZ::Uuid GetAZType(const Data::Type& = {}) { return azrtti_typeid<CRCType>(); }
static Data::Type GetSCType(const AZ::TypeId& = AZ::TypeId::CreateNull()) { return Data::Type::CRC(); }
static AZStd::string GetName(const Data::Type& = {}) { return "CRC"; }
static AZStd::string GetName(const Data::Type& = {}) { return "Tag"; }
static Type GetDefault(const Data::Type& = {}) { return CRCType(); }
static bool IsDefault(const Type& value, const Data::Type& = {}) { return value == GetDefault(); }
};
@@ -198,7 +198,7 @@ namespace ScriptCanvas
static AZ::Uuid GetAZType(const Data::Type& = {}) { return azrtti_typeid<EntityIDType>(); }
static Data::Type GetSCType(const AZ::TypeId& = AZ::TypeId::CreateNull()) { return Data::Type::EntityID(); }
static AZStd::string GetName(const Data::Type& = {}) { return "EntityID"; }
static AZStd::string GetName(const Data::Type& = {}) { return "EntityId"; }
static Type GetDefault(const Data::Type& = {}) { return GraphOwnerId; }
static bool IsDefault(const Type& value, const Data::Type& = {}) { return value == GetDefault(); }
};
@@ -19,6 +19,10 @@
#include <ScriptCanvas/Execution/ExecutionStateDeclarations.h>
#include <ScriptCanvas/Grammar/PrimitivesDeclarations.h>
#if !defined(_RELEASE)
#define SCRIPT_CANVAS_RUNTIME_ASSET_CHECK
#endif
namespace AZ
{
class ReflectContext;
@@ -501,41 +501,53 @@ namespace ScriptCanvas
return lua_gettop(lua);
}
void InitializeInterpretedStatics(const RuntimeData& runtimeData)
void InitializeInterpretedStatics(RuntimeData& runtimeData)
{
#if defined(AZ_PROFILE_BUILD) || defined(AZ_DEBUG_BUILD)
Execution::InitializeFromLuaStackFunctions(const_cast<Grammar::DebugSymbolMap&>(runtimeData.m_debugMap));
#endif
if (runtimeData.RequiresStaticInitialization())
if (!runtimeData.m_areStaticsInitialized)
{
AZ::ScriptLoadResult result{};
AZ::ScriptSystemRequestBus::BroadcastResult(result, &AZ::ScriptSystemRequests::LoadAndGetNativeContext, runtimeData.m_script, AZ::k_scriptLoadBinary, AZ::ScriptContextIds::DefaultScriptContextId);
AZ_Assert(result.status == AZ::ScriptLoadResult::Status::Initial, "ExecutionStateInterpreted script asset was valid but failed to load.");
AZ_Assert(result.lua, "Must have a default script context and a lua_State");
AZ_Assert(lua_istable(result.lua, -1), "No run-time execution was available for this script");
runtimeData.m_areStaticsInitialized = true;
auto lua = result.lua;
// Lua: table
lua_getfield(lua, -1, Grammar::k_InitializeStaticsName);
// Lua: table, ?
if (lua_isfunction(lua, -1))
for (auto& dependency : runtimeData.m_requiredAssets)
{
// Lua: table, function
lua_pushvalue(lua, -2);
// Lua: table, function, table
for (auto& clonerSource : runtimeData.m_cloneSources)
{
lua_pushlightuserdata(lua, const_cast<void*>(reinterpret_cast<const void*>(&clonerSource)));
}
// Lua: table, function, table, cloners...
AZ::Internal::LuaSafeCall(lua, aznumeric_caster(runtimeData.m_cloneSources.size() + 1), 0);
// Lua: table
lua_pop(lua, 1);
InitializeInterpretedStatics(dependency.Get()->GetData());
}
else
#if defined(AZ_PROFILE_BUILD) || defined(AZ_DEBUG_BUILD)
Execution::InitializeFromLuaStackFunctions(const_cast<Grammar::DebugSymbolMap&>(runtimeData.m_debugMap));
#endif
AZ_WarningOnce("ScriptCanvas", !runtimeData.m_areStaticsInitialized, "ScriptCanvas runtime data already initalized");
if (runtimeData.RequiresStaticInitialization())
{
AZ::ScriptLoadResult result{};
AZ::ScriptSystemRequestBus::BroadcastResult(result, &AZ::ScriptSystemRequests::LoadAndGetNativeContext, runtimeData.m_script, AZ::k_scriptLoadBinary, AZ::ScriptContextIds::DefaultScriptContextId);
AZ_Assert(result.status == AZ::ScriptLoadResult::Status::Initial, "ExecutionStateInterpreted script asset was valid but failed to load.");
AZ_Assert(result.lua, "Must have a default script context and a lua_State");
AZ_Assert(lua_istable(result.lua, -1), "No run-time execution was available for this script");
auto lua = result.lua;
// Lua: table
lua_getfield(lua, -1, Grammar::k_InitializeStaticsName);
// Lua: table, ?
lua_pop(lua, 2);
if (lua_isfunction(lua, -1))
{
// Lua: table, function
lua_pushvalue(lua, -2);
// Lua: table, function, table
for (auto& clonerSource : runtimeData.m_cloneSources)
{
lua_pushlightuserdata(lua, const_cast<void*>(reinterpret_cast<const void*>(&clonerSource)));
}
// Lua: table, function, table, cloners...
AZ::Internal::LuaSafeCall(lua, aznumeric_caster(runtimeData.m_cloneSources.size() + 1), 0);
// Lua: table
lua_pop(lua, 1);
}
else
{
// Lua: table, ?
lua_pop(lua, 2);
}
}
}
}
@@ -43,7 +43,7 @@ namespace ScriptCanvas
void InterpretedUnloadData(RuntimeData& runtimeData);
void InitializeInterpretedStatics(const RuntimeData& runtimeData);
void InitializeInterpretedStatics(RuntimeData& runtimeData);
int InitializeNodeableOutKeys(lua_State* lua);
@@ -6,14 +6,13 @@
*
*/
#include "ExecutionStateInterpreted.h"
#include <AzCore/Asset/AssetManager.h>
#include <AzCore/Script/ScriptContext.h>
#include <AzCore/Script/ScriptSystemBus.h>
#include "Execution/Interpreted/ExecutionStateInterpretedUtility.h"
#include "Execution/RuntimeComponent.h"
#include <Execution/Interpreted/ExecutionInterpretedAPI.h>
#include <Execution/Interpreted/ExecutionStateInterpreted.h>
#include <Execution/Interpreted/ExecutionStateInterpretedUtility.h>
#include <Execution/RuntimeComponent.h>
namespace ExecutionStateInterpretedCpp
{
@@ -33,7 +32,25 @@ namespace ScriptCanvas
ExecutionStateInterpreted::ExecutionStateInterpreted(const ExecutionStateConfig& config)
: ExecutionState(config)
, m_interpretedAsset(config.runtimeData.m_script)
{}
{
RuntimeAsset* runtimeAsset = config.asset.Get();
#if defined(SCRIPT_CANVAS_RUNTIME_ASSET_CHECK)
if (!runtimeAsset)
{
AZ_Error("ScriptCanvas", false
, "ExecutionStateInterpreted created with ExecutionStateConfig that contained bad runtime asset data. %s"
, config.asset.GetId().ToString<AZStd::string>().data());
return;
}
#else
AZ_Assert(false
, "ExecutionStateInterpreted created with ExecutionStateConfig that contained bad runtime asset data. %s"
, config.asset.GetId().ToString<AZStd::string>().data());
#endif
Execution::InitializeInterpretedStatics(runtimeAsset->GetData());
}
void ExecutionStateInterpreted::ClearLuaRegistryIndex()
{
@@ -19,9 +19,8 @@
#include <ScriptCanvas/Execution/ExecutionContext.h>
#include <ScriptCanvas/Execution/ExecutionState.h>
#if !defined(_RELEASE)
#define SCRIPT_CANVAS_RUNTIME_ASSET_CHECK
#endif
#include <ScriptCanvas/Execution/Interpreted/ExecutionInterpretedAPI.h>
#include <AzCore/Asset/AssetSerializer.h>
AZ_DECLARE_BUDGET(ScriptCanvas);
@@ -112,11 +111,13 @@ namespace ScriptCanvas
#if defined(SCRIPT_CANVAS_RUNTIME_ASSET_CHECK)
if (!m_runtimeOverrides.m_runtimeAsset.Get())
{
AZ_Error("ScriptCanvas", false, "RuntimeComponent::m_runtimeAsset AssetId: %s was valid, but the data was not pre-loaded, so this script will not run", m_runtimeOverrides.m_runtimeAsset.GetId().ToString<AZStd::string>().data());
AZ_Error("ScriptCanvas", false, "RuntimeComponent::m_runtimeAsset AssetId: %s was valid, but the data was not pre-loaded, so this script will not run"
, m_runtimeOverrides.m_runtimeAsset.GetId().ToString<AZStd::string>().data());
return;
}
#else
AZ_Assert(m_runtimeOverrides.m_runtimeAsset.Get(), "RuntimeComponent::m_runtimeAsset AssetId: %s was valid, but the data was not pre-loaded, so this script will not run", m_runtimeOverrides.m_runtimeAsset.GetId().ToString<AZStd::string>().data());
AZ_Assert(m_runtimeOverrides.m_runtimeAsset.Get(), "RuntimeComponent::m_runtimeAsset AssetId: %s was valid, but the data was not pre-loaded, so this script will not run"
, m_runtimeOverrides.m_runtimeAsset.GetId().ToString<AZStd::string>().data());
#endif
AZ_PROFILE_SCOPE(ScriptCanvas, "RuntimeComponent::InitializeExecution (%s)", m_runtimeOverrides.m_runtimeAsset.GetId().ToString<AZStd::string>().c_str());
@@ -126,11 +127,13 @@ namespace ScriptCanvas
#if defined(SCRIPT_CANVAS_RUNTIME_ASSET_CHECK)
if (!m_executionState)
{
AZ_Error("ScriptCanvas", false, "RuntimeComponent::m_runtimeAsset AssetId: %s failed to create an execution state, possibly due to missing dependent asset, script will not run", m_runtimeOverrides.m_runtimeAsset.GetId().ToString<AZStd::string>().data());
AZ_Error("ScriptCanvas", false, "RuntimeComponent::m_runtimeAsset AssetId: %s failed to create an execution state, possibly due to missing dependent asset, script will not run"
, m_runtimeOverrides.m_runtimeAsset.GetId().ToString<AZStd::string>().data());
return;
}
#else
AZ_Assert(m_executionState, "RuntimeComponent::m_runtimeAsset AssetId: %s failed to create an execution state, possibly due to missing dependent asset, script will not run", m_runtimeOverrides.m_runtimeAsset.GetId().ToString<AZStd::string>().data());
AZ_Assert(m_executionState, "RuntimeComponent::m_runtimeAsset AssetId: %s failed to create an execution state, possibly due to missing dependent asset, script will not run"
, m_runtimeOverrides.m_runtimeAsset.GetId().ToString<AZStd::string>().data());
#endif
AZ::EntityBus::Handler::BusConnect(GetEntityId());
@@ -179,4 +182,3 @@ namespace ScriptCanvas
}
}
#undef SCRIPT_CANVAS_RUNTIME_ASSET_CHECK
@@ -518,7 +518,7 @@ namespace ScriptCanvas
{
const AZ::BehaviorParameter& argument(event.m_parameters[AZ::eBehaviorBusForwarderEventIndices::Result]);
Data::Type inputType(AZ::BehaviorContextHelper::IsStringParameter(argument) ? Data::Type::String() : Data::FromAZType(argument.m_typeId));
const AZStd::string argName(AZStd::string::format("Result: %s", Data::GetName(inputType).data()).data());
const AZStd::string argName(Data::GetName(inputType));
DataSlotConfiguration resultConfiguration;
@@ -14,6 +14,7 @@
#include <Core/SlotExecutionMap.h>
#include <Libraries/Core/MethodUtility.h>
#include <ScriptCanvas/Utils/BehaviorContextUtils.h>
#include <AzCore/StringFunc/StringFunc.h>
namespace MethodCPP
{
@@ -389,6 +390,9 @@ namespace ScriptCanvas
MethodConfiguration config(*method, MethodType::Free);
config.m_namespaces = &m_namespaces;
config.m_lookupName = &methodName;
config.m_prettyClassName = methodName;
AZ::StringFunc::Replace(config.m_prettyClassName, "::Getter", "");
AZ::StringFunc::Replace(config.m_prettyClassName, "::Setter", "");
InitializeMethod(config);
}
}
@@ -204,7 +204,7 @@ namespace ScriptCanvas
DataSlotConfiguration slotConfiguration;
slotConfiguration.m_name = AZStd::string::format("Result: %s", argumentTypeName.c_str());
slotConfiguration.m_name = argumentTypeName;
slotConfiguration.SetConnectionType(ConnectionType::Input);
slotConfiguration.ConfigureDatum(AZStd::move(Datum(inputType, Datum::eOriginality::Copy, nullptr, AZ::Uuid::CreateNull())));
@@ -272,7 +272,7 @@ namespace ScriptCanvas
Data::Type outputType(AZ::BehaviorContextHelper::IsStringParameter(*result) ? Data::Type::String() : Data::FromAZType(result->m_typeId));
// multiple outs will need out value names
const AZStd::string resultSlotName(AZStd::string::format("Result: %s", Data::GetName(outputType).c_str()));
const AZStd::string resultSlotName(Data::GetName(outputType));
DataSlotConfiguration slotConfiguration;
@@ -343,7 +343,7 @@ namespace ScriptCanvas
{
Data::Type outputType(AZ::BehaviorContextHelper::IsStringParameter(*result) ? Data::Type::String() : Data::FromAZType(result->m_typeId));
// multiple outs will need out value names
const AZStd::string resultSlotName(AZStd::string::format("Result: %s", Data::GetName(outputType).c_str()));
const AZStd::string resultSlotName(Data::GetName(outputType));
Slot* slot = GetSlotByName(resultSlotName);
@@ -89,7 +89,6 @@ protected:
AZ::SerializeContext* GetSerializeContext() override { return m_serializeContext; }
AZ::BehaviorContext* GetBehaviorContext() override { return nullptr; }
AZ::JsonRegistrationContext* GetJsonRegistrationContext() override { return nullptr; }
const char* GetAppRoot() const override { return nullptr; }
const char* GetEngineRoot() const override { return nullptr; }
const char* GetExecutableFolder() const override { return nullptr; }
void EnumerateEntities(const AZ::ComponentApplicationRequests::EntityCallback& /*callback*/) override {}
@@ -22,6 +22,7 @@
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/Serialization/EditContext.h>
#include <AzCore/Settings/SettingsRegistry.h>
#include <AzCore/std/string/regex.h>
#include <AzFramework/Gem/GemInfo.h>
@@ -32,6 +33,8 @@
#include <AzFramework/StringFunc/StringFunc.h>
#include <AzQtComponents/Utilities/DesktopUtilities.h>
#include <Source/Translation/TranslationSerializer.h>
#include "Data/DataRegistry.h"
namespace ScriptCanvasEditorTools
{
@@ -87,6 +90,8 @@ namespace ScriptCanvasEditorTools
entry.m_details.m_name = prettyName;
}
SplitCamelCase(entry.m_details.m_name);
for (auto event : behaviorEBus->m_events)
{
const AZ::BehaviorEBusEventSender& ebusSender = event.second;
@@ -106,13 +111,14 @@ namespace ScriptCanvasEditorTools
Method eventEntry;
const char* eventName = event.first.c_str();
AZStd::string cleanName = GraphCanvas::TranslationKey::Sanitize(eventName);
eventEntry.m_key = cleanName;
eventEntry.m_key = eventName;
prettyName = Helpers::GetStringAttribute(behaviorEBus, AZ::ScriptCanvasAttributes::PrettyName);
eventEntry.m_details.m_name = prettyName.empty() ? eventName : prettyName;
eventEntry.m_details.m_tooltip = Helpers::ReadStringAttribute(event.second.m_attributes, AZ::Script::Attributes::ToolTip);
SplitCamelCase(eventEntry.m_details.m_name);
eventEntry.m_entry.m_name = "In";
eventEntry.m_entry.m_tooltip = AZStd::string::format("When signaled, this will invoke %s", eventEntry.m_details.m_name.c_str());
eventEntry.m_exit.m_name = "Out";
@@ -124,10 +130,26 @@ namespace ScriptCanvasEditorTools
Argument argument;
auto argumentType = method->GetArgument(i)->m_typeId;
// Check the BC for metadata
Helpers::GetTypeNameAndDescription(argumentType, argument.m_details.m_name, argument.m_details.m_tooltip);
auto name = method->GetArgumentName(i);
if (name && !name->empty())
{
argument.m_details.m_name = *name;
}
auto tooltip = method->GetArgumentToolTip(i);
if (tooltip && !tooltip->empty())
{
argument.m_details.m_tooltip = *tooltip;
}
argument.m_typeId = argumentType.ToString<AZStd::string>();
SplitCamelCase(argument.m_details.m_name);
eventEntry.m_arguments.push_back(argument);
}
@@ -136,10 +158,19 @@ namespace ScriptCanvasEditorTools
Argument result;
auto resultType = method->GetResult()->m_typeId;
Helpers::GetTypeNameAndDescription(resultType, result.m_details.m_name, result.m_details.m_tooltip);
auto tooltip = method->GetArgumentToolTip(0);
if (tooltip && !tooltip->empty())
{
result.m_details.m_tooltip = *tooltip;
}
result.m_typeId = resultType.ToString<AZStd::string>();
SplitCamelCase(result.m_details.m_name);
eventEntry.m_results.push_back(result);
}
@@ -209,6 +240,8 @@ namespace ScriptCanvasEditorTools
details.m_category = Helpers::GetStringAttribute(behaviorClass, AZ::Script::Attributes::Category);
details.m_tooltip = Helpers::GetStringAttribute(behaviorClass, AZ::Script::Attributes::ToolTip);
SplitCamelCase(details.m_name);
if (!behaviorClass->m_methods.empty())
{
for (const auto& methodPair : behaviorClass->m_methods)
@@ -226,10 +259,14 @@ namespace ScriptCanvasEditorTools
methodEntry.m_details.m_tooltip = "";
methodEntry.m_details.m_name = methodPair.second->m_name;
AZStd::string prefix = className + "::";
AZ::StringFunc::Replace(methodEntry.m_details.m_name, prefix.c_str(), "");
SplitCamelCase(methodEntry.m_details.m_name);
methodEntry.m_entry.m_name = "In";
methodEntry.m_entry.m_tooltip = AZStd::string::format("When signaled, this will invoke %s", cleanName.c_str());
methodEntry.m_entry.m_tooltip = AZStd::string::format("When signaled, this will invoke %s", methodEntry.m_details.m_name.c_str());
methodEntry.m_exit.m_name = "Out";
methodEntry.m_exit.m_tooltip = AZStd::string::format("Signaled after %s is invoked", cleanName.c_str());
methodEntry.m_exit.m_tooltip = AZStd::string::format("Signaled after %s is invoked", methodEntry.m_details.m_name.c_str());
if (!Helpers::MethodHasAttribute(behaviorMethod, AZ::ScriptCanvasAttributes::FloatingFunction))
{
@@ -240,35 +277,45 @@ namespace ScriptCanvasEditorTools
methodEntry.m_details.m_category = Helpers::ReadStringAttribute(behaviorMethod->m_attributes, AZ::Script::Attributes::Category);
}
if (methodEntry.m_details.m_category.empty())
{
methodEntry.m_details.m_category = "Other";
}
// Arguments (Input Slots)
if (behaviorMethod->GetNumArguments() > 0)
{
for (size_t argIndex = 0; argIndex < behaviorMethod->GetNumArguments(); ++argIndex)
size_t startIndex = behaviorMethod->HasResult() ? 1 : 0;
for (size_t argIndex = startIndex; argIndex < behaviorMethod->GetNumArguments(); ++argIndex)
{
const AZ::BehaviorParameter* parameter = behaviorMethod->GetArgument(argIndex);
Argument argument;
AZStd::string argumentKey = parameter->m_typeId.ToString<AZStd::string>();
AZStd::string argumentName = parameter->m_name;
AZStd::string argumentDescription = "";
AZStd::string argumentName;
AZStd::string argumentDescription;
Helpers::GetTypeNameAndDescription(parameter->m_typeId, argumentName, argumentDescription);
const AZStd::string* argName = behaviorMethod->GetArgumentName(argIndex);
if (argName && !(*argName).empty())
{
argumentName = *argName;
}
const AZStd::string* argDesc = behaviorMethod->GetArgumentToolTip(argIndex);
if (argDesc && !(*argDesc).empty())
{
argumentDescription = *argDesc;
}
argument.m_typeId = argumentKey;
argument.m_details.m_name = parameter->m_name;
argument.m_details.m_category = "";
argument.m_details.m_name = argumentName;
argument.m_details.m_tooltip = argumentDescription;
SplitCamelCase(argument.m_details.m_name);
methodEntry.m_arguments.push_back(argument);
}
}
// Results (Output Slots)
const AZ::BehaviorParameter* resultParameter = behaviorMethod->HasResult() ? behaviorMethod->GetResult() : nullptr;
if (resultParameter)
{
@@ -284,6 +331,8 @@ namespace ScriptCanvasEditorTools
result.m_details.m_name = resultParameter->m_name;
result.m_details.m_tooltip = resultDescription;
SplitCamelCase(result.m_details.m_name);
methodEntry.m_results.push_back(result);
}
@@ -291,9 +340,23 @@ namespace ScriptCanvasEditorTools
}
}
// Behavior Class properties
if (!behaviorClass->m_properties.empty())
{
for (const auto& propertyEntry : behaviorClass->m_properties)
{
AZ::BehaviorProperty* behaviorProperty = propertyEntry.second;
if (behaviorProperty)
{
TranslateBehaviorProperty(behaviorProperty, behaviorClass->m_name, "BehaviorClass", &entry);
}
}
}
translationRoot.m_entries.push_back(entry);
AZStd::string fileName = AZStd::string::format("Classes/%s", className.c_str());
AZStd::string sanitizedFilename = GraphCanvas::TranslationKey::Sanitize(className);
AZStd::string fileName = AZStd::string::format("Classes/%s", sanitizedFilename.c_str());
SaveJSONData(fileName, translationRoot);
@@ -345,6 +408,8 @@ namespace ScriptCanvasEditorTools
entry.m_context = "AZEventHandler";
entry.m_details.m_name = azEventEntry.m_eventName;
SplitCamelCase(entry.m_details.m_name);
for (const ScriptCanvas::Slot& slot : nodeComponent->GetSlots())
{
Slot slotEntry;
@@ -444,6 +509,8 @@ namespace ScriptCanvasEditorTools
details.m_name = cleanName;
}
SplitCamelCase(details.m_name);
// Tooltip attribute takes priority over the edit data description
AZStd::string tooltip = Helpers::GetStringAttribute(classData, AZ::Script::Attributes::ToolTip);
if (!tooltip.empty())
@@ -631,6 +698,7 @@ namespace ScriptCanvasEditorTools
EntryDetails& details = entry.m_details;
details.m_name = behaviorClass->m_name;
SplitCamelCase(details.m_name);
// Get the pretty name
AZStd::string prettyName;
@@ -664,6 +732,7 @@ namespace ScriptCanvasEditorTools
methodEntry.m_details.m_tooltip = Helpers::GetStringAttribute(behaviorMethod, AZ::Script::Attributes::ToolTip);
methodEntry.m_details.m_name = methodPair.second->m_name;
SplitCamelCase(methodEntry.m_details.m_name);
// Strip the className from the methodName
AZStd::string qualifiedName = behaviorClass->m_name + "::";
@@ -696,6 +765,8 @@ namespace ScriptCanvasEditorTools
argument.m_details.m_category = "";
argument.m_details.m_tooltip = argumentDescription;
SplitCamelCase(argument.m_details.m_name);
methodEntry.m_arguments.push_back(argument);
}
}
@@ -716,6 +787,8 @@ namespace ScriptCanvasEditorTools
result.m_details.m_name = resultName;
result.m_details.m_tooltip = resultDescription;
SplitCamelCase(result.m_details.m_name);
methodEntry.m_results.push_back(result);
}
@@ -730,6 +803,190 @@ namespace ScriptCanvasEditorTools
SaveJSONData("Types/OnDemandReflectedTypes", translationRoot);
}
void TranslationGeneration::TranslateBehaviorGlobals()
{
for (const auto& [propertyName, behaviorProperty] : m_behaviorContext->m_properties)
{
TranslateBehaviorProperty(propertyName);
}
}
void TranslationGeneration::TranslateBehaviorProperty(const AZStd::string& propertyName)
{
const auto behaviorPropertyEntry = m_behaviorContext->m_properties.find(propertyName);
if (behaviorPropertyEntry == m_behaviorContext->m_properties.end())
{
return;
}
const AZ::BehaviorProperty* behaviorProperty = behaviorPropertyEntry->second;
Entry entry;
TranslateBehaviorProperty(behaviorProperty, propertyName, "Constant", &entry);
TranslationFormat translationRoot;
translationRoot.m_entries.push_back(entry);
AZStd::string cleanName = GraphCanvas::TranslationKey::Sanitize(behaviorProperty->m_name);
AZStd::string fileName = AZStd::string::format("Properties/%s", cleanName.c_str());
SaveJSONData(fileName, translationRoot);
}
void TranslationGeneration::TranslateDataTypes()
{
TranslationFormat translationRoot;
auto dataRegistry = ScriptCanvas::GetDataRegistry();
for (auto& typePair : dataRegistry->m_creatableTypes)
{
if (ScriptCanvas::Data::IsContainerType(typePair.first))
{
continue;
}
const AZStd::string typeIDStr = typePair.first.GetAZType().ToString<AZStd::string>();
AZStd::string typeName = ScriptCanvas::Data::GetName(typePair.first);
Entry entry;
entry.m_key = typeIDStr;
entry.m_context = "BehaviorType";
entry.m_details.m_name = typeName;
translationRoot.m_entries.emplace_back(entry);
}
SaveJSONData("Types/BehaviorTypes", translationRoot);
}
void TranslationGeneration::TranslateMethod(AZ::BehaviorMethod* behaviorMethod, Method& methodEntry)
{
// Arguments (Input Slots)
if (behaviorMethod->GetNumArguments() > 0)
{
for (size_t argIndex = 0; argIndex < behaviorMethod->GetNumArguments(); ++argIndex)
{
const AZ::BehaviorParameter* parameter = behaviorMethod->GetArgument(argIndex);
Argument argument;
AZStd::string argumentKey = parameter->m_typeId.ToString<AZStd::string>();
AZStd::string argumentName = parameter->m_name;
AZStd::string argumentDescription;
Helpers::GetTypeNameAndDescription(parameter->m_typeId, argumentName, argumentDescription);
const AZStd::string* argName = behaviorMethod->GetArgumentName(argIndex);
argument.m_typeId = argumentKey;
argument.m_details.m_name = (argName && !argName->empty()) ? *argName : argumentName;
argument.m_details.m_category = "";
argument.m_details.m_tooltip = argumentDescription;
SplitCamelCase(argument.m_details.m_name);
methodEntry.m_arguments.push_back(argument);
}
}
// Results (Output Slots)
const AZ::BehaviorParameter* resultParameter = behaviorMethod->HasResult() ? behaviorMethod->GetResult() : nullptr;
if (resultParameter)
{
Argument result;
AZStd::string resultKey = resultParameter->m_typeId.ToString<AZStd::string>();
AZStd::string resultName = resultParameter->m_name;
AZStd::string resultDescription;
Helpers::GetTypeNameAndDescription(resultParameter->m_typeId, resultName, resultDescription);
const AZStd::string* resName = behaviorMethod->GetArgumentName(0);
result.m_typeId = resultKey;
result.m_details.m_name = (resName && !resName->empty()) ? *resName : resultName;
result.m_details.m_tooltip = resultDescription;
SplitCamelCase(result.m_details.m_name);
methodEntry.m_results.push_back(result);
}
}
void TranslationGeneration::TranslateBehaviorProperty(const AZ::BehaviorProperty* behaviorProperty, const AZStd::string& className, const AZStd::string& context, Entry* entry)
{
if (!behaviorProperty->m_getter && !behaviorProperty->m_setter)
{
return;
}
Entry localEntry;
if (!entry)
{
entry = &localEntry;
}
else if (entry->m_key.empty())
{
entry->m_key = className;
entry->m_context = context;
entry->m_details.m_name = className;
SplitCamelCase(entry->m_details.m_name);
}
if (behaviorProperty->m_getter)
{
AZStd::string cleanName = behaviorProperty->m_name;
AZ::StringFunc::Replace(cleanName, "::Getter", "");
Method method;
AZStd::string methodName = "Get";
methodName.append(cleanName);
method.m_key = methodName;
method.m_details.m_name = methodName;
method.m_details.m_tooltip = behaviorProperty->m_getter->m_debugDescription ? behaviorProperty->m_getter->m_debugDescription : "";
SplitCamelCase(method.m_details.m_name);
TranslateMethod(behaviorProperty->m_getter, method);
// We know this is a getter, so there will only be one parameter, we will use the method name as a best
// guess for the argument name
SplitCamelCase(cleanName);
method.m_arguments[1].m_details.m_name = cleanName;
entry->m_methods.push_back(method);
}
if (behaviorProperty->m_setter)
{
AZStd::string cleanName = behaviorProperty->m_name;
AZ::StringFunc::Replace(cleanName, "::Setter", "");
Method method;
AZStd::string methodName = "Set";
methodName.append(cleanName);
method.m_key = methodName;
method.m_details.m_name = methodName;
method.m_details.m_tooltip = behaviorProperty->m_setter->m_debugDescription ? behaviorProperty->m_getter->m_debugDescription : "";
SplitCamelCase(method.m_details.m_name);
TranslateMethod(behaviorProperty->m_setter, method);
// We know this is a setter, so there will only be one parameter, we will use the method name as a best
// guess for the argument name
SplitCamelCase(cleanName);
method.m_arguments[1].m_details.m_name = cleanName;
entry->m_methods.push_back(method);
}
}
bool TranslationGeneration::TranslateEBusHandler(const AZ::BehaviorEBus* behaviorEbus, TranslationFormat& translationRoot)
{
// Must be a valid ebus handler
@@ -752,6 +1009,8 @@ namespace ScriptCanvasEditorTools
entry.m_details.m_tooltip = behaviorEbus->m_toolTip;
entry.m_details.m_category = "EBus Handlers";
SplitCamelCase(entry.m_details.m_name);
for (const AZ::BehaviorEBusHandler::BusForwarderEvent& event : handler->GetEvents())
{
Method methodEntry;
@@ -762,6 +1021,8 @@ namespace ScriptCanvasEditorTools
methodEntry.m_details.m_tooltip = "";
methodEntry.m_details.m_name = event.m_name;
SplitCamelCase(methodEntry.m_details.m_name);
// Arguments (Input Slots)
if (!event.m_parameters.empty())
{
@@ -786,10 +1047,28 @@ namespace ScriptCanvasEditorTools
Helpers::GetTypeNameAndDescription(parameter.m_typeId, argumentName, argumentDescription);
}
if (!event.m_metadataParameters.empty() && event.m_metadataParameters.size() > argIndex)
{
auto name = event.m_metadataParameters[argIndex].m_name;
auto tooltip = event.m_metadataParameters[argIndex].m_toolTip;
if (!name.empty())
{
argumentName = name;
}
if (!tooltip.empty())
{
argumentDescription = tooltip;
}
}
argument.m_typeId = argumentKey;
argument.m_details.m_name = argumentName;
argument.m_details.m_tooltip = argumentDescription;
SplitCamelCase(argument.m_details.m_name);
methodEntry.m_arguments.push_back(argument);
}
}
@@ -820,6 +1099,8 @@ namespace ScriptCanvasEditorTools
result.m_details.m_name = resultName;
result.m_details.m_tooltip = resultDescription;
SplitCamelCase(result.m_details.m_name);
methodEntry.m_results.push_back(result);
}
@@ -853,13 +1134,13 @@ namespace ScriptCanvasEditorTools
rapidjson_ly::Value value(rapidjson_ly::kStringType);
value.SetString(entrySource.m_key.c_str(), document.GetAllocator());
entry.AddMember("key", value, document.GetAllocator());
entry.AddMember(GraphCanvas::Schema::Field::key, value, document.GetAllocator());
value.SetString(entrySource.m_context.c_str(), document.GetAllocator());
entry.AddMember("context", value, document.GetAllocator());
entry.AddMember(GraphCanvas::Schema::Field::context, value, document.GetAllocator());
value.SetString(entrySource.m_variant.c_str(), document.GetAllocator());
entry.AddMember("variant", value, document.GetAllocator());
entry.AddMember(GraphCanvas::Schema::Field::variant, value, document.GetAllocator());
rapidjson_ly::Value details(rapidjson_ly::kObjectType);
value.SetString(entrySource.m_details.m_name.c_str(), document.GetAllocator());
@@ -880,12 +1161,12 @@ namespace ScriptCanvasEditorTools
rapidjson_ly::Value theMethod(rapidjson_ly::kObjectType);
value.SetString(methodSource.m_key.c_str(), document.GetAllocator());
theMethod.AddMember("key", value, document.GetAllocator());
theMethod.AddMember(GraphCanvas::Schema::Field::key, value, document.GetAllocator());
if (!methodSource.m_context.empty())
{
value.SetString(methodSource.m_context.c_str(), document.GetAllocator());
theMethod.AddMember("context", value, document.GetAllocator());
theMethod.AddMember(GraphCanvas::Schema::Field::context, value, document.GetAllocator());
}
if (!methodSource.m_entry.m_name.empty())
@@ -993,7 +1274,7 @@ namespace ScriptCanvasEditorTools
rapidjson_ly::Value theSlot(rapidjson_ly::kObjectType);
value.SetString(slotSource.m_key.c_str(), document.GetAllocator());
theSlot.AddMember("key", value, document.GetAllocator());
theSlot.AddMember(GraphCanvas::Schema::Field::key, value, document.GetAllocator());
rapidjson_ly::Value sloDetails(rapidjson_ly::kObjectType);
if (!slotSource.m_details.m_name.empty())
@@ -1068,6 +1349,14 @@ namespace ScriptCanvasEditorTools
}
void TranslationGeneration::SplitCamelCase(AZStd::string& text)
{
AZStd::regex splitRegex(R"(/[a-z]+|[0-9]+|(?:[A-Z][a-z]+)|(?:[A-Z]+(?=(?:[A-Z][a-z])|[^AZa-z]|[$\d\n]))/g)");
text = AZStd::regex_replace(text, splitRegex, " $&");
text = AZ::StringFunc::LStrip(text);
AZ::StringFunc::Replace(text, " ", " ");
}
namespace Helpers
{
AZStd::string ReadStringAttribute(const AZ::AttributeArray& attributes, const AZ::Crc32& attribute)
@@ -22,6 +22,7 @@ namespace AZ
class BehaviorContext;
class BehaviorEBus;
class BehaviorMethod;
class BehaviorProperty;
class Entity;
class SerializeContext;
}
@@ -121,14 +122,32 @@ namespace ScriptCanvasEditorTools
//! Generate the translation data for on-demand reflected types
void TranslateOnDemandReflectedTypes(TranslationFormat& translationRoot);
//! Generates the translation data for all global properties and methods in the BehaviorContext
void TranslateBehaviorGlobals();
//! Generates the translation data for the specified property in the BehaviorContext (global, by name)
void TranslateBehaviorProperty(const AZStd::string& propertyName);
//! Generates the translation data for the specified property in the BehaviorContext
void TranslateBehaviorProperty(const AZ::BehaviorProperty* behaviorProperty, const AZStd::string& className, const AZStd::string& context, Entry* entry = nullptr);
//! Generates a type map from reflected types that are suitable for BehaviorContext objects used by ScriptCanvas
void TranslateDataTypes();
private:
//! Utility to populate a BehaviorMethod's translation data
void TranslateMethod(AZ::BehaviorMethod* behaviorMethod, Method& methodEntry);
//! Generates the translation data for a BehaviorEBus that has an BehaviorEBusHandler
bool TranslateEBusHandler(const AZ::BehaviorEBus* behaviorEbus, TranslationFormat& translationRoot);
//! Utility function that saves a TranslationFormat object in the desired JSON format
void SaveJSONData(const AZStd::string& filename, TranslationFormat& translationRoot);
//! Utility function that splits camel-case syntax string into separate words
void SplitCamelCase(AZStd::string&);
//! Evaluates if the specified object has exclusion flags and should be skipped from generation
template <typename T>
bool ShouldSkip(const T* object) const
@@ -7,575 +7,210 @@
#
set(FILES
Include/ScriptCanvas/SystemComponent.h
Source/SystemComponent.cpp
Source/ScriptCanvasCommonGem.cpp
Source/PerformanceStatistician.cpp
Source/PerformanceTracker.cpp
Include/ScriptCanvas/ScriptCanvasGem.h
Include/ScriptCanvas/Asset/AssetDescription.h
Include/ScriptCanvas/Asset/AssetRegistry.cpp
Include/ScriptCanvas/Asset/AssetRegistry.h
Include/ScriptCanvas/Asset/AssetRegistryBus.h
Include/ScriptCanvas/Asset/ExecutionLogAsset.cpp
Include/ScriptCanvas/Asset/ExecutionLogAsset.h
Include/ScriptCanvas/Asset/ExecutionLogAssetBus.h
Include/ScriptCanvas/Asset/RuntimeAsset.cpp
Include/ScriptCanvas/Asset/RuntimeAsset.h
Include/ScriptCanvas/Asset/RuntimeAssetHandler.cpp
Include/ScriptCanvas/Asset/RuntimeAssetHandler.h
Include/ScriptCanvas/Asset/ScriptCanvasAssetBase.h
Include/ScriptCanvas/Asset/ScriptCanvasAssetData.h
Include/ScriptCanvas/Asset/SubgraphInterfaceAssetHandler.cpp
Include/ScriptCanvas/Asset/SubgraphInterfaceAssetHandler.h
Include/ScriptCanvas/Core/ScriptCanvasBus.h
Include/ScriptCanvas/Core/ExecutionNotificationsBus.cpp
Include/ScriptCanvas/Core/ExecutionNotificationsBus.h
Include/ScriptCanvas/Core/GraphBus.h
Include/ScriptCanvas/Core/NodeBus.h
Include/ScriptCanvas/Core/EBusNodeBus.h
Include/ScriptCanvas/Core/NodelingBus.h
Include/ScriptCanvas/Core/ContractBus.h
Include/ScriptCanvas/Core/Attributes.h
Include/ScriptCanvas/Core/Connection.cpp
Include/ScriptCanvas/Core/Connection.h
Include/ScriptCanvas/Core/ConnectionBus.h
Include/ScriptCanvas/Core/Contract.cpp
Include/ScriptCanvas/Core/Contract.h
Include/ScriptCanvas/Core/Contracts.h
Include/ScriptCanvas/Core/Contracts/MethodOverloadContract.h
Include/ScriptCanvas/Core/Contracts/MethodOverloadContract.cpp
Include/ScriptCanvas/Core/Contracts/RestrictedNodeContract.h
Include/ScriptCanvas/Core/Contracts/RestrictedNodeContract.cpp
Include/ScriptCanvas/Core/Core.cpp
Include/ScriptCanvas/Core/Core.h
Include/ScriptCanvas/Core/Datum.cpp
Include/ScriptCanvas/Core/Datum.h
Include/ScriptCanvas/Core/DatumBus.h
Include/ScriptCanvas/Core/EBusHandler.h
Include/ScriptCanvas/Core/EBusHandler.cpp
Include/ScriptCanvas/Core/Endpoint.cpp
Include/ScriptCanvas/Core/Endpoint.h
Include/ScriptCanvas/Core/Graph.cpp
Include/ScriptCanvas/Core/Graph.h
Include/ScriptCanvas/Core/GraphData.h
Include/ScriptCanvas/Core/GraphData.cpp
Include/ScriptCanvas/Core/GraphScopedTypes.h
Include/ScriptCanvas/Core/MethodConfiguration.h
Include/ScriptCanvas/Core/MethodConfiguration.cpp
Include/ScriptCanvas/Core/ModifiableDatumView.cpp
Include/ScriptCanvas/Core/ModifiableDatumView.h
Include/ScriptCanvas/Core/Node.cpp
Include/ScriptCanvas/Core/Node.h
Include/ScriptCanvas/Core/Nodeable.cpp
Include/ScriptCanvas/Core/Nodeable.h
Include/ScriptCanvas/Core/NodeableNode.cpp
Include/ScriptCanvas/Core/NodeableNode.h
Include/ScriptCanvas/Core/NodeableNodeOverloaded.cpp
Include/ScriptCanvas/Core/NodeableNodeOverloaded.h
Include/ScriptCanvas/Core/NodeFunctionGeneric.h
Include/ScriptCanvas/Core/SerializationListener.h
Include/ScriptCanvas/Core/Slot.cpp
Include/ScriptCanvas/Core/Slot.h
Include/ScriptCanvas/Core/SlotConfigurationDefaults.h
Include/ScriptCanvas/Core/SlotConfigurations.cpp
Include/ScriptCanvas/Core/SlotConfigurations.h
Include/ScriptCanvas/Core/SlotExecutionMap.cpp
Include/ScriptCanvas/Core/SlotExecutionMap.h
Include/ScriptCanvas/Core/SlotMetadata.cpp
Include/ScriptCanvas/Core/SlotMetadata.h
Include/ScriptCanvas/Core/SlotNames.h
Include/ScriptCanvas/Core/SubgraphInterface.h
Include/ScriptCanvas/Core/SubgraphInterface.cpp
Include/ScriptCanvas/Core/SubgraphInterfaceUtility.h
Include/ScriptCanvas/Core/SubgraphInterfaceUtility.cpp
Include/ScriptCanvas/Translation/AbstractModelTranslator.h
Include/ScriptCanvas/Translation/Configuration.h
Include/ScriptCanvas/Translation/GraphToCPlusPlus.cpp
Include/ScriptCanvas/Translation/GraphToCPlusPlus.h
Include/ScriptCanvas/Translation/GraphToLua.h
Include/ScriptCanvas/Translation/GraphToLua.cpp
Include/ScriptCanvas/Translation/GraphToLuaUtility.h
Include/ScriptCanvas/Translation/GraphToLuaUtility.cpp
Include/ScriptCanvas/Translation/GraphToX.h
Include/ScriptCanvas/Translation/GraphToX.cpp
Include/ScriptCanvas/Translation/Translation.h
Include/ScriptCanvas/Translation/Translation.cpp
Include/ScriptCanvas/Translation/TranslationContext.h
Include/ScriptCanvas/Translation/TranslationContext.cpp
Include/ScriptCanvas/Translation/TranslationResult.h
Include/ScriptCanvas/Translation/TranslationResult.cpp
Include/ScriptCanvas/Translation/TranslationUtilities.h
Include/ScriptCanvas/Translation/TranslationUtilities.cpp
Include/ScriptCanvas/PerformanceStatistician.h
Include/ScriptCanvas/PerformanceStatisticsBus.h
Include/ScriptCanvas/PerformanceTracker.h
Include/ScriptCanvas/AutoGen/ScriptCanvas_Macros.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvas_Nodeable_Macros.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvasGrammar_Header.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvasGrammar_Source.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvasNodeable_Header.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvasNodeable_Source.jinja
Include/ScriptCanvas/CodeGen/NodeableCodegen.h
Include/ScriptCanvas/Core/Contracts/ConnectionLimitContract.cpp
Include/ScriptCanvas/Core/Contracts/ConnectionLimitContract.h
Include/ScriptCanvas/Core/Contracts/ContractRTTI.cpp
Include/ScriptCanvas/Core/Contracts/ContractRTTI.h
Include/ScriptCanvas/Core/Contracts/DisallowReentrantExecutionContract.cpp
Include/ScriptCanvas/Core/Contracts/DisallowReentrantExecutionContract.h
Include/ScriptCanvas/Core/Contracts/DisplayGroupConnectedSlotLimitContract.cpp
Include/ScriptCanvas/Core/Contracts/DisplayGroupConnectedSlotLimitContract.h
Include/ScriptCanvas/Core/Contracts/DynamicTypeContract.cpp
Include/ScriptCanvas/Core/Contracts/DynamicTypeContract.h
Include/ScriptCanvas/Core/Contracts/IsReferenceTypeContract.cpp
Include/ScriptCanvas/Core/Contracts/IsReferenceTypeContract.h
Include/ScriptCanvas/Core/Contracts/MathOperatorContract.cpp
Include/ScriptCanvas/Core/Contracts/MathOperatorContract.h
Include/ScriptCanvas/Core/Contracts/SlotTypeContract.cpp
Include/ScriptCanvas/Core/Contracts/SlotTypeContract.h
Include/ScriptCanvas/Core/Contracts/SupportsMethodContract.cpp
Include/ScriptCanvas/Core/Contracts/SupportsMethodContract.h
Include/ScriptCanvas/Core/Contracts/TypeContract.cpp
Include/ScriptCanvas/Core/Contracts/TypeContract.h
Include/ScriptCanvas/Data/BehaviorContextObject.cpp
Include/ScriptCanvas/Data/BehaviorContextObject.h
Include/ScriptCanvas/Data/BehaviorContextObjectPtr.cpp
Include/ScriptCanvas/Data/BehaviorContextObjectPtr.h
Include/ScriptCanvas/Data/Data.cpp
Include/ScriptCanvas/Data/Data.h
Include/ScriptCanvas/Data/DataMacros.h
Include/ScriptCanvas/Data/DataRegistry.cpp
Include/ScriptCanvas/Data/DataRegistry.h
Include/ScriptCanvas/Data/NumericData.h
Include/ScriptCanvas/Deprecated/VariableDatumBase.h
Include/ScriptCanvas/Deprecated/VariableDatumBase.cpp
Include/ScriptCanvas/Deprecated/VariableDatum.h
Include/ScriptCanvas/Deprecated/VariableDatum.cpp
Include/ScriptCanvas/Deprecated/VariableHelpers.h
Include/ScriptCanvas/Deprecated/VariableHelpers.cpp
Include/ScriptCanvas/Execution/ErrorBus.h
Include/ScriptCanvas/Execution/ExecutionBus.h
Include/ScriptCanvas/Execution/ExecutionContext.h
Include/ScriptCanvas/Execution/ExecutionContext.cpp
Include/ScriptCanvas/Execution/ExecutionObjectCloning.h
Include/ScriptCanvas/Execution/ExecutionObjectCloning.cpp
Include/ScriptCanvas/Execution/ExecutionPerformanceTimer.h
Include/ScriptCanvas/Execution/ExecutionPerformanceTimer.cpp
Include/ScriptCanvas/Execution/ExecutionState.h
Include/ScriptCanvas/Execution/ExecutionState.cpp
Include/ScriptCanvas/Execution/ExecutionStateDeclarations.h
Include/ScriptCanvas/Execution/NativeHostDeclarations.h
Include/ScriptCanvas/Execution/NativeHostDeclarations.cpp
Include/ScriptCanvas/Execution/NativeHostDefinitions.h
Include/ScriptCanvas/Execution/NativeHostDefinitions.cpp
Include/ScriptCanvas/Execution/RuntimeComponent.h
Include/ScriptCanvas/Execution/RuntimeComponent.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedAPI.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedAPI.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedCloningAPI.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedCloningAPI.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedDebugAPI.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedDebugAPI.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedEBusAPI.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedEBusAPI.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedOut.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedOut.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpreted.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpreted.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedPerActivation.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedPerActivation.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedPure.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedPure.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedSingleton.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedSingleton.cpp
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedUtility.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedUtility.cpp
Include/ScriptCanvas/Execution/NodeableOut/NodeableOutNative.h
Include/ScriptCanvas/Grammar/AbstractCodeModel.h
Include/ScriptCanvas/Grammar/AbstractCodeModel.cpp
Include/ScriptCanvas/Grammar/DebugMap.h
Include/ScriptCanvas/Grammar/DebugMap.cpp
Include/ScriptCanvas/Grammar/ExecutionTraversalListeners.h
Include/ScriptCanvas/Grammar/ExecutionTraversalListeners.cpp
Include/ScriptCanvas/Grammar/ParsingMetaData.h
Include/ScriptCanvas/Grammar/ParsingMetaData.cpp
Include/ScriptCanvas/Grammar/ParsingUtilities.h
Include/ScriptCanvas/Grammar/ParsingUtilities.cpp
Include/ScriptCanvas/Grammar/Primitives.h
Include/ScriptCanvas/Grammar/Primitives.cpp
Include/ScriptCanvas/Grammar/PrimitivesDeclarations.h
Include/ScriptCanvas/Grammar/PrimitivesDeclarations.cpp
Include/ScriptCanvas/Grammar/PrimitivesExecution.cpp
Include/ScriptCanvas/Grammar/PrimitivesExecution.h
Include/ScriptCanvas/Grammar/SymbolNames.h
Include/ScriptCanvas/Execution/ErrorBus.h
Include/ScriptCanvas/Execution/ExecutionContext.cpp
Include/ScriptCanvas/Execution/ExecutionContext.h
Include/ScriptCanvas/Execution/ExecutionBus.h
Include/ScriptCanvas/Execution/NativeHostDeclarations.cpp
Include/ScriptCanvas/Execution/NativeHostDeclarations.h
Include/ScriptCanvas/Execution/NativeHostDefinitions.cpp
Include/ScriptCanvas/Execution/NativeHostDefinitions.h
Include/ScriptCanvas/Execution/RuntimeComponent.cpp
Include/ScriptCanvas/Execution/RuntimeComponent.h
Include/ScriptCanvas/Internal/Nodeables/BaseTimer.cpp
Include/ScriptCanvas/Internal/Nodeables/BaseTimer.h
Include/ScriptCanvas/Internal/Nodeables/BaseTimer.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.cpp
Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.h
Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Internal/Nodes/ExpressionNodeBase.cpp
Include/ScriptCanvas/Internal/Nodes/ExpressionNodeBase.h
Include/ScriptCanvas/Internal/Nodes/ExpressionNodeBase.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Internal/Nodes/StringFormatted.cpp
Include/ScriptCanvas/Internal/Nodes/StringFormatted.h
Include/ScriptCanvas/Internal/Nodes/StringFormatted.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Grammar/AbstractCodeModel.cpp
Include/ScriptCanvas/Grammar/AbstractCodeModel.h
Include/ScriptCanvas/Libraries/Libraries.h
Include/ScriptCanvas/Libraries/Libraries.cpp
Include/ScriptCanvas/Libraries/Core/AzEventHandler.cpp
Include/ScriptCanvas/Libraries/Core/AzEventHandler.h
Include/ScriptCanvas/Libraries/Core/AzEventHandler.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/BinaryOperator.cpp
Include/ScriptCanvas/Libraries/Core/BinaryOperator.h
Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp
Include/ScriptCanvas/Libraries/Core/CoreNodes.h
Include/ScriptCanvas/Libraries/Core/ContainerTypeReflection.h
Include/ScriptCanvas/Libraries/Core/EBusEventHandler.cpp
Include/ScriptCanvas/Libraries/Core/EBusEventHandler.h
Include/ScriptCanvas/Libraries/Core/EBusEventHandler.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/ExtractProperty.cpp
Include/ScriptCanvas/Libraries/Core/ExtractProperty.h
Include/ScriptCanvas/Libraries/Core/ExtractProperty.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/EventHandlerTranslationUtility.h
Include/ScriptCanvas/Libraries/Core/EventHandlerTranslationUtility.cpp
Include/ScriptCanvas/Libraries/Core/ForEach.cpp
Include/ScriptCanvas/Libraries/Core/ForEach.h
Include/ScriptCanvas/Libraries/Core/ForEach.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/FunctionBus.h
Include/ScriptCanvas/Libraries/Core/FunctionCallNode.cpp
Include/ScriptCanvas/Libraries/Core/FunctionCallNode.h
Include/ScriptCanvas/Libraries/Core/FunctionCallNode.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/FunctionCallNodeIsOutOfDate.h
Include/ScriptCanvas/Libraries/Core/FunctionCallNodeIsOutOfDate.cpp
Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.cpp
Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.h
Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/GetVariable.cpp
Include/ScriptCanvas/Libraries/Core/GetVariable.h
Include/ScriptCanvas/Libraries/Core/GetVariable.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/Method.cpp
Include/ScriptCanvas/Libraries/Core/Method.h
Include/ScriptCanvas/Libraries/Core/MethodOverloaded.cpp
Include/ScriptCanvas/Libraries/Core/MethodOverloaded.h
Include/ScriptCanvas/Libraries/Core/MethodUtility.cpp
Include/ScriptCanvas/Libraries/Core/MethodUtility.h
Include/ScriptCanvas/Libraries/Core/Nodeling.cpp
Include/ScriptCanvas/Libraries/Core/Nodeling.h
Include/ScriptCanvas/Libraries/Core/Nodeling.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.cpp
Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.h
Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/Repeater.cpp
Include/ScriptCanvas/Libraries/Core/Repeater.h
Include/ScriptCanvas/Libraries/Core/Repeater.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.h
Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.cpp
Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Core/ScriptEventBase.cpp
Include/ScriptCanvas/Libraries/Core/ScriptEventBase.h
Include/ScriptCanvas/Libraries/Core/ScriptEventBase.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/SendScriptEvent.cpp
Include/ScriptCanvas/Libraries/Core/SendScriptEvent.h
Include/ScriptCanvas/Libraries/Core/SendScriptEvent.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/SetVariable.cpp
Include/ScriptCanvas/Libraries/Core/SetVariable.h
Include/ScriptCanvas/Libraries/Core/SetVariable.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/Start.h
Include/ScriptCanvas/Libraries/Core/Start.ScriptCanvasGrammar.xml
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/EntityNodes.h
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/Break.h
Include/ScriptCanvas/Libraries/Logic/Break.cpp
Include/ScriptCanvas/Libraries/Logic/Break.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Cycle.cpp
Include/ScriptCanvas/Libraries/Logic/Cycle.h
Include/ScriptCanvas/Libraries/Logic/Cycle.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Gate.cpp
Include/ScriptCanvas/Libraries/Logic/Gate.h
Include/ScriptCanvas/Libraries/Logic/Gate.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Indexer.h
Include/ScriptCanvas/Libraries/Logic/Indexer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/IsNull.cpp
Include/ScriptCanvas/Libraries/Logic/IsNull.h
Include/ScriptCanvas/Libraries/Logic/IsNull.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Logic.cpp
Include/ScriptCanvas/Libraries/Logic/Logic.h
Include/ScriptCanvas/Libraries/Logic/Multiplexer.h
Include/ScriptCanvas/Libraries/Logic/Multiplexer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Not.h
Include/ScriptCanvas/Libraries/Logic/Once.cpp
Include/ScriptCanvas/Libraries/Logic/Once.h
Include/ScriptCanvas/Libraries/Logic/Once.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Or.h
Include/ScriptCanvas/Libraries/Logic/OrderedSequencer.cpp
Include/ScriptCanvas/Libraries/Logic/OrderedSequencer.h
Include/ScriptCanvas/Libraries/Logic/OrderedSequencer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Sequencer.cpp
Include/ScriptCanvas/Libraries/Logic/Sequencer.h
Include/ScriptCanvas/Libraries/Logic/Sequencer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/TargetedSequencer.cpp
Include/ScriptCanvas/Libraries/Logic/TargetedSequencer.h
Include/ScriptCanvas/Libraries/Logic/TargetedSequencer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/WeightedRandomSequencer.cpp
Include/ScriptCanvas/Libraries/Logic/WeightedRandomSequencer.h
Include/ScriptCanvas/Libraries/Logic/WeightedRandomSequencer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/While.cpp
Include/ScriptCanvas/Libraries/Logic/While.h
Include/ScriptCanvas/Libraries/Logic/While.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Math/AABBNodes.h
Include/ScriptCanvas/Libraries/Math/ColorNodes.h
Include/ScriptCanvas/Libraries/Math/CRCNodes.h
Include/ScriptCanvas/Libraries/Math/Divide.h
Include/ScriptCanvas/Libraries/Math/Math.cpp
Include/ScriptCanvas/Libraries/Math/Math.h
Include/ScriptCanvas/Libraries/Math/MathExpression.cpp
Include/ScriptCanvas/Libraries/Math/MathExpression.h
Include/ScriptCanvas/Libraries/Math/MathExpression.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Math/MathNodeUtilities.cpp
Include/ScriptCanvas/Libraries/Math/MathNodeUtilities.h
Include/ScriptCanvas/Libraries/Math/MathGenerics.h
Include/ScriptCanvas/Libraries/Math/MathRandom.h
Include/ScriptCanvas/Libraries/Math/Matrix3x3Nodes.h
Include/ScriptCanvas/Libraries/Math/Matrix4x4Nodes.h
Include/ScriptCanvas/Libraries/Math/Multiply.h
Include/ScriptCanvas/Libraries/Math/OBBNodes.h
Include/ScriptCanvas/Libraries/Math/PlaneNodes.h
Include/ScriptCanvas/Libraries/Math/RotationNodes.h
Include/ScriptCanvas/Libraries/Math/Subtract.h
Include/ScriptCanvas/Libraries/Math/Sum.h
Include/ScriptCanvas/Libraries/Math/TransformNodes.h
Include/ScriptCanvas/Libraries/Math/Vector2Nodes.h
Include/ScriptCanvas/Libraries/Math/Vector3Nodes.h
Include/ScriptCanvas/Libraries/Math/Vector4Nodes.h
Include/ScriptCanvas/Libraries/Comparison/Comparison.h
Include/ScriptCanvas/Libraries/Comparison/Comparison.cpp
Include/ScriptCanvas/Libraries/Comparison/ComparisonFunctions.h
Include/ScriptCanvas/Libraries/Comparison/EqualTo.h
Include/ScriptCanvas/Libraries/Comparison/NotEqualTo.h
Include/ScriptCanvas/Libraries/Comparison/Less.h
Include/ScriptCanvas/Libraries/Comparison/Greater.h
Include/ScriptCanvas/Libraries/Comparison/LessEqual.h
Include/ScriptCanvas/Libraries/Comparison/GreaterEqual.h
Include/ScriptCanvas/Libraries/Time/Time.h
Include/ScriptCanvas/Libraries/Time/Time.cpp
Include/ScriptCanvas/Libraries/Time/Countdown.cpp
Include/ScriptCanvas/Libraries/Time/Countdown.h
Include/ScriptCanvas/Libraries/Time/Countdown.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Time/DelayNodeable.h
Include/ScriptCanvas/Libraries/Time/DelayNodeable.cpp
Include/ScriptCanvas/Libraries/Time/DelayNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Time/Duration.cpp
Include/ScriptCanvas/Libraries/Time/Duration.h
Include/ScriptCanvas/Libraries/Time/Duration.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Time/HeartBeat.cpp
Include/ScriptCanvas/Libraries/Time/HeartBeat.h
Include/ScriptCanvas/Libraries/Time/HeartBeat.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Time/Timer.cpp
Include/ScriptCanvas/Libraries/Time/Timer.h
Include/ScriptCanvas/Libraries/Time/Timer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Time/TimeDelayNodeable.h
Include/ScriptCanvas/Libraries/Time/TimeDelayNodeable.cpp
Include/ScriptCanvas/Libraries/Time/TimeDelayNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Time/DurationNodeable.h
Include/ScriptCanvas/Libraries/Time/DurationNodeable.cpp
Include/ScriptCanvas/Libraries/Time/DurationNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Time/HeartBeatNodeable.h
Include/ScriptCanvas/Libraries/Time/HeartBeatNodeable.cpp
Include/ScriptCanvas/Libraries/Time/HeartBeatNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Time/TimerNodeable.h
Include/ScriptCanvas/Libraries/Time/TimerNodeable.cpp
Include/ScriptCanvas/Libraries/Time/TimerNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Spawning/Spawning.cpp
Include/ScriptCanvas/Libraries/Spawning/Spawning.h
Include/ScriptCanvas/Libraries/Spawning/SpawnNodeable.cpp
Include/ScriptCanvas/Libraries/Spawning/SpawnNodeable.h
Include/ScriptCanvas/Libraries/Spawning/SpawnNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/String/Contains.cpp
Include/ScriptCanvas/Libraries/String/Contains.h
Include/ScriptCanvas/Libraries/String/Contains.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/String/Format.cpp
Include/ScriptCanvas/Libraries/String/Format.h
Include/ScriptCanvas/Libraries/String/Format.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/String/Print.h
Include/ScriptCanvas/Libraries/String/Print.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/String/Replace.cpp
Include/ScriptCanvas/Libraries/String/Replace.h
Include/ScriptCanvas/Libraries/String/Replace.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/String/String.h
Include/ScriptCanvas/Libraries/String/String.cpp
Include/ScriptCanvas/Libraries/String/StringMethods.h
Include/ScriptCanvas/Libraries/String/StringMethods.cpp
Include/ScriptCanvas/Libraries/String/StringGenerics.h
Include/ScriptCanvas/Libraries/String/Utilities.cpp
Include/ScriptCanvas/Libraries/String/Utilities.h
Include/ScriptCanvas/Libraries/String/Utilities.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/AddFailure.cpp
Include/ScriptCanvas/Libraries/UnitTesting/AddFailure.h
Include/ScriptCanvas/Libraries/UnitTesting/AddFailure.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/AddSuccess.h
Include/ScriptCanvas/Libraries/UnitTesting/AddSuccess.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/Checkpoint.h
Include/ScriptCanvas/Libraries/UnitTesting/Checkpoint.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectEqual.cpp
Include/ScriptCanvas/Libraries/UnitTesting/ExpectEqual.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectEqual.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectFalse.cpp
Include/ScriptCanvas/Libraries/UnitTesting/ExpectFalse.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectFalse.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThan.cpp
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThan.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThan.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThanEqual.cpp
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThanEqual.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThanEqual.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThan.cpp
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThan.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThan.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThanEqual.cpp
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThanEqual.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThanEqual.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectNotEqual.cpp
Include/ScriptCanvas/Libraries/UnitTesting/ExpectNotEqual.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectNotEqual.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectTrue.cpp
Include/ScriptCanvas/Libraries/UnitTesting/ExpectTrue.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectTrue.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/MarkComplete.h
Include/ScriptCanvas/Libraries/UnitTesting/MarkComplete.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestBus.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestBusMacros.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTesting.cpp
Include/ScriptCanvas/Libraries/UnitTesting/UnitTesting.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestingLibrary.cpp
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestingLibrary.h
Include/ScriptCanvas/Libraries/UnitTesting/Auxiliary/Auxiliary.cpp
Include/ScriptCanvas/Libraries/UnitTesting/Auxiliary/Auxiliary.h
Include/ScriptCanvas/Libraries/UnitTesting/Auxiliary/AuxiliaryGenerics.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestBusSender.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestBusSender.cpp
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestBusSenderMacros.h
Include/ScriptCanvas/Libraries/Operators/Operators.cpp
Include/ScriptCanvas/Libraries/Operators/Operators.h
Include/ScriptCanvas/Libraries/Operators/Operator.cpp
Include/ScriptCanvas/Libraries/Operators/Operator.h
Include/ScriptCanvas/Libraries/Operators/Operator.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.cpp
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.cpp
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.cpp
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.cpp
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.cpp
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorFront.cpp
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorFront.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorFront.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorInsert.cpp
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorInsert.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorInsert.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorPushBack.cpp
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorPushBack.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorPushBack.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorSize.cpp
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorSize.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorSize.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorAdd.cpp
Include/ScriptCanvas/Libraries/Operators/Math/OperatorAdd.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorAdd.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorArithmetic.cpp
Include/ScriptCanvas/Libraries/Operators/Math/OperatorArithmetic.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorArithmetic.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDiv.cpp
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDiv.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDiv.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDivideByNumber.cpp
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDivideByNumber.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDivideByNumber.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLength.cpp
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLength.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLength.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerp.cpp
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerp.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerp.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorMul.cpp
Include/ScriptCanvas/Libraries/Operators/Math/OperatorMul.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorMul.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorSub.cpp
Include/ScriptCanvas/Libraries/Operators/Math/OperatorSub.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorSub.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerpNodeable.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerpNodeable.cpp
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerpNodeableNode.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerpNodeableNode.cpp
Include/ScriptCanvas/Profiler/Driller.h
Include/ScriptCanvas/Profiler/Aggregator.h
Include/ScriptCanvas/Profiler/Aggregator.cpp
Include/ScriptCanvas/Profiler/DrillerEvents.h
Include/ScriptCanvas/Profiler/DrillerEvents.cpp
Include/ScriptCanvas/Serialization/BehaviorContextObjectSerializer.h
Include/ScriptCanvas/Serialization/BehaviorContextObjectSerializer.cpp
Include/ScriptCanvas/Serialization/DatumSerializer.h
Include/ScriptCanvas/Serialization/DatumSerializer.cpp
Include/ScriptCanvas/Serialization/RuntimeVariableSerializer.h
Include/ScriptCanvas/Serialization/RuntimeVariableSerializer.cpp
Include/ScriptCanvas/Data/DataTrait.cpp
Include/ScriptCanvas/Data/DataTrait.h
Include/ScriptCanvas/Data/PropertyTraits.cpp
Include/ScriptCanvas/Data/PropertyTraits.h
Include/ScriptCanvas/Data/Traits.h
Include/ScriptCanvas/Variable/VariableBus.h
Include/ScriptCanvas/Variable/GraphVariable.h
Include/ScriptCanvas/Variable/GraphVariable.cpp
Include/ScriptCanvas/Variable/GraphVariableManagerComponent.h
Include/ScriptCanvas/Variable/GraphVariableManagerComponent.cpp
Include/ScriptCanvas/Variable/VariableCore.h
Include/ScriptCanvas/Variable/VariableCore.cpp
Include/ScriptCanvas/Variable/VariableData.h
Include/ScriptCanvas/Variable/VariableData.cpp
Include/ScriptCanvas/Utils/DataUtils.h
Include/ScriptCanvas/Utils/DataUtils.cpp
Include/ScriptCanvas/Utils/NodeUtils.h
Include/ScriptCanvas/Utils/NodeUtils.cpp
Include/ScriptCanvas/Utils/SerializationUtils.h
Include/ScriptCanvas/Utils/VersionConverters.h
Include/ScriptCanvas/Utils/VersionConverters.cpp
Include/ScriptCanvas/Utils/VersioningUtils.cpp
Include/ScriptCanvas/Utils/VersioningUtils.cpp
Include/ScriptCanvas/Utils/BehaviorContextUtils.h
Include/ScriptCanvas/Utils/BehaviorContextUtils.cpp
)
set(SKIP_UNITY_BUILD_INCLUSION_FILES
Include/ScriptCanvas/Libraries/Core/FunctionCallNode.cpp
Include/ScriptCanvas/Libraries/Core/FunctionCallNode.h
Include/ScriptCanvas/Libraries/Core/FunctionCallNodeIsOutOfDate.h
Include/ScriptCanvas/Libraries/Core/FunctionCallNodeIsOutOfDate.cpp
)
@@ -0,0 +1,378 @@
#
# 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
#
#
set(FILES
Include/ScriptCanvas/SystemComponent.h
Include/ScriptCanvas/ScriptCanvasGem.h
Include/ScriptCanvas/Asset/AssetDescription.h
Include/ScriptCanvas/Asset/AssetRegistry.h
Include/ScriptCanvas/Asset/AssetRegistryBus.h
Include/ScriptCanvas/Asset/ExecutionLogAsset.h
Include/ScriptCanvas/Asset/ExecutionLogAssetBus.h
Include/ScriptCanvas/Asset/RuntimeAsset.h
Include/ScriptCanvas/Asset/RuntimeAssetHandler.h
Include/ScriptCanvas/Asset/ScriptCanvasAssetBase.h
Include/ScriptCanvas/Asset/ScriptCanvasAssetData.h
Include/ScriptCanvas/Asset/SubgraphInterfaceAssetHandler.h
Include/ScriptCanvas/Core/ScriptCanvasBus.h
Include/ScriptCanvas/Core/ExecutionNotificationsBus.h
Include/ScriptCanvas/Core/GraphBus.h
Include/ScriptCanvas/Core/NodeBus.h
Include/ScriptCanvas/Core/EBusNodeBus.h
Include/ScriptCanvas/Core/NodelingBus.h
Include/ScriptCanvas/Core/ContractBus.h
Include/ScriptCanvas/Core/Attributes.h
Include/ScriptCanvas/Core/Connection.h
Include/ScriptCanvas/Core/ConnectionBus.h
Include/ScriptCanvas/Core/Contract.h
Include/ScriptCanvas/Core/Contracts.h
Include/ScriptCanvas/Core/Contracts/MethodOverloadContract.h
Include/ScriptCanvas/Core/Contracts/RestrictedNodeContract.h
Include/ScriptCanvas/Core/Core.h
Include/ScriptCanvas/Core/Datum.h
Include/ScriptCanvas/Core/DatumBus.h
Include/ScriptCanvas/Core/EBusHandler.h
Include/ScriptCanvas/Core/Endpoint.h
Include/ScriptCanvas/Core/Graph.h
Include/ScriptCanvas/Core/GraphData.h
Include/ScriptCanvas/Core/GraphScopedTypes.h
Include/ScriptCanvas/Core/MethodConfiguration.h
Include/ScriptCanvas/Core/ModifiableDatumView.h
Include/ScriptCanvas/Core/Node.h
Include/ScriptCanvas/Core/Nodeable.h
Include/ScriptCanvas/Core/NodeableNode.h
Include/ScriptCanvas/Core/NodeableNodeOverloaded.h
Include/ScriptCanvas/Core/NodeFunctionGeneric.h
Include/ScriptCanvas/Core/SerializationListener.h
Include/ScriptCanvas/Core/Slot.h
Include/ScriptCanvas/Core/SlotConfigurationDefaults.h
Include/ScriptCanvas/Core/SlotConfigurations.h
Include/ScriptCanvas/Core/SlotExecutionMap.h
Include/ScriptCanvas/Core/SlotMetadata.h
Include/ScriptCanvas/Core/SlotNames.h
Include/ScriptCanvas/Core/SubgraphInterface.h
Include/ScriptCanvas/Core/SubgraphInterfaceUtility.h
Include/ScriptCanvas/Translation/AbstractModelTranslator.h
Include/ScriptCanvas/Translation/Configuration.h
Include/ScriptCanvas/Translation/GraphToCPlusPlus.h
Include/ScriptCanvas/Translation/GraphToLua.h
Include/ScriptCanvas/Translation/GraphToLuaUtility.h
Include/ScriptCanvas/Translation/GraphToX.h
Include/ScriptCanvas/Translation/Translation.h
Include/ScriptCanvas/Translation/TranslationContext.h
Include/ScriptCanvas/Translation/TranslationResult.h
Include/ScriptCanvas/Translation/TranslationUtilities.h
Include/ScriptCanvas/PerformanceStatistician.h
Include/ScriptCanvas/PerformanceStatisticsBus.h
Include/ScriptCanvas/PerformanceTracker.h
Include/ScriptCanvas/AutoGen/ScriptCanvas_Macros.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvas_Nodeable_Macros.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvasGrammar_Header.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvasGrammar_Source.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvasNodeable_Header.jinja
Include/ScriptCanvas/AutoGen/ScriptCanvasNodeable_Source.jinja
Include/ScriptCanvas/CodeGen/NodeableCodegen.h
Include/ScriptCanvas/Core/Contracts/ConnectionLimitContract.h
Include/ScriptCanvas/Core/Contracts/ContractRTTI.h
Include/ScriptCanvas/Core/Contracts/DisallowReentrantExecutionContract.h
Include/ScriptCanvas/Core/Contracts/DisplayGroupConnectedSlotLimitContract.h
Include/ScriptCanvas/Core/Contracts/DynamicTypeContract.h
Include/ScriptCanvas/Core/Contracts/IsReferenceTypeContract.h
Include/ScriptCanvas/Core/Contracts/MathOperatorContract.h
Include/ScriptCanvas/Core/Contracts/SlotTypeContract.h
Include/ScriptCanvas/Core/Contracts/SupportsMethodContract.h
Include/ScriptCanvas/Core/Contracts/TypeContract.h
Include/ScriptCanvas/Data/BehaviorContextObject.h
Include/ScriptCanvas/Data/BehaviorContextObjectPtr.h
Include/ScriptCanvas/Data/Data.h
Include/ScriptCanvas/Data/DataMacros.h
Include/ScriptCanvas/Data/DataRegistry.h
Include/ScriptCanvas/Data/NumericData.h
Include/ScriptCanvas/Deprecated/VariableDatumBase.h
Include/ScriptCanvas/Deprecated/VariableDatum.h
Include/ScriptCanvas/Deprecated/VariableHelpers.h
Include/ScriptCanvas/Execution/ErrorBus.h
Include/ScriptCanvas/Execution/ExecutionBus.h
Include/ScriptCanvas/Execution/ExecutionContext.h
Include/ScriptCanvas/Execution/ExecutionObjectCloning.h
Include/ScriptCanvas/Execution/ExecutionPerformanceTimer.h
Include/ScriptCanvas/Execution/ExecutionState.h
Include/ScriptCanvas/Execution/ExecutionStateDeclarations.h
Include/ScriptCanvas/Execution/NativeHostDeclarations.h
Include/ScriptCanvas/Execution/NativeHostDefinitions.h
Include/ScriptCanvas/Execution/RuntimeComponent.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedAPI.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedCloningAPI.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedDebugAPI.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedEBusAPI.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionInterpretedOut.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpreted.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedPerActivation.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedPure.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedSingleton.h
Include/ScriptCanvas/Execution/Interpreted/ExecutionStateInterpretedUtility.h
Include/ScriptCanvas/Execution/NodeableOut/NodeableOutNative.h
Include/ScriptCanvas/Grammar/AbstractCodeModel.h
Include/ScriptCanvas/Grammar/DebugMap.h
Include/ScriptCanvas/Grammar/ExecutionTraversalListeners.h
Include/ScriptCanvas/Grammar/ParsingMetaData.h
Include/ScriptCanvas/Grammar/ParsingUtilities.h
Include/ScriptCanvas/Grammar/Primitives.h
Include/ScriptCanvas/Grammar/PrimitivesDeclarations.h
Include/ScriptCanvas/Grammar/PrimitivesExecution.h
Include/ScriptCanvas/Grammar/SymbolNames.h
Include/ScriptCanvas/Execution/ErrorBus.h
Include/ScriptCanvas/Execution/ExecutionContext.h
Include/ScriptCanvas/Execution/ExecutionBus.h
Include/ScriptCanvas/Execution/NativeHostDeclarations.h
Include/ScriptCanvas/Execution/NativeHostDefinitions.h
Include/ScriptCanvas/Execution/RuntimeComponent.h
Include/ScriptCanvas/Internal/Nodeables/BaseTimer.h
Include/ScriptCanvas/Internal/Nodeables/BaseTimer.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.h
Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Internal/Nodes/ExpressionNodeBase.h
Include/ScriptCanvas/Internal/Nodes/ExpressionNodeBase.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Internal/Nodes/StringFormatted.h
Include/ScriptCanvas/Internal/Nodes/StringFormatted.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Grammar/AbstractCodeModel.h
Include/ScriptCanvas/Libraries/Libraries.h
Include/ScriptCanvas/Libraries/Core/AzEventHandler.h
Include/ScriptCanvas/Libraries/Core/AzEventHandler.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/BinaryOperator.h
Include/ScriptCanvas/Libraries/Core/CoreNodes.h
Include/ScriptCanvas/Libraries/Core/ContainerTypeReflection.h
Include/ScriptCanvas/Libraries/Core/EBusEventHandler.h
Include/ScriptCanvas/Libraries/Core/EBusEventHandler.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/ExtractProperty.h
Include/ScriptCanvas/Libraries/Core/ExtractProperty.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/EventHandlerTranslationUtility.h
Include/ScriptCanvas/Libraries/Core/ForEach.h
Include/ScriptCanvas/Libraries/Core/ForEach.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/FunctionBus.h
Include/ScriptCanvas/Libraries/Core/FunctionCallNode.h
Include/ScriptCanvas/Libraries/Core/FunctionCallNode.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/FunctionCallNodeIsOutOfDate.h
Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.h
Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/GetVariable.h
Include/ScriptCanvas/Libraries/Core/GetVariable.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/Method.h
Include/ScriptCanvas/Libraries/Core/MethodOverloaded.h
Include/ScriptCanvas/Libraries/Core/MethodUtility.h
Include/ScriptCanvas/Libraries/Core/Nodeling.h
Include/ScriptCanvas/Libraries/Core/Nodeling.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.h
Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/Repeater.h
Include/ScriptCanvas/Libraries/Core/Repeater.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.h
Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Core/ScriptEventBase.h
Include/ScriptCanvas/Libraries/Core/ScriptEventBase.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/SendScriptEvent.h
Include/ScriptCanvas/Libraries/Core/SendScriptEvent.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/SetVariable.h
Include/ScriptCanvas/Libraries/Core/SetVariable.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/Start.h
Include/ScriptCanvas/Libraries/Core/Start.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Core/UnaryOperator.h
Include/ScriptCanvas/Libraries/Entity/Entity.h
Include/ScriptCanvas/Libraries/Entity/EntityNodes.h
Include/ScriptCanvas/Libraries/Entity/RotateMethod.h
Include/ScriptCanvas/Libraries/Logic/And.h
Include/ScriptCanvas/Libraries/Logic/Any.h
Include/ScriptCanvas/Libraries/Logic/Any.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Break.h
Include/ScriptCanvas/Libraries/Logic/Break.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Cycle.h
Include/ScriptCanvas/Libraries/Logic/Cycle.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Gate.h
Include/ScriptCanvas/Libraries/Logic/Gate.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Indexer.h
Include/ScriptCanvas/Libraries/Logic/Indexer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/IsNull.h
Include/ScriptCanvas/Libraries/Logic/IsNull.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Logic.h
Include/ScriptCanvas/Libraries/Logic/Multiplexer.h
Include/ScriptCanvas/Libraries/Logic/Multiplexer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Not.h
Include/ScriptCanvas/Libraries/Logic/Once.h
Include/ScriptCanvas/Libraries/Logic/Once.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Or.h
Include/ScriptCanvas/Libraries/Logic/OrderedSequencer.h
Include/ScriptCanvas/Libraries/Logic/OrderedSequencer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/Sequencer.h
Include/ScriptCanvas/Libraries/Logic/Sequencer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/TargetedSequencer.h
Include/ScriptCanvas/Libraries/Logic/TargetedSequencer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/WeightedRandomSequencer.h
Include/ScriptCanvas/Libraries/Logic/WeightedRandomSequencer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Logic/While.h
Include/ScriptCanvas/Libraries/Logic/While.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Math/AABBNodes.h
Include/ScriptCanvas/Libraries/Math/ColorNodes.h
Include/ScriptCanvas/Libraries/Math/CRCNodes.h
Include/ScriptCanvas/Libraries/Math/Divide.h
Include/ScriptCanvas/Libraries/Math/Math.h
Include/ScriptCanvas/Libraries/Math/MathExpression.h
Include/ScriptCanvas/Libraries/Math/MathExpression.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Math/MathNodeUtilities.h
Include/ScriptCanvas/Libraries/Math/MathGenerics.h
Include/ScriptCanvas/Libraries/Math/MathRandom.h
Include/ScriptCanvas/Libraries/Math/Matrix3x3Nodes.h
Include/ScriptCanvas/Libraries/Math/Matrix4x4Nodes.h
Include/ScriptCanvas/Libraries/Math/Multiply.h
Include/ScriptCanvas/Libraries/Math/OBBNodes.h
Include/ScriptCanvas/Libraries/Math/PlaneNodes.h
Include/ScriptCanvas/Libraries/Math/RotationNodes.h
Include/ScriptCanvas/Libraries/Math/Subtract.h
Include/ScriptCanvas/Libraries/Math/Sum.h
Include/ScriptCanvas/Libraries/Math/TransformNodes.h
Include/ScriptCanvas/Libraries/Math/Vector2Nodes.h
Include/ScriptCanvas/Libraries/Math/Vector3Nodes.h
Include/ScriptCanvas/Libraries/Math/Vector4Nodes.h
Include/ScriptCanvas/Libraries/Comparison/Comparison.h
Include/ScriptCanvas/Libraries/Comparison/ComparisonFunctions.h
Include/ScriptCanvas/Libraries/Comparison/EqualTo.h
Include/ScriptCanvas/Libraries/Comparison/NotEqualTo.h
Include/ScriptCanvas/Libraries/Comparison/Less.h
Include/ScriptCanvas/Libraries/Comparison/Greater.h
Include/ScriptCanvas/Libraries/Comparison/LessEqual.h
Include/ScriptCanvas/Libraries/Comparison/GreaterEqual.h
Include/ScriptCanvas/Libraries/Time/Time.h
Include/ScriptCanvas/Libraries/Time/Countdown.h
Include/ScriptCanvas/Libraries/Time/Countdown.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Time/DelayNodeable.h
Include/ScriptCanvas/Libraries/Time/DelayNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Time/Duration.h
Include/ScriptCanvas/Libraries/Time/Duration.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Time/HeartBeat.h
Include/ScriptCanvas/Libraries/Time/HeartBeat.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Time/Timer.h
Include/ScriptCanvas/Libraries/Time/Timer.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Time/TimeDelayNodeable.h
Include/ScriptCanvas/Libraries/Time/TimeDelayNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Time/DurationNodeable.h
Include/ScriptCanvas/Libraries/Time/DurationNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Time/HeartBeatNodeable.h
Include/ScriptCanvas/Libraries/Time/HeartBeatNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Time/TimerNodeable.h
Include/ScriptCanvas/Libraries/Time/TimerNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/Spawning/Spawning.h
Include/ScriptCanvas/Libraries/Spawning/SpawnNodeable.h
Include/ScriptCanvas/Libraries/Spawning/SpawnNodeable.ScriptCanvasNodeable.xml
Include/ScriptCanvas/Libraries/String/Contains.h
Include/ScriptCanvas/Libraries/String/Contains.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/String/Format.h
Include/ScriptCanvas/Libraries/String/Format.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/String/Print.h
Include/ScriptCanvas/Libraries/String/Print.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/String/Replace.h
Include/ScriptCanvas/Libraries/String/Replace.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/String/String.h
Include/ScriptCanvas/Libraries/String/StringMethods.h
Include/ScriptCanvas/Libraries/String/StringGenerics.h
Include/ScriptCanvas/Libraries/String/Utilities.h
Include/ScriptCanvas/Libraries/String/Utilities.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/AddFailure.h
Include/ScriptCanvas/Libraries/UnitTesting/AddFailure.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/AddSuccess.h
Include/ScriptCanvas/Libraries/UnitTesting/AddSuccess.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/Checkpoint.h
Include/ScriptCanvas/Libraries/UnitTesting/Checkpoint.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectEqual.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectEqual.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectFalse.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectFalse.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThan.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThan.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThanEqual.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectGreaterThanEqual.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThan.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThan.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThanEqual.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectLessThanEqual.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectNotEqual.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectNotEqual.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/ExpectTrue.h
Include/ScriptCanvas/Libraries/UnitTesting/ExpectTrue.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/MarkComplete.h
Include/ScriptCanvas/Libraries/UnitTesting/MarkComplete.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestBus.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestBusMacros.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTesting.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestingLibrary.h
Include/ScriptCanvas/Libraries/UnitTesting/Auxiliary/Auxiliary.h
Include/ScriptCanvas/Libraries/UnitTesting/Auxiliary/AuxiliaryGenerics.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestBusSender.h
Include/ScriptCanvas/Libraries/UnitTesting/UnitTestBusSenderMacros.h
Include/ScriptCanvas/Libraries/Operators/Operators.h
Include/ScriptCanvas/Libraries/Operators/Operator.h
Include/ScriptCanvas/Libraries/Operators/Operator.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorAt.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorBack.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorClear.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorEmpty.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorErase.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorFront.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorFront.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorInsert.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorInsert.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorPushBack.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorPushBack.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorSize.h
Include/ScriptCanvas/Libraries/Operators/Containers/OperatorSize.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorAdd.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorAdd.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorArithmetic.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorArithmetic.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDiv.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDiv.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDivideByNumber.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorDivideByNumber.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLength.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLength.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerp.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerp.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorMul.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorMul.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorSub.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorSub.ScriptCanvasGrammar.xml
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerpNodeable.h
Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerpNodeableNode.h
Include/ScriptCanvas/Profiler/Driller.h
Include/ScriptCanvas/Profiler/Aggregator.h
Include/ScriptCanvas/Profiler/DrillerEvents.h
Include/ScriptCanvas/Serialization/BehaviorContextObjectSerializer.h
Include/ScriptCanvas/Serialization/DatumSerializer.h
Include/ScriptCanvas/Serialization/RuntimeVariableSerializer.h
Include/ScriptCanvas/Data/DataTrait.h
Include/ScriptCanvas/Data/PropertyTraits.h
Include/ScriptCanvas/Data/Traits.h
Include/ScriptCanvas/Variable/VariableBus.h
Include/ScriptCanvas/Variable/GraphVariable.h
Include/ScriptCanvas/Variable/GraphVariableManagerComponent.h
Include/ScriptCanvas/Variable/VariableCore.h
Include/ScriptCanvas/Variable/VariableData.h
Include/ScriptCanvas/Utils/DataUtils.h
Include/ScriptCanvas/Utils/NodeUtils.h
Include/ScriptCanvas/Utils/SerializationUtils.h
Include/ScriptCanvas/Utils/VersionConverters.h
Include/ScriptCanvas/Utils/BehaviorContextUtils.h
)
set(SKIP_UNITY_BUILD_INCLUSION_FILES
Include/ScriptCanvas/Libraries/Core/FunctionCallNode.h
Include/ScriptCanvas/Libraries/Core/FunctionCallNodeIsOutOfDate.h
)