Integrating github/staging through commit ab87ed9
This commit is contained in:
@@ -100,7 +100,7 @@ namespace ScriptCanvasBuilder
|
||||
// or the fingerprint of the individual job is different.
|
||||
size_t fingerprint = ScriptCanvas::BehaviorContextUtils::GenerateFingerprintForBehaviorContext();
|
||||
builderDescriptor.m_analysisFingerprint = AZStd::string(m_scriptCanvasBuilder.GetFingerprintString())
|
||||
.append(AZStd::string::format("|%lu", static_cast<uint64_t>(fingerprint)));
|
||||
.append(AZStd::string::format("|%zu", fingerprint));
|
||||
builderDescriptor.AddFlags(AssetBuilderSDK::AssetBuilderDesc::BF_DeleteLastKnownGoodProductOnFailure, s_scriptCanvasProcessJobKey);
|
||||
builderDescriptor.m_productsToKeepOnFailure[s_scriptCanvasProcessJobKey] = { AZ_CRC("SubgraphInterface", 0xdfe6dc72) };
|
||||
m_scriptCanvasBuilder.BusConnect(builderDescriptor.m_busId);
|
||||
|
||||
@@ -329,7 +329,7 @@ namespace ScriptCanvasBuilder
|
||||
}
|
||||
|
||||
nodeLookUpMap.erase(nodePair.second->GetId());
|
||||
size_t eraseCount = compiledGraphData.m_nodes.erase(nodePair.second);
|
||||
[[maybe_unused]] size_t eraseCount = compiledGraphData.m_nodes.erase(nodePair.second);
|
||||
AZ_Assert(eraseCount == 1, "Failed to erase node from compiled graph data");
|
||||
|
||||
delete node;
|
||||
|
||||
@@ -298,7 +298,6 @@ namespace ScriptCanvasBuilder
|
||||
if (saveRuntimAssetOutcome.IsSuccess())
|
||||
{
|
||||
// \todo this file is only required on PC editor builds, cull it in packaging, here or wherever appropriate
|
||||
ScriptCanvasEditor::ScriptCanvasFunctionDataComponent* sourceDataComponent = asset.Get()->GetFunctionData();
|
||||
AzFramework::StringFunc::Path::StripExtension(fileNameOnly);
|
||||
|
||||
ScriptCanvas::SubgraphInterfaceData functionInterface;
|
||||
|
||||
@@ -97,7 +97,6 @@ namespace ScriptCanvasEditor
|
||||
|
||||
AZ::Data::AssetInfo GetSourceInfoByProductId(AZ::Data::AssetId assetId, AZ::Data::AssetType assetType)
|
||||
{
|
||||
bool infoFound = false;
|
||||
AZStd::string watchFolder;
|
||||
AZ::Data::AssetInfo assetInfo;
|
||||
const AZStd::string platformName = ""; // Empty for default
|
||||
|
||||
@@ -583,7 +583,7 @@ namespace ScriptCanvasEditor
|
||||
AZStd::string tempPath = AZStd::string::format("@usercache@/scriptcanvas/%s.temp", tempFilename.data());
|
||||
|
||||
AZStd::array<char, AZ::IO::MaxPathLength> resolvedPath{};
|
||||
AZ::IO::FileIOBase::GetInstance()->ResolvePath(tempPath.data(), resolvedPath.data(), resolvedPath.size());
|
||||
fileIO->ResolvePath(tempPath.data(), resolvedPath.data(), resolvedPath.size());
|
||||
return resolvedPath.data();
|
||||
}
|
||||
|
||||
@@ -714,7 +714,7 @@ namespace ScriptCanvasEditor
|
||||
AZStd::string tempPath = AZStd::string::format("@usercache@/scriptcanvas/%s.temp", tempFilename.data());
|
||||
|
||||
AZStd::array<char, AZ::IO::MaxPathLength> resolvedPath{};
|
||||
AZ::IO::FileIOBase::GetInstance()->ResolvePath(tempPath.data(), resolvedPath.data(), resolvedPath.size());
|
||||
fileIO->ResolvePath(tempPath.data(), resolvedPath.data(), resolvedPath.size());
|
||||
return resolvedPath.data();
|
||||
}
|
||||
|
||||
|
||||
@@ -438,7 +438,7 @@ namespace ScriptCanvasEditor
|
||||
AZ::EntityId newConnectionId;
|
||||
GraphCanvas::SlotRequestBus::EventResult(newConnectionId, newEndpoint.m_slotId, &GraphCanvas::SlotRequests::CreateConnectionWithEndpoint, targetEndpoint);
|
||||
|
||||
bool created = graph->CreateConnection(newConnectionId, newEndpoint, targetEndpoint);
|
||||
[[maybe_unused]] bool created = graph->CreateConnection(newConnectionId, newEndpoint, targetEndpoint);
|
||||
AZ_Warning("ScriptCanvas", created, "Failed to created connection between migrated endpoints, despite valid connection check.");
|
||||
}
|
||||
}
|
||||
@@ -635,7 +635,6 @@ namespace ScriptCanvasEditor
|
||||
if (variable)
|
||||
{
|
||||
// functions 2.0 set variable scope to function
|
||||
auto connectionType = slot->GetConnectionType();
|
||||
if (variable->GetScope() != ScriptCanvas::VariableFlags::Scope::Function)
|
||||
{
|
||||
variable->SetScope(ScriptCanvas::VariableFlags::Scope::Function);
|
||||
@@ -2270,12 +2269,24 @@ namespace ScriptCanvasEditor
|
||||
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(nameAvailable, GetScriptCanvasId(), &ScriptCanvas::GraphVariableManagerRequests::IsNameAvailable, variableName);
|
||||
}
|
||||
|
||||
int nameCount = 0;
|
||||
while (!nameAvailable)
|
||||
{
|
||||
variableName.append(" (duplicate)");
|
||||
if (nameCount == 0)
|
||||
{
|
||||
variableName.append(AZStd::string::format(" (%d)", ++nameCount));
|
||||
}
|
||||
else
|
||||
{
|
||||
AZ::StringFunc::Replace(variableName, AZStd::string::format("(%d)", nameCount-1).c_str(), AZStd::string::format("(%d)", nameCount).c_str());
|
||||
++nameCount;
|
||||
}
|
||||
|
||||
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(nameAvailable, GetScriptCanvasId(), &ScriptCanvas::GraphVariableManagerRequests::IsNameAvailable, variableName);
|
||||
}
|
||||
|
||||
activeSlot->Rename(variableName);
|
||||
|
||||
ScriptCanvas::Datum variableDatum;
|
||||
|
||||
if (activeDatum)
|
||||
|
||||
@@ -568,8 +568,6 @@ namespace ScriptCanvasEditor
|
||||
|
||||
void Skip::Run()
|
||||
{
|
||||
EditorGraphUpgradeMachine* sm = GetStateMachine<EditorGraphUpgradeMachine>();
|
||||
|
||||
Log("Up to date (skipped)\n");
|
||||
}
|
||||
|
||||
|
||||
@@ -154,8 +154,6 @@ namespace ScriptCanvasEditor
|
||||
loadResult.m_graphPath = asset.GetHint().c_str();
|
||||
loadResult.m_editorAsset = asset;
|
||||
AZ::EntityId scriptCanvasId;
|
||||
auto* sourceAsset = asset.GetAs<ScriptCanvasAsset>();
|
||||
AZ::Entity* scriptCanvasEntity = sourceAsset->GetScriptCanvasEntity();
|
||||
loadResult.m_entity = AZStd::make_unique<AZ::Entity>("Loaded test graph");
|
||||
loadResult.m_runtimeAsset = runtimeAsset;
|
||||
|
||||
|
||||
+7
-1
@@ -96,7 +96,13 @@ namespace ScriptCanvasEditor
|
||||
|
||||
bool FunctionDefinitionNodeDescriptorComponent::OnMouseDoubleClick(const QGraphicsSceneMouseEvent*)
|
||||
{
|
||||
return RenameDialog(this);
|
||||
bool rename = RenameDialog(this);
|
||||
|
||||
ScriptCanvas::ScriptCanvasId activeScriptCanvasId;
|
||||
ScriptCanvasEditor::GeneralRequestBus::BroadcastResult(activeScriptCanvasId, &ScriptCanvasEditor::GeneralRequests::GetActiveScriptCanvasId);
|
||||
GeneralRequestBus::Broadcast(&GeneralRequests::PostUndoPoint, activeScriptCanvasId);
|
||||
|
||||
return rename;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,13 +38,22 @@ namespace ScriptCanvasEditor::Nodes
|
||||
NodeIdPair CreateFunctionDefinitionNode(const ScriptCanvas::ScriptCanvasId& scriptCanvasId, bool isInput, AZStd::string rootName)
|
||||
{
|
||||
ScriptCanvasEditor::Nodes::StyleConfiguration styleConfiguration;
|
||||
auto nodeAndPair = CreateAndGetNode(azrtti_typeid<ScriptCanvas::Nodes::Core::FunctionDefinitionNode>(), scriptCanvasId, styleConfiguration);
|
||||
auto nodeAndPair = CreateAndGetNode(azrtti_typeid<ScriptCanvas::Nodes::Core::FunctionDefinitionNode>(), scriptCanvasId, styleConfiguration, [isInput](ScriptCanvas::Node* node)
|
||||
{
|
||||
ScriptCanvas::Nodes::Core::FunctionDefinitionNode* fdn = azrtti_cast<ScriptCanvas::Nodes::Core::FunctionDefinitionNode*>(node);
|
||||
if (!isInput)
|
||||
{
|
||||
fdn->MarkExecutionExit();
|
||||
}
|
||||
}
|
||||
);
|
||||
NodeIdPair createdPair = nodeAndPair.second;
|
||||
|
||||
auto functionDefinitionNode = azrtti_cast<ScriptCanvas::Nodes::Core::FunctionDefinitionNode*>(nodeAndPair.first);
|
||||
|
||||
if (functionDefinitionNode && createdPair.m_scriptCanvasId.IsValid())
|
||||
{
|
||||
|
||||
AZStd::unordered_set<AZStd::string> nodelingNames;
|
||||
|
||||
auto enumerationFunction = [&nodelingNames, scriptCanvasId](ScriptCanvas::NodelingRequests* nodelingRequests)
|
||||
@@ -83,24 +92,6 @@ namespace ScriptCanvasEditor::Nodes
|
||||
|
||||
GraphCanvas::NodeTitleRequestBus::Event(createdPair.m_graphCanvasId, &GraphCanvas::NodeTitleRequests::SetSubTitle, "Function");
|
||||
|
||||
|
||||
|
||||
// Because of how the extender slots are registered, there isn't an easy way to only create one or the other based on
|
||||
// the type of nodeling, so instead they both get created and we need to remove the inapplicable one
|
||||
GraphCanvas::ConnectionType typeToRemove = (isInput) ? GraphCanvas::CT_Input : GraphCanvas::CT_Output;
|
||||
|
||||
AZStd::vector<GraphCanvas::SlotId> extenderSlotIds, executionSlotIds;
|
||||
GraphCanvas::NodeRequestBus::EventResult(extenderSlotIds, createdPair.m_graphCanvasId, &GraphCanvas::NodeRequests::FindVisibleSlotIdsByType, typeToRemove, GraphCanvas::SlotTypes::ExtenderSlot);
|
||||
if (!extenderSlotIds.empty())
|
||||
{
|
||||
GraphCanvas::NodeRequestBus::Event(createdPair.m_graphCanvasId, &GraphCanvas::NodeRequests::RemoveSlot, *extenderSlotIds.begin());
|
||||
}
|
||||
|
||||
GraphCanvas::NodeRequestBus::EventResult(executionSlotIds, createdPair.m_graphCanvasId, &GraphCanvas::NodeRequests::FindVisibleSlotIdsByType, typeToRemove, GraphCanvas::SlotTypes::ExecutionSlot);
|
||||
if (!executionSlotIds.empty())
|
||||
{
|
||||
GraphCanvas::NodeRequestBus::Event(createdPair.m_graphCanvasId, &GraphCanvas::NodeRequests::RemoveSlot, *executionSlotIds.begin());
|
||||
}
|
||||
}
|
||||
|
||||
return createdPair;
|
||||
@@ -111,7 +102,7 @@ namespace ScriptCanvasEditor::Nodes
|
||||
return CreateAndGetNode(classId, scriptCanvasId, styleConfiguration).second;
|
||||
}
|
||||
|
||||
AZStd::pair<ScriptCanvas::Node*, NodeIdPair> CreateAndGetNode(const AZ::Uuid& classId, const ScriptCanvas::ScriptCanvasId& scriptCanvasId, const StyleConfiguration& styleConfiguration)
|
||||
AZStd::pair<ScriptCanvas::Node*, NodeIdPair> CreateAndGetNode(const AZ::Uuid& classId, const ScriptCanvas::ScriptCanvasId& scriptCanvasId, const StyleConfiguration& styleConfiguration, AZStd::function<void(ScriptCanvas::Node*)> onCreateCallback)
|
||||
{
|
||||
AZ_PROFILE_TIMER("ScriptCanvas", __FUNCTION__);
|
||||
NodeIdPair nodeIdPair;
|
||||
@@ -121,6 +112,10 @@ namespace ScriptCanvasEditor::Nodes
|
||||
scriptCanvasEntity->Init();
|
||||
nodeIdPair.m_scriptCanvasId = scriptCanvasEntity->GetId();
|
||||
ScriptCanvas::SystemRequestBus::BroadcastResult(node, &ScriptCanvas::SystemRequests::CreateNodeOnEntity, scriptCanvasEntity->GetId(), scriptCanvasId, classId);
|
||||
if (onCreateCallback)
|
||||
{
|
||||
onCreateCallback(node);
|
||||
}
|
||||
scriptCanvasEntity->SetName(AZStd::string::format("SC-Node(%s)", scriptCanvasEntity->GetName().data()));
|
||||
|
||||
AZ::EntityId graphCanvasGraphId;
|
||||
@@ -242,7 +237,7 @@ namespace ScriptCanvasEditor::Nodes
|
||||
ScriptCanvas::NamespacePath emptyNamespacePath;
|
||||
methodNode->InitializeFree(emptyNamespacePath, methodName);
|
||||
|
||||
AZStd::string_view displayName = methodNode->GetName();
|
||||
AZStd::string displayName = methodNode->GetName();
|
||||
scriptCanvasEntity->SetName(AZStd::string::format("SC-Node(%.*s)", aznumeric_cast<int>(displayName.size()), displayName.data()));
|
||||
|
||||
AZ::EntityId graphCanvasGraphId;
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace ScriptEvents
|
||||
namespace ScriptCanvasEditor::Nodes
|
||||
{
|
||||
// Specific create methods which will also handle displaying the node.
|
||||
AZStd::pair<ScriptCanvas::Node*, NodeIdPair> CreateAndGetNode(const AZ::Uuid& classData, const ScriptCanvas::ScriptCanvasId& scriptCanvasId, const StyleConfiguration& styleConfiguration);
|
||||
AZStd::pair<ScriptCanvas::Node*, NodeIdPair> CreateAndGetNode(const AZ::Uuid& classData, const ScriptCanvas::ScriptCanvasId& scriptCanvasId, const StyleConfiguration& styleConfiguration, AZStd::function<void(ScriptCanvas::Node*)> = nullptr);
|
||||
NodeIdPair CreateNode(const AZ::Uuid& classData, const ScriptCanvas::ScriptCanvasId& scriptCanvasId, const StyleConfiguration& styleConfiguration);
|
||||
NodeIdPair CreateEntityNode(const AZ::EntityId& sourceId, const ScriptCanvas::ScriptCanvasId& scriptCanvasId);
|
||||
NodeIdPair CreateObjectMethodNode(AZStd::string_view className, AZStd::string_view methodName, const ScriptCanvas::ScriptCanvasId& scriptCanvasId);
|
||||
|
||||
@@ -330,8 +330,7 @@ namespace ScriptCanvasEditor::Nodes
|
||||
contextGroup = TranslationContextGroup::ClassMethod;
|
||||
break;
|
||||
default:
|
||||
// Unsupported?
|
||||
AZ_Warning("NodeUtils", false, "Invalid node type?");
|
||||
AZ_Assert(false, "Invalid node type");
|
||||
}
|
||||
|
||||
graphCanvasEntity->Init();
|
||||
@@ -360,7 +359,6 @@ namespace ScriptCanvasEditor::Nodes
|
||||
GraphCanvas::TranslationKeyedString tooltipKeyedString(AZStd::string(), translationContext);
|
||||
tooltipKeyedString.m_key = TranslationHelper::GetKey(contextGroup, className, methodName, TranslationItemType::Node, TranslationKeyId::Tooltip);
|
||||
|
||||
int offset = methodNode->HasBusID() ? 1 : 0;
|
||||
int paramIndex = 0;
|
||||
int outputIndex = 0;
|
||||
|
||||
@@ -411,6 +409,25 @@ namespace ScriptCanvasEditor::Nodes
|
||||
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeTitleRequests::SetTranslationKeyedSubTitle, classKeyedString);
|
||||
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeTitleRequests::SetPaletteOverride, "MethodNodeTitlePalette");
|
||||
|
||||
// Override the title if it has the Setter or Getter suffixes
|
||||
AZStd::string title;
|
||||
GraphCanvas::NodeTitleRequestBus::EventResult(title, graphCanvasNodeId, &GraphCanvas::NodeTitleRequests::GetTitle);
|
||||
if (!title.empty())
|
||||
{
|
||||
if (title.ends_with("::Getter"))
|
||||
{
|
||||
AZ::StringFunc::Replace(title, "::Getter", "");
|
||||
}
|
||||
|
||||
if (displayName.ends_with("::Setter"))
|
||||
{
|
||||
AZ::StringFunc::Replace(title, "::Setter", "");
|
||||
}
|
||||
|
||||
GraphCanvas::NodeTitleRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeTitleRequests::SetTitle, title);
|
||||
|
||||
}
|
||||
|
||||
return graphCanvasNodeId;
|
||||
}
|
||||
|
||||
@@ -789,15 +806,6 @@ namespace ScriptCanvasEditor::Nodes
|
||||
return graphCanvasNodeId;
|
||||
}
|
||||
|
||||
const ScriptEvents::ScriptEvent& definition = senderNode->GetScriptEvent();
|
||||
|
||||
const AZStd::string& className = definition.GetName();
|
||||
const AZStd::string& methodName = senderNode->GetEventName();
|
||||
|
||||
int offset = senderNode->HasBusID() ? 1 : 0;
|
||||
int paramIndex = 0;
|
||||
int outputIndex = 0;
|
||||
|
||||
auto busId = senderNode->GetBusSlotId();
|
||||
for (const auto& slot : senderNode->GetSlots())
|
||||
{
|
||||
@@ -895,13 +903,13 @@ namespace ScriptCanvasEditor::Nodes
|
||||
return graphCanvasNodeId;
|
||||
}
|
||||
|
||||
AZ::EntityId DisplayFunctionDefinitionNode(AZ::EntityId graphCanvasGraphId, const ScriptCanvas::Nodes::Core::FunctionDefinitionNode* nodeling)
|
||||
AZ::EntityId DisplayFunctionDefinitionNode(AZ::EntityId graphCanvasGraphId, const ScriptCanvas::Nodes::Core::FunctionDefinitionNode* functionDefinitionNode)
|
||||
{
|
||||
NodeConfiguration nodeConfiguration;
|
||||
|
||||
nodeConfiguration.PopulateComponentDescriptors<IconComponent, FunctionDefinitionNodeDescriptorComponent>();
|
||||
|
||||
if (nodeling->RequiresDynamicSlotOrdering())
|
||||
if (functionDefinitionNode->RequiresDynamicSlotOrdering())
|
||||
{
|
||||
nodeConfiguration.PopulateComponentDescriptors<DynamicOrderingDynamicSlotComponent>();
|
||||
}
|
||||
@@ -912,15 +920,14 @@ namespace ScriptCanvasEditor::Nodes
|
||||
|
||||
nodeConfiguration.m_nodeSubStyle = ".nodeling";
|
||||
nodeConfiguration.m_titlePalette = "NodelingTitlePalette";
|
||||
nodeConfiguration.m_scriptCanvasId = nodeling->GetEntityId();
|
||||
nodeConfiguration.m_scriptCanvasId = functionDefinitionNode->GetEntityId();
|
||||
|
||||
AZ::SerializeContext* serializeContext = nullptr;
|
||||
AZ::ComponentApplicationBus::BroadcastResult(serializeContext, &AZ::ComponentApplicationRequests::GetSerializeContext);
|
||||
|
||||
AZ_Assert(serializeContext, "Failed to acquire application serialize context.");
|
||||
const AZ::SerializeContext::ClassData* classData = serializeContext->FindClassData(azrtti_typeid(nodeling));
|
||||
|
||||
if (classData)
|
||||
if (const AZ::SerializeContext::ClassData* classData = serializeContext->FindClassData(azrtti_typeid(functionDefinitionNode)))
|
||||
{
|
||||
AZStd::string nodeContext = GetContextName(*classData);
|
||||
nodeConfiguration.m_translationContext = TranslationHelper::GetUserDefinedContext(nodeContext);
|
||||
@@ -942,7 +949,7 @@ namespace ScriptCanvasEditor::Nodes
|
||||
ScriptCanvas::GraphScopedNodeId nodelingId;
|
||||
|
||||
nodelingId.m_identifier = nodeConfiguration.m_scriptCanvasId;
|
||||
nodelingId.m_scriptCanvasId = nodeling->GetOwningScriptCanvasId();
|
||||
nodelingId.m_scriptCanvasId = functionDefinitionNode->GetOwningScriptCanvasId();
|
||||
|
||||
AZStd::string nodelingName;
|
||||
ScriptCanvas::NodelingRequestBus::EventResult(nodelingName, nodelingId, &ScriptCanvas::NodelingRequests::GetDisplayName);
|
||||
@@ -966,7 +973,27 @@ namespace ScriptCanvasEditor::Nodes
|
||||
|
||||
nodeConfiguration.m_subtitleFallback = "";
|
||||
|
||||
return DisplayGeneralScriptCanvasNode(graphCanvasGraphId, nodeling, nodeConfiguration);
|
||||
// Because of how the extender slots are registered, there isn't an easy way to only create one or the other based on
|
||||
// the type of nodeling, so instead they both get created and we need to remove the inapplicable one
|
||||
GraphCanvas::ConnectionType typeToRemove = (functionDefinitionNode->IsExecutionEntry()) ? GraphCanvas::CT_Input : GraphCanvas::CT_Output;
|
||||
|
||||
AZ::EntityId graphCanvasNodeId = DisplayGeneralScriptCanvasNode(graphCanvasGraphId, functionDefinitionNode, nodeConfiguration);
|
||||
|
||||
|
||||
AZStd::vector<GraphCanvas::SlotId> extenderSlotIds, executionSlotIds;
|
||||
GraphCanvas::NodeRequestBus::EventResult(extenderSlotIds, graphCanvasNodeId, &GraphCanvas::NodeRequests::FindVisibleSlotIdsByType, typeToRemove, GraphCanvas::SlotTypes::ExtenderSlot);
|
||||
if (!extenderSlotIds.empty())
|
||||
{
|
||||
GraphCanvas::NodeRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeRequests::RemoveSlot, *extenderSlotIds.begin());
|
||||
}
|
||||
|
||||
GraphCanvas::NodeRequestBus::EventResult(executionSlotIds, graphCanvasNodeId, &GraphCanvas::NodeRequests::FindVisibleSlotIdsByType, typeToRemove, GraphCanvas::SlotTypes::ExecutionSlot);
|
||||
if (!executionSlotIds.empty())
|
||||
{
|
||||
GraphCanvas::NodeRequestBus::Event(graphCanvasNodeId, &GraphCanvas::NodeRequests::RemoveSlot, *executionSlotIds.begin());
|
||||
}
|
||||
|
||||
return graphCanvasNodeId;
|
||||
}
|
||||
|
||||
AZ::EntityId DisplayNodeling(AZ::EntityId graphCanvasGraphId, const ScriptCanvas::Nodes::Core::Internal::Nodeling* nodeling)
|
||||
|
||||
@@ -382,9 +382,9 @@ namespace ScriptCanvasEditor
|
||||
{
|
||||
if (const AZ::BehaviorClass* behaviorClass = AZ::BehaviorContextHelper::GetClass(behaviorContext, ScriptCanvas::Data::ToAZType(scType.first)))
|
||||
{
|
||||
// BehaviorContext classes with the ExcludeFrom attribute with a value of the ExcludeFlags::Preview are not added to the list of
|
||||
// BehaviorContext classes with the ExcludeFrom attribute with a value of the ExcludeFlags::All are not added to the list of
|
||||
// types that can be created in the editor
|
||||
const AZ::u64 exclusionFlags = AZ::Script::Attributes::ExcludeFlags::Preview;
|
||||
const AZ::u64 exclusionFlags = AZ::Script::Attributes::ExcludeFlags::All;
|
||||
auto excludeClassAttributeData = azrtti_cast<const AZ::Edit::AttributeData<AZ::Script::Attributes::ExcludeFlags>*>(AZ::FindAttribute(AZ::Script::Attributes::ExcludeFrom, behaviorClass->m_attributes));
|
||||
if (excludeClassAttributeData && (excludeClassAttributeData->Get(nullptr) & exclusionFlags))
|
||||
{
|
||||
|
||||
@@ -371,7 +371,7 @@ namespace ScriptCanvasEditor
|
||||
|
||||
while (m_ui->typeSelectionFrame->layout()->count() > 0)
|
||||
{
|
||||
QLayoutItem* layoutItem = m_ui->typeSelectionFrame->layout()->takeAt(0);
|
||||
m_ui->typeSelectionFrame->layout()->takeAt(0);
|
||||
}
|
||||
|
||||
for (ContainerTypeLineEdit* lineEdit : m_containerTypeLineEdit)
|
||||
@@ -621,4 +621,4 @@ namespace ScriptCanvasEditor
|
||||
}
|
||||
}
|
||||
|
||||
#include <Editor/View/Dialogs/ContainerWizard/moc_ContainerWizard.cpp>
|
||||
#include <Editor/View/Dialogs/ContainerWizard/moc_ContainerWizard.cpp>
|
||||
|
||||
@@ -89,7 +89,7 @@ namespace
|
||||
|
||||
AZ::Uuid type = dataModel->data(index, CommandListDataModel::CustomRole::Types).value<AZ::Uuid>();
|
||||
|
||||
const AZ::SerializeContext::ClassData* classData = serializeContext->FindClassData(type);
|
||||
[[maybe_unused]] const AZ::SerializeContext::ClassData* classData = serializeContext->FindClassData(type);
|
||||
AZ_Assert(classData, "Failed to find ClassData for ID: %s", type.ToString<AZStd::string>().data());
|
||||
|
||||
ScriptCanvasEditor::Nodes::StyleConfiguration styleConfiguration;
|
||||
|
||||
@@ -131,7 +131,6 @@ namespace ScriptCanvasEditor
|
||||
{
|
||||
ExecutionLogTreeItem* treeItem = nullptr;
|
||||
|
||||
bool signalChanged = false;
|
||||
if (m_updatePolicy == UpdatePolicy::Batched)
|
||||
{
|
||||
if (!m_additionTimer.isActive())
|
||||
|
||||
@@ -254,8 +254,6 @@ namespace ScriptCanvasEditor
|
||||
QAbstractItemModel* model = sourceModel();
|
||||
QModelIndex index = model->index(sourceRow, PivotTreeItem::Column::Name, sourceParent);
|
||||
|
||||
PivotTreeItem* basePivotTreeItem = static_cast<PivotTreeItem*>(index.internalPointer());
|
||||
|
||||
QString test = model->data(index, Qt::DisplayRole).toString();
|
||||
|
||||
bool showRow = test.lastIndexOf(m_filterRegex) >= 0;
|
||||
|
||||
@@ -70,17 +70,6 @@ namespace
|
||||
return false;
|
||||
}
|
||||
|
||||
// Used for changing the node's style to identify as a preview node.
|
||||
bool IsPreviewNode(const AZ::Edit::AttributeData<AZ::Script::Attributes::ExcludeFlags>* excludeAttributeData)
|
||||
{
|
||||
if (excludeAttributeData)
|
||||
{
|
||||
return (static_cast<AZ::u64>(excludeAttributeData->Get(nullptr)) & AZ::Script::Attributes::ExcludeFlags::Preview) != 0; // warning C4800: 'AZ::u64': forcing value to bool 'true' or 'false' (performance warning)
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool HasExcludeFromNodeListAttribute(const AZ::SerializeContext* serializeContext, const AZ::Uuid& typeId)
|
||||
{
|
||||
const AZ::SerializeContext::ClassData* classData = serializeContext->FindClassData(typeId);
|
||||
@@ -200,6 +189,11 @@ namespace
|
||||
return;
|
||||
}
|
||||
|
||||
if (!AZ::Internal::IsInScope(behaviorMethod.m_attributes, AZ::Script::Attributes::ScopeFlags::Common))
|
||||
{
|
||||
return; // skip this method
|
||||
}
|
||||
|
||||
// If the reflected method returns an AZ::Event, reflect it to the SerializeContext
|
||||
if (AZ::MethodReturnsAzEventByReferenceOrPointer(behaviorMethod))
|
||||
{
|
||||
@@ -306,7 +300,6 @@ namespace
|
||||
{
|
||||
ScriptCanvasEditor::CategoryInformation categoryInfo;
|
||||
|
||||
bool isDeprecated = false;
|
||||
AZStd::string categoryPath = classData->m_editData ? classData->m_editData->m_name : classData->m_name;
|
||||
|
||||
if (classData->m_editData)
|
||||
@@ -345,8 +338,6 @@ namespace
|
||||
// Children
|
||||
for (auto& node : ScriptCanvas::Library::LibraryDefinition::GetNodes(classData->m_typeId))
|
||||
{
|
||||
GraphCanvas::NodePaletteTreeItem* nodeParent = nullptr;
|
||||
|
||||
if (HasExcludeFromNodeListAttribute(&serializeContext, node.first))
|
||||
{
|
||||
continue;
|
||||
@@ -391,7 +382,6 @@ namespace
|
||||
void PopulateVariablePalette()
|
||||
{
|
||||
auto dataRegistry = ScriptCanvas::GetDataRegistry();
|
||||
const auto& typeIdTraitMap = dataRegistry->m_typeIdTraitMap;
|
||||
|
||||
for (auto& type : dataRegistry->m_creatableTypes)
|
||||
{
|
||||
@@ -454,14 +444,23 @@ namespace
|
||||
continue;
|
||||
}
|
||||
|
||||
if (behaviorProperty->m_getter)
|
||||
if (behaviorProperty->m_getter && !behaviorProperty->m_setter)
|
||||
{
|
||||
RegisterGlobalMethod(nodePaletteModel, behaviorContext, *behaviorProperty->m_getter);
|
||||
nodePaletteModel.RegisterGlobalConstant(behaviorContext, *behaviorProperty->m_getter);
|
||||
}
|
||||
if (behaviorProperty->m_setter)
|
||||
else
|
||||
{
|
||||
RegisterGlobalMethod(nodePaletteModel, behaviorContext, *behaviorProperty->m_setter);
|
||||
if (behaviorProperty->m_getter)
|
||||
{
|
||||
RegisterGlobalMethod(nodePaletteModel, behaviorContext, *behaviorProperty->m_getter);
|
||||
}
|
||||
|
||||
if (behaviorProperty->m_setter)
|
||||
{
|
||||
RegisterGlobalMethod(nodePaletteModel, behaviorContext, *behaviorProperty->m_setter);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -956,10 +955,6 @@ namespace ScriptCanvasEditor
|
||||
|
||||
customNodeInformation->m_displayName = name;
|
||||
|
||||
bool isToolTipSet(false);
|
||||
|
||||
bool isMissingEntry(false);
|
||||
bool isMissingTooltip(false);
|
||||
bool isDeprecated(false);
|
||||
|
||||
if (classData && classData->m_editData && classData->m_editData->m_name)
|
||||
@@ -1105,6 +1100,48 @@ namespace ScriptCanvasEditor
|
||||
}
|
||||
}
|
||||
|
||||
void NodePaletteModel::RegisterGlobalConstant(const AZ::BehaviorContext& behaviorContext, const AZ::BehaviorMethod& behaviorMethod)
|
||||
{
|
||||
// Construct Node Identifier using the BehaviorMethod name and the ScriptCanvas Method typeid
|
||||
ScriptCanvas::NodeTypeIdentifier nodeIdentifier =
|
||||
ScriptCanvas::NodeUtils::ConstructGlobalMethodNodeIdentifier(behaviorMethod.m_name);
|
||||
|
||||
// Register the methodModelInformation if not already registered
|
||||
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_titlePaletteOverride = "MethodNodeTitlePalette";
|
||||
|
||||
methodModelInformation->m_displayName = TranslationHelper::GetGlobalMethodKeyTranslation(methodModelInformation->m_methodName,
|
||||
TranslationItemType::Node, TranslationKeyId::Name);
|
||||
methodModelInformation->m_toolTip = TranslationHelper::GetGlobalMethodKeyTranslation(methodModelInformation->m_methodName,
|
||||
TranslationItemType::Node, TranslationKeyId::Tooltip);
|
||||
methodModelInformation->m_categoryPath = TranslationHelper::GetGlobalMethodKeyTranslation(methodModelInformation->m_methodName,
|
||||
TranslationItemType::Node, TranslationKeyId::Category);
|
||||
|
||||
if (methodModelInformation->m_displayName.empty())
|
||||
{
|
||||
methodModelInformation->m_displayName = methodModelInformation->m_methodName;
|
||||
}
|
||||
|
||||
if (methodModelInformation->m_categoryPath.empty())
|
||||
{
|
||||
methodModelInformation->m_categoryPath = GetCategoryPath(behaviorMethod.m_attributes, behaviorContext);
|
||||
// Default to making the Category for Global Methods to be informative that the method
|
||||
// is registered with the Behavior Context
|
||||
if (methodModelInformation->m_categoryPath.empty())
|
||||
{
|
||||
methodModelInformation->m_categoryPath = "Constants";
|
||||
}
|
||||
}
|
||||
|
||||
m_registeredNodes.emplace(nodeIdentifier, methodModelInformation.release());
|
||||
}
|
||||
}
|
||||
|
||||
void NodePaletteModel::RegisterMethodNode(const AZ::BehaviorContext& behaviorContext, const AZ::BehaviorMethod& behaviorMethod)
|
||||
{
|
||||
// Construct Node Identifier using the BehaviorMethod name and the ScriptCanvas Method typeid
|
||||
|
||||
@@ -85,6 +85,7 @@ namespace ScriptCanvasEditor
|
||||
void RegisterCustomNode(AZStd::string_view categoryPath, const AZ::Uuid& uuid, AZStd::string_view name, const AZ::SerializeContext::ClassData* classData);
|
||||
void RegisterClassNode(const AZStd::string& categoryPath, const AZStd::string& methodClass, const AZStd::string& methodName, const AZ::BehaviorMethod* behaviorMethod, const AZ::BehaviorContext* behaviorContext, bool isOverload);
|
||||
void RegisterMethodNode(const AZ::BehaviorContext& behaviorContext, const AZ::BehaviorMethod& behaviorMethod);
|
||||
void RegisterGlobalConstant(const AZ::BehaviorContext& behaviorContext, const AZ::BehaviorMethod& behaviorMethod);
|
||||
|
||||
void RegisterEBusHandlerNodeModelInformation(AZStd::string_view categoryPath, AZStd::string_view busName, AZStd::string_view eventName, const ScriptCanvas::EBusBusId& busId, const AZ::BehaviorEBusHandler::BusForwarderEvent& forwardEvent);
|
||||
void RegisterEBusSenderNodeModelInformation(AZStd::string_view categoryPath, AZStd::string_view busName, AZStd::string_view eventName, const ScriptCanvas::EBusBusId& busId, const ScriptCanvas::EBusEventId& eventId, const AZ::BehaviorEBusEventSender& eventSender, bool isOverload);
|
||||
|
||||
+3
-1
@@ -158,8 +158,10 @@ namespace ScriptCanvasEditor
|
||||
}
|
||||
|
||||
const ScriptEvents::ScriptEvent& definition = data->m_definition;
|
||||
|
||||
|
||||
#if defined(AZ_ENABLE_TRACING)
|
||||
bool recategorize = previousDefinition ? definition.GetCategory().compare(previousDefinition->GetCategory()) != 0 : false;
|
||||
#endif
|
||||
AZ_Warning("ScriptCanvas", !recategorize, "Unable to recategorize ScriptEvents events while open. Please close and re-open the Script Canvas Editor to see the new categorization");
|
||||
|
||||
if (definition.GetName().empty())
|
||||
|
||||
@@ -746,7 +746,9 @@ namespace ScriptCanvasEditor
|
||||
{
|
||||
break;
|
||||
}
|
||||
} while (componentNode = componentNode->GetParent());
|
||||
componentNode = componentNode->GetParent();
|
||||
}
|
||||
while (componentNode);
|
||||
|
||||
if (!componentNode)
|
||||
{
|
||||
|
||||
@@ -83,8 +83,6 @@ namespace ScriptCanvasEditor
|
||||
ScriptCanvasRootPaletteTreeItem* root = aznew ScriptCanvasRootPaletteTreeItem(nodePaletteModel, assetModel);
|
||||
|
||||
{
|
||||
GraphCanvas::NodePaletteTreeItem* utilitiesRoot = root->GetCategoryNode("Utilities");
|
||||
|
||||
GraphCanvas::NodePaletteTreeItem* variablesRoot = root->CreateChildNode<LocalVariablesListNodePaletteTreeItem>("Variables");
|
||||
root->RegisterCategoryNode(variablesRoot, "Variables");
|
||||
|
||||
@@ -605,7 +603,6 @@ namespace ScriptCanvasEditor
|
||||
AZStd::vector<const ScriptCanvas::Grammar::In*> onNodeIns;
|
||||
AZStd::vector<const ScriptCanvas::Grammar::In*> pureIns;
|
||||
|
||||
auto onNodeParent = parent;
|
||||
auto pureParent = functionCategory;
|
||||
|
||||
for (auto& in : ins)
|
||||
@@ -769,8 +766,6 @@ namespace ScriptCanvasEditor
|
||||
|
||||
AZStd::unordered_set< ScriptCanvas::VariableId > variableSet;
|
||||
|
||||
GraphCanvas::NodePaletteWidget* paletteWidget = GetNodePaletteWidget();
|
||||
|
||||
QModelIndexList indexList = GetTreeView()->selectionModel()->selectedRows();
|
||||
|
||||
if (indexList.size() == 1)
|
||||
|
||||
@@ -626,7 +626,6 @@ namespace ScriptCanvasEditor
|
||||
|
||||
QMimeData* GraphVariablesModel::mimeData(const QModelIndexList &indexes) const
|
||||
{
|
||||
QMimeData* mimeData = nullptr;
|
||||
GraphCanvas::GraphCanvasMimeContainer container;
|
||||
|
||||
bool isSet = ((QApplication::keyboardModifiers() & Qt::Modifier::ALT) != 0);
|
||||
|
||||
@@ -197,6 +197,7 @@ namespace ScriptCanvasEditor
|
||||
const AZStd::unordered_map<ScriptCanvas::VariableId, ScriptCanvas::GraphVariable>* properties = nullptr;
|
||||
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(properties, m_scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::GetVariables);
|
||||
|
||||
int numInUse = 0;
|
||||
if (properties)
|
||||
{
|
||||
for (const auto& variablePair : (*properties))
|
||||
@@ -205,7 +206,7 @@ namespace ScriptCanvasEditor
|
||||
if (testName.compare(variablePair.second.GetVariableName()) == 0)
|
||||
{
|
||||
nameInUse = true;
|
||||
break;
|
||||
++numInUse;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -214,7 +215,7 @@ namespace ScriptCanvasEditor
|
||||
|
||||
if (nameInUse)
|
||||
{
|
||||
m_slotName.append(" (duplicate)");
|
||||
m_slotName.append(AZStd::string::format(" (%d)", numInUse));
|
||||
ui->slotName->setText(m_slotName.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1174,6 +1174,8 @@ namespace ScriptCanvasEditor
|
||||
}
|
||||
else
|
||||
{
|
||||
delete m_slotTypeSelector;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -3973,7 +3975,6 @@ namespace ScriptCanvasEditor
|
||||
|
||||
if (mimeEvent)
|
||||
{
|
||||
bool isValid = false;
|
||||
NodeIdPair finalNode = ProcessCreateNodeMimeEvent(mimeEvent, graphCanvasGraphId, AZ::Vector2(aznumeric_cast<float>(scenePoint.x()), aznumeric_cast<float>(scenePoint.y())));
|
||||
|
||||
if (finalNode.m_graphCanvasId.IsValid())
|
||||
@@ -4225,7 +4226,6 @@ namespace ScriptCanvasEditor
|
||||
|
||||
if (mimeEvent)
|
||||
{
|
||||
bool isValid = false;
|
||||
NodeIdPair finalNode = ProcessCreateNodeMimeEvent(mimeEvent, graphCanvasGraphId, AZ::Vector2(aznumeric_cast<float>(scenePoint.x()), aznumeric_cast<float>(scenePoint.y())));
|
||||
|
||||
GraphCanvas::Endpoint sourceEndpoint;
|
||||
|
||||
@@ -278,7 +278,6 @@ namespace ScriptCanvasEditor
|
||||
|
||||
if (GraphCanvas::GraphUtils::IsSlot(m_targetId))
|
||||
{
|
||||
bool isDataSlot = false;
|
||||
GraphCanvas::SlotType slotType = GraphCanvas::SlotTypes::Invalid;
|
||||
GraphCanvas::SlotRequestBus::EventResult(slotType, m_targetId, &GraphCanvas::SlotRequests::GetSlotType);
|
||||
|
||||
@@ -786,7 +785,6 @@ namespace ScriptCanvasEditor
|
||||
if (GraphCanvas::GraphUtils::IsSlot(targetId))
|
||||
{
|
||||
// Extract the GraphCanvas Slot Type and complete endpoint from using the targetId
|
||||
bool isDataSlot{};
|
||||
GraphCanvas::SlotType slotType = GraphCanvas::SlotTypes::Invalid;
|
||||
GraphCanvas::Endpoint endpoint;
|
||||
auto GetGraphCanvasEndpoint = [&slotType, &endpoint](GraphCanvas::SlotRequests* slotRequests)
|
||||
|
||||
@@ -668,8 +668,6 @@ namespace ScriptCanvasEditor
|
||||
AZ_Assert(graphComponent, "The Script Canvas entity must have a Graph component");
|
||||
|
||||
|
||||
bool isLatest = graphComponent->GetVersion().IsLatest();
|
||||
|
||||
bool onlyShowOutdatedGraphs = m_ui->onlyShowOutdated->isChecked();
|
||||
|
||||
if (onlyShowOutdatedGraphs && graphComponent->GetVersion().IsLatest())
|
||||
@@ -837,7 +835,6 @@ namespace ScriptCanvasEditor
|
||||
const QTextCursor oldCursor = m_ui->textEdit->textCursor();
|
||||
QScrollBar* scrollBar = m_ui->textEdit->verticalScrollBar();
|
||||
const int oldScrollValue = scrollBar->value();
|
||||
bool scrolledOffBottom = oldScrollValue != scrollBar->maximum();
|
||||
|
||||
m_ui->textEdit->moveCursor(QTextCursor::End);
|
||||
QTextCursor textCursor = m_ui->textEdit->textCursor();
|
||||
|
||||
+2
-1
@@ -75,7 +75,8 @@ public: \
|
||||
void ConfigureSlots() override; \
|
||||
bool RequiresDynamicSlotOrdering() const override; \
|
||||
bool IsDeprecated() const override; \
|
||||
{% if deprecationUuid is defined %}NodeConfiguration GetReplacementNodeConfiguration() const override; \ {% endif %}
|
||||
{% if deprecationUuid is defined %} NodeConfiguration GetReplacementNodeConfiguration() const override; \
|
||||
{% endif %}
|
||||
using Node::FindDatum; \
|
||||
{% if Class.attrib['GraphEntryPoint'] is defined %} bool IsEntryPoint() const override { return {%if Class.attrib['GraphEntryPoint'] == True %}true{%else%}false{%endif%}; } \
|
||||
{% endif %}
|
||||
|
||||
+2
-2
@@ -176,10 +176,10 @@ bool {{ Class.attrib['QualifiedName'] }}::IsDeprecated() const
|
||||
|
||||
{% set deprecationUuid = Class.attrib['DeprecationUUID'] %}
|
||||
{% if deprecationUuid is defined %}
|
||||
NodeConfiguration {{ Class.attrib['QualifiedName'] }}::GetReplacementNodeConfiguration() const
|
||||
ScriptCanvas::NodeConfiguration {{ Class.attrib['QualifiedName'] }}::GetReplacementNodeConfiguration() const
|
||||
{
|
||||
ScriptCanvas::NodeConfiguration nodeConfig{};
|
||||
nodeConfig.m_type = AZ::Uuid({{ deprecationUuid }});
|
||||
nodeConfig.m_type = AZ::Uuid("{{ deprecationUuid }}");
|
||||
{% if Class.attrib['ReplacementMethodName'] is defined %}
|
||||
nodeConfig.m_methodName = "{{Class.attrib['ReplacementMethodName']}}";
|
||||
{% endif %}
|
||||
|
||||
@@ -1274,7 +1274,6 @@ namespace ScriptCanvas
|
||||
if (classIter != behaviorContext->m_typeToClassMap.end())
|
||||
{
|
||||
BehaviorContextObjectPtr sourceObjectPtr = (*AZStd::any_cast<BehaviorContextObjectPtr>(&source.m_storage));
|
||||
auto anyCastResult = AZStd::any_cast<BehaviorContextObjectPtr>(&m_storage);
|
||||
BehaviorContextObjectPtr newObjectPtr = sourceObjectPtr->CloneObject((*classIter->second));
|
||||
m_storage = AZStd::move(newObjectPtr);
|
||||
BehaviorContextObjectPtr newSourceObjectPtr = (*AZStd::any_cast<BehaviorContextObjectPtr>(&m_storage));
|
||||
|
||||
@@ -119,7 +119,6 @@ namespace ScriptCanvas
|
||||
void AddMethodOutputSlot(const MethodOutputConfig& outputConfig)
|
||||
{
|
||||
const AZ::BehaviorMethod& method = outputConfig.config.m_method;
|
||||
const AZ::BehaviorClass* bcClass = outputConfig.config.m_class;
|
||||
|
||||
// check for checked operation
|
||||
if (auto checkOpAttribute = AZ::FindAttribute(AZ::ScriptCanvasAttributes::CheckedOperation, method.m_attributes))
|
||||
|
||||
@@ -1893,7 +1893,6 @@ namespace ScriptCanvas
|
||||
|
||||
if (slotIter != m_slotIdIteratorCache.end())
|
||||
{
|
||||
Slot* slot = &(*slotIter->second.m_slotIterator);
|
||||
|
||||
if (slotIter->second.HasDatum())
|
||||
{
|
||||
@@ -2562,13 +2561,14 @@ namespace ScriptCanvas
|
||||
|
||||
for (Slot& slot : m_slots)
|
||||
{
|
||||
if (slot.IsDynamicSlot())
|
||||
if (!slot.IsUserAdded() && slot.IsDynamicSlot())
|
||||
{
|
||||
AZ::Crc32 group = slot.GetDynamicGroup();
|
||||
|
||||
if (group == AZ::Crc32())
|
||||
{
|
||||
auto connectedDisplayType = FindConnectedConcreteDisplayType(slot, exploredGroupCache);
|
||||
|
||||
if (!connectedDisplayType.IsValid())
|
||||
{
|
||||
slot.ClearDisplayType();
|
||||
|
||||
@@ -975,7 +975,7 @@ protected:
|
||||
virtual void OnInputSignal(const SlotId& /*slot*/) {}
|
||||
|
||||
//! Signal sent once the OwningScriptCanvasId is set.
|
||||
virtual void OnGraphSet() {};
|
||||
virtual void OnGraphSet() {}
|
||||
|
||||
//! Signal sent when a Dynamic Group Display type is changed
|
||||
void SignalSlotDisplayTypeChanged(const SlotId& slotId, const Data::Type& dataType);
|
||||
|
||||
@@ -368,6 +368,7 @@ namespace ScriptCanvas
|
||||
|
||||
void NodeableNodeOverloaded::CheckHasSingleOuts()
|
||||
{
|
||||
#if defined(AZ_ENABLE_TRACING)
|
||||
auto& slotExecutionMap = *GetSlotExecutionMap();
|
||||
|
||||
auto& ins = slotExecutionMap.GetIns();
|
||||
@@ -378,6 +379,7 @@ namespace ScriptCanvas
|
||||
// TODO: Append debugging information
|
||||
AZ_Error("ScriptCanvas", in.outs.size() <= 1, "Unable to resolve Overloaded Nodeable with multiple outs for a single method.");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void NodeableNodeOverloaded::UpdateSlotDisplay()
|
||||
@@ -449,7 +451,6 @@ namespace ScriptCanvas
|
||||
NodeableMethodOverloadContractInterface* contractInterface = aznew NodeableMethodOverloadContractInterface((*this), methodIndex);
|
||||
m_methodOverloadContractInterface.emplace_back(contractInterface);
|
||||
|
||||
const OverloadConfiguration& baseConfiguration = (*m_methodConfigurations.begin());
|
||||
|
||||
const auto& currentIn = executionIns[methodIndex];
|
||||
|
||||
@@ -867,9 +868,6 @@ namespace ScriptCanvas
|
||||
{
|
||||
if (outputDataIter->second.contains(dataType))
|
||||
{
|
||||
const OverloadConfiguration& overloadConfiguration = m_methodConfigurations[methodIndex];
|
||||
size_t startIndex = NodeableNodeOverloadedCpp::AdjustForHiddenNodeableThisPointer(overloadConfiguration, 0);
|
||||
|
||||
DataIndexMapping inputMapping;
|
||||
DataIndexMapping outputMapping;
|
||||
|
||||
|
||||
@@ -840,7 +840,6 @@ namespace ScriptCanvas
|
||||
}
|
||||
|
||||
AZ::Outcome<void, AZStd::string> failureReason;
|
||||
bool contractsAllowType = true;
|
||||
|
||||
for (const auto& contract : m_contracts)
|
||||
{
|
||||
|
||||
@@ -170,7 +170,8 @@ namespace ScriptCanvas
|
||||
parameters.push_back(bvp);
|
||||
}
|
||||
|
||||
for (const auto& entityId : runtimeData.m_input.m_entityIds)
|
||||
const size_t entityIdSize = runtimeData.m_input.m_entityIds.size();
|
||||
for (size_t i = 0; i < entityIdSize; ++i)
|
||||
{
|
||||
AZ::BehaviorValueParameter bvp;
|
||||
bvp.m_typeId = azrtti_typeid<Data::EntityIDType>();
|
||||
|
||||
+1
-1
@@ -412,7 +412,7 @@ namespace ScriptCanvas
|
||||
AZ_Assert(lua_isuserdata(lua, -2) && !lua_islightuserdata(lua, -2), "Error in compiled lua file, 1st argument to OverrideNodeableMetatable is not userdata (Nodeable)");
|
||||
AZ_Assert(lua_istable(lua, -1), "Error in compiled lua file, 2nd argument to OverrideNodeableMetatable is not a Lua table");
|
||||
|
||||
auto userData = reinterpret_cast<AZ::LuaUserData*>(lua_touserdata(lua, -2));
|
||||
[[maybe_unused]] auto userData = reinterpret_cast<AZ::LuaUserData*>(lua_touserdata(lua, -2));
|
||||
AZ_Assert(userData && userData->magicData == AZ_CRC_CE("AZLuaUserData"), "this isn't user data");
|
||||
// Lua: LuaUserData::nodeable, class_mt
|
||||
lua_newtable(lua);
|
||||
|
||||
+1
-1
@@ -189,7 +189,7 @@ namespace ScriptCanvas
|
||||
void OutInterpretedUserSubgraph::operator()(AZ::BehaviorValueParameter* /*resultBVP*/, AZ::BehaviorValueParameter* /*argsBVPs*/, int argsCount)
|
||||
{
|
||||
// Lua: executionState, outKey, args...
|
||||
auto behaviorContext = AZ::ScriptContext::FromNativeContext(m_lua)->GetBoundContext();
|
||||
/*auto behaviorContext =*/ AZ::ScriptContext::FromNativeContext(m_lua)->GetBoundContext();
|
||||
lua_rawgeti(m_lua, LUA_REGISTRYINDEX, m_lambdaRegistryIndex);
|
||||
// Lua: executionState, outKey, args..., lambda
|
||||
lua_remove(m_lua, 1);
|
||||
|
||||
@@ -1497,7 +1497,6 @@ namespace ScriptCanvas
|
||||
|
||||
while (outputSource)
|
||||
{
|
||||
AZ::s32 firstFoundIndex = 0;
|
||||
// check every connected SC Node
|
||||
for (const auto& scNodeAndOutputSlot : scriptCanvasNodesConnectedToInput)
|
||||
{
|
||||
@@ -2612,7 +2611,6 @@ namespace ScriptCanvas
|
||||
|
||||
void AbstractCodeModel::ParseConstructionInputVariables()
|
||||
{
|
||||
AZ::SerializeContext* serializeContext = AZ::EntityUtils::GetApplicationSerializeContext();
|
||||
AZStd::vector<AZStd::pair<AZ::EntityId, Nodeable*>> nodeablesById;
|
||||
AZStd::vector<VariableId> inputVariableIds;
|
||||
AZStd::unordered_map<VariableId, Grammar::VariableConstPtr> inputVariablesById;
|
||||
@@ -4636,7 +4634,6 @@ namespace ScriptCanvas
|
||||
NodelingInParserIterationListener listener;
|
||||
TraverseTree(root, listener);
|
||||
auto& leavesWithoutNodelings = listener.GetLeavesWithoutNodelings();
|
||||
auto& outCalls = listener.GetOutCalls();
|
||||
AZStd::unordered_set<const ScriptCanvas::Nodes::Core::FunctionDefinitionNode*> uniqueNodelingsOut = listener.GetNodelingsOut();
|
||||
// determine the the execution topology can be reduced to single function call with a single return point to graph execution
|
||||
const UserInParseTopologyResult result = ParseUserInTolopology(uniqueNodelingsOut.size(), leavesWithoutNodelings.size());
|
||||
|
||||
@@ -76,7 +76,6 @@ namespace ScriptCanvas::Nodes::Core
|
||||
}
|
||||
|
||||
// Store the name of the event in the AzEventEntry structure
|
||||
Slot* onEventSlot = AzEventHandlerProperty::GetOnEventSlot(this);
|
||||
m_azEventEntry.m_eventName = AZStd::move(behaviorAzEventDesc.m_eventName);
|
||||
|
||||
// Add a DataSlot which accepts the aliased AZ::Event<Params...> type by reference;
|
||||
|
||||
-2
@@ -24,8 +24,6 @@ namespace ScriptCanvas
|
||||
{
|
||||
bool IsFunctionCallNodeOutOfDate(const IsFunctionCallOutOfDateConfig& config)
|
||||
{
|
||||
bool changedToNodeable = false;
|
||||
|
||||
if (Grammar::IsFunctionSourceIdNodeable(config.sourceId))
|
||||
{
|
||||
const bool latestIsNodeable = config.latestInterface.IsUserNodeable();
|
||||
|
||||
@@ -643,7 +643,6 @@ namespace ScriptCanvas
|
||||
ScriptCanvas::Data::Type dataType = (*inputDataTypeIter->second.begin());
|
||||
SlotId slotId = m_orderedInputSlotIds[inputIndex];
|
||||
|
||||
Slot* slot = GetSlot(slotId);
|
||||
|
||||
auto isValidType = SlotAcceptsType(slotId, dataType);
|
||||
|
||||
@@ -670,7 +669,6 @@ namespace ScriptCanvas
|
||||
ScriptCanvas::Data::Type dataType = (*outputDataTypeIter->second.begin());
|
||||
SlotId slotId = m_outputSlotIds[outputIndex];
|
||||
|
||||
Slot* slot = GetSlot(slotId);
|
||||
|
||||
auto isValidType = SlotAcceptsType(slotId, dataType);
|
||||
|
||||
|
||||
+1
@@ -8,6 +8,7 @@
|
||||
Base="ScriptCanvas::Nodes::Internal::BaseTimerNode"
|
||||
Icon="Editor/Icons/ScriptCanvas/Placeholder.png"
|
||||
Deprecated="This node is deprecated"
|
||||
DeprecationUUID="{AB587027-2270-4CA6-242F-6069C6D9BBB6}"
|
||||
Category="Utilities"
|
||||
Version="3"
|
||||
VersionConverter="ScriptCanvas::VersionConverters::RepeaterVersionConverter"
|
||||
|
||||
@@ -366,7 +366,7 @@ namespace ScriptCanvas
|
||||
}
|
||||
|
||||
ScriptEvents::Method scriptEventMethod;
|
||||
bool methodFound = definition.FindMethod(method->m_name, scriptEventMethod);
|
||||
definition.FindMethod(method->m_name, scriptEventMethod);
|
||||
|
||||
size_t argIndex = 0;
|
||||
|
||||
@@ -471,7 +471,6 @@ namespace ScriptCanvas
|
||||
if (asset && asset.IsReady())
|
||||
{
|
||||
const ScriptEvents::ScriptEvent& definition = asset.Get()->m_definition;
|
||||
const AZStd::string& name = definition.GetName();
|
||||
|
||||
AZ::BehaviorMethod* method{};
|
||||
if (m_version != definition.GetVersion())
|
||||
|
||||
@@ -74,8 +74,7 @@ namespace ScriptCanvas
|
||||
{
|
||||
m_variableView.AssignToDatum((*sourceDatum));
|
||||
|
||||
const Datum* variableDatum = m_variableView.GetDatum();
|
||||
SC_EXECUTION_TRACE_VARIABLE_CHANGE((m_variableId), (CreateVariableChange((*variableDatum), m_variableId)));
|
||||
SC_EXECUTION_TRACE_VARIABLE_CHANGE((m_variableId), (CreateVariableChange((*m_variableView.GetDatum()), m_variableId)));
|
||||
}
|
||||
|
||||
Slot* resultSlot = GetSlot(m_variableDataOutSlotId);
|
||||
|
||||
+1
@@ -8,6 +8,7 @@
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="Entity/Transform"
|
||||
Version="4"
|
||||
Deprecated="true"
|
||||
EditAttributes="AZ::Edit::Attributes::CategoryStyle@.method;ScriptCanvas::Attributes::Node::TitlePaletteOverride@MethodNodeTitlePalette"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="Rotates the given entity by the specified amount.">
|
||||
|
||||
-1
@@ -224,7 +224,6 @@ namespace ScriptCanvas
|
||||
{
|
||||
for (auto pairIter = m_weightedPairings.begin(); pairIter != m_weightedPairings.end(); ++pairIter)
|
||||
{
|
||||
const WeightedPairing& weightedPairing = (*pairIter);
|
||||
|
||||
if (pairIter->m_executionSlotId == slotId
|
||||
|| pairIter->m_weightSlotId == slotId)
|
||||
|
||||
+3
@@ -9,6 +9,9 @@
|
||||
Category="Containers"
|
||||
Version="0"
|
||||
GeneratePropertyFriend="True"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Get Element"
|
||||
Description="Returns the element at the specified Index or Key">
|
||||
<Out Name="Key Not Found" Description="Triggered if the specified key was not found"/>
|
||||
</Class>
|
||||
|
||||
+3
-1
@@ -8,6 +8,8 @@
|
||||
Base="ScriptCanvas::Nodes::Operators::OperatorBase"
|
||||
Category="Containers"
|
||||
Version="0"
|
||||
Description="Retrieves the last element in the container">
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
Description="Get Last Element">
|
||||
</Class>
|
||||
</ScriptCanvas>
|
||||
+5
-2
@@ -10,8 +10,11 @@
|
||||
Version="1"
|
||||
VersionConverter="OperatorClearVersionConverter"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="Eliminates all the elements in the container">
|
||||
<In Name="In" Description=""/>
|
||||
Deprecated="True"
|
||||
Description="Eliminates all the elements in the container"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Clear All Elements">
|
||||
<In Name="In" Description=""/>
|
||||
<Out Name="Out" Description=""/>
|
||||
<DynamicDataSlot Name="Source"
|
||||
Description="The container to be cleared from the node."
|
||||
|
||||
+3
@@ -10,6 +10,9 @@
|
||||
Version="1"
|
||||
VersionConverter="OperatorEmptyVersionConverter"
|
||||
GeneratePropertyFriend="True"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Is Empty"
|
||||
Description="Returns whether the container is empty">
|
||||
<In Name="In" Description=""/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
+3
@@ -8,6 +8,9 @@
|
||||
Base="ScriptCanvas::Nodes::Operators::OperatorBase"
|
||||
Category="Containers"
|
||||
Version="1"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Erase"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="Erase the element at the specified Index or with the specified Key">
|
||||
<Out Name="Element Not Found" Description="Triggered if the specified element was not found"/>
|
||||
|
||||
+3
@@ -8,6 +8,9 @@
|
||||
Base="ScriptCanvas::Nodes::Operators::OperatorBase"
|
||||
Category="Containers"
|
||||
Version="0"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Get First Element"
|
||||
Description="Retrieves the first element in the container">
|
||||
</Class>
|
||||
</ScriptCanvas>
|
||||
+3
@@ -8,6 +8,9 @@
|
||||
Base="ScriptCanvas::Nodes::Operators::OperatorBase"
|
||||
Category="Containers"
|
||||
Version="0"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Insert"
|
||||
Description="Inserts an element into the container at the specified Index or Key">
|
||||
</Class>
|
||||
</ScriptCanvas>
|
||||
+3
@@ -8,6 +8,9 @@
|
||||
Base="ScriptCanvas::Nodes::Operators::OperatorBase"
|
||||
Category="Containers"
|
||||
Version="0"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Add Element at End"
|
||||
Description="Adds the provided element at the end of the container">
|
||||
</Class>
|
||||
</ScriptCanvas>
|
||||
+3
@@ -8,6 +8,9 @@
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="Containers"
|
||||
Version="1"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Get Size"
|
||||
VersionConverter="OperatorSizeVersionConverter"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="Get the number of elements in the specified container">
|
||||
|
||||
-2
@@ -96,7 +96,6 @@ namespace ScriptCanvas
|
||||
const SlotId inSlotId = OperatorSizeProperty::GetInSlotId(this);
|
||||
if (slotId == inSlotId)
|
||||
{
|
||||
bool pushedSize = false;
|
||||
|
||||
SlotId sourceSlotId = OperatorSizeProperty::GetSourceSlotId(this);
|
||||
SlotId sizeSlotId = OperatorSizeProperty::GetSizeSlotId(this);
|
||||
@@ -115,7 +114,6 @@ namespace ScriptCanvas
|
||||
|
||||
// Index
|
||||
Datum sizeResult = sizeOutcome.TakeValue();
|
||||
const size_t* sizePtr = sizeResult.GetAs<size_t>();
|
||||
|
||||
PushOutput(sizeResult, *GetSlot(sizeSlotId));
|
||||
}
|
||||
|
||||
+3
@@ -8,6 +8,9 @@
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="Math"
|
||||
Version="1"
|
||||
Deprecated="True"
|
||||
DrecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Divide by Number (/)"
|
||||
VersionConverter="OperatorDivideByNumberVersionConverter"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="Divides certain types by a given number">
|
||||
|
||||
+3
@@ -8,6 +8,9 @@
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="Math"
|
||||
Version="1"
|
||||
Deprecated="True"
|
||||
DrecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementMethodName="Length"
|
||||
VersionConverter="OperatorLengthConverter"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="Given a vector this returns the magnitude (length) of the vector. For a quaternion, magnitude is the cosine of half the angle of rotation.">
|
||||
|
||||
+4
-2
@@ -2,12 +2,14 @@
|
||||
|
||||
<ScriptCanvas Include="Include/ScriptCanvas/Libraries/Operators/Math/OperatorLerp.h" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<Class Name="LerpBetween"
|
||||
QualifiedName="ScriptCanvas::Nodes::LerpBetween"
|
||||
PreferredClassName="Lerp Between"
|
||||
QualifiedName="ScriptCanvas::Nodes::LerpBetween"
|
||||
PreferredClassName="Lerp Between"
|
||||
Uuid="{58AF538D-021A-4D0C-A3F1-866C2FFF382E}"
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="Math"
|
||||
Version="1"
|
||||
Deprecated="True"
|
||||
DreprecationUUID="{A4CFB2F2-4045-47ED-AE73-ED60C2072EE4}"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="Performs a lerp between the two specified sources using the speed specified or in the amount of time specified, or the minimum of the two">
|
||||
<In Name="In" Description=""/>
|
||||
|
||||
+6
@@ -7,6 +7,12 @@
|
||||
Uuid="{8481E892-DE37-4CCF-86AA-E4770DE90643}"
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="String"
|
||||
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassName="String"
|
||||
ReplacementMethodName="Contains String"
|
||||
|
||||
Version="0"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="Checks if a string contains an instance of a specified string, if true, it returns the index to the first instance matched.">
|
||||
|
||||
+4
@@ -8,6 +8,10 @@
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="String"
|
||||
Version="0"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassName="String"
|
||||
ReplacementMethodName="Replace"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="Allows replacing a substring from a given string.">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
|
||||
+16
@@ -8,6 +8,10 @@
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="String"
|
||||
Version="0"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassName="String"
|
||||
ReplacementMethodName="Starts With"
|
||||
GeneratePropertyFriend="True"
|
||||
Description=".">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
@@ -36,6 +40,10 @@
|
||||
Uuid="{6C1CECA6-C155-4ED5-96BC-1D4F11C7A0FE}"
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="String"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassName="String"
|
||||
ReplacementMethodName="Ends With"
|
||||
Version="0"
|
||||
GeneratePropertyFriend="True"
|
||||
Description=".">
|
||||
@@ -66,6 +74,10 @@
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="String"
|
||||
Version="0"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassName="String"
|
||||
ReplacementMethodName="Split"
|
||||
GeneratePropertyFriend="True"
|
||||
Description=".">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
@@ -94,6 +106,10 @@
|
||||
Base="ScriptCanvas::Node"
|
||||
Category="String"
|
||||
Version="0"
|
||||
Deprecated="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassName="String"
|
||||
ReplacementMethodName="Join"
|
||||
GeneratePropertyFriend="True"
|
||||
Description=".">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
|
||||
+3
@@ -8,6 +8,7 @@
|
||||
Base="ScriptCanvas::Nodes::Internal::BaseTimerNode"
|
||||
GeneratePropertyFriend="True"
|
||||
Deprecated="This node has been deprecated in favor of the nodeable form"
|
||||
DeprecationUUID="{D3629902-02E9-AE59-0424-F366D342B433}"
|
||||
Description="Delays all incoming execution for the specified number of ticks">
|
||||
<In Name="In" Description="When signaled, execution is delayed at this node for the specified amount of times." Contracts="DisallowReentrantExecutionContract"/>
|
||||
<OutLatent Name="Out" Description="Signaled after waiting for the specified amount of times."/>
|
||||
@@ -18,6 +19,7 @@
|
||||
Uuid="{399A2608-77E3-41F9-90FA-58A9B6E0E34D}"
|
||||
Base="ScriptCanvas::Node"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{D3629902-02E9-AE59-0424-F366D342B433}"
|
||||
Deprecated="This node has been deprecated in favor of the nodeable form"
|
||||
Description="Delays all incoming execution for the specified number of ticks">
|
||||
<In Name="In" Description="When signaled, execution is delayed at this node for the specified amount of frames." Contracts="DisallowReentrantExecutionContract"/>
|
||||
@@ -41,6 +43,7 @@
|
||||
Uuid="{FAEADF5A-F7D9-415A-A3E8-F534BD379B9A}"
|
||||
Base="ScriptCanvas::Node"
|
||||
Version="3"
|
||||
DeprecationUUID="{233C84A7-44DE-A948-D65C-46C11F1F7162}"
|
||||
Deprecated="This node has been deprecated in favor of the nodeable form"
|
||||
VersionConverter="ScriptCanvas::VersionConverters::DelayVersionConverter"
|
||||
GeneratePropertyFriend="True"
|
||||
|
||||
+1
@@ -9,6 +9,7 @@
|
||||
Version="2"
|
||||
VersionConverter="ScriptCanvas::VersionConverters::DurationVersionConverter"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{CCF1F41F-39C2-C847-9D9E-0155C8B46E1C}"
|
||||
Deprecated="This node has been deprecated in favor of the nodeable form"
|
||||
Description="Triggers a signal every frame during the specified duration.">
|
||||
<In Name="Start" Description="Starts the countdown"/>
|
||||
|
||||
+1
@@ -8,6 +8,7 @@
|
||||
Base="ScriptCanvas::Nodes::Internal::BaseTimerNode"
|
||||
Category="Timing"
|
||||
Version="0"
|
||||
DeprecationUUID="{E73DB180-A325-763B-A1FE-517B548AF66E}"
|
||||
Deprecated="This node has been deprecated in favor of the nodeable form"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="While active, will signal the output at the given interval.">
|
||||
|
||||
+1
@@ -8,6 +8,7 @@
|
||||
Base="ScriptCanvas::Node"
|
||||
Version="2"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="32A4BEDC-C207-4472-61DE-9A716402620A"
|
||||
Deprecated="This node has been deprecated in favor of the nodeable form"
|
||||
Description="Provides a time value.">
|
||||
<In Name="Start" Description="Starts the timer."/>
|
||||
|
||||
+7
-2
@@ -9,8 +9,13 @@
|
||||
Icon="Editor/Icons/ScriptCanvas/AddFailure.png"
|
||||
Version="0"
|
||||
GeneratePropertyFriend="True"
|
||||
Description="adds a failure directly to the unit testing framework">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
Description="adds a failure directly to the unit testing framework"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Add Failure"
|
||||
>
|
||||
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
<Property Name="Report"
|
||||
Description="additional notes for the test report"
|
||||
|
||||
+3
@@ -9,6 +9,9 @@
|
||||
Icon="Editor/Icons/ScriptCanvas/AddSuccess.png"
|
||||
Version="0"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Add Success"
|
||||
Description="adds a success directly to the unit testing framework">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
+3
@@ -9,6 +9,9 @@
|
||||
Icon="Editor/Icons/ScriptCanvas/Checkpoint.png"
|
||||
Version="0"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Checkpoint"
|
||||
Description="Add a progress checkpoint for test debugging">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
+3
@@ -10,6 +10,9 @@
|
||||
Version="1"
|
||||
VersionConverter="ScriptCanvas::UnitTesting::ExpectComparisonVersioner"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Expect Equal"
|
||||
Description="Expects lhs equal to rhs">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
@@ -81,7 +81,6 @@ namespace ScriptCanvas
|
||||
return;
|
||||
}
|
||||
|
||||
const auto report = FindDatum(GetSlotId("Report"))->GetAs<Data::StringType>();
|
||||
|
||||
switch (lhs->GetType().GetType())
|
||||
{
|
||||
|
||||
+3
@@ -10,6 +10,9 @@
|
||||
Version="1"
|
||||
VersionConverter="ScriptCanvas::UnitTesting::ExpectBooleanVersioner"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Expect False"
|
||||
Description="Expects a value to be false">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
+3
@@ -10,6 +10,9 @@
|
||||
Version="1"
|
||||
VersionConverter="ScriptCanvas::UnitTesting::ExpectComparisonVersioner"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Expect Greater Than"
|
||||
Description="Expects lhs to be greater than rhs">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
-1
@@ -81,7 +81,6 @@ namespace ScriptCanvas
|
||||
return;
|
||||
}
|
||||
|
||||
const auto report = FindDatum(GetSlotId("Report"))->GetAs<Data::StringType>();
|
||||
|
||||
switch (lhs->GetType().GetType())
|
||||
{
|
||||
|
||||
+3
@@ -10,6 +10,9 @@
|
||||
Version="1"
|
||||
VersionConverter="ScriptCanvas::UnitTesting::ExpectComparisonVersioner"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Expect Greater Than Equal"
|
||||
Description="Expects lhs to be greater than rhs">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
-1
@@ -81,7 +81,6 @@ namespace ScriptCanvas
|
||||
return;
|
||||
}
|
||||
|
||||
const auto report = FindDatum(GetSlotId("Report"))->GetAs<Data::StringType>();
|
||||
|
||||
switch (lhs->GetType().GetType())
|
||||
{
|
||||
|
||||
+3
@@ -10,6 +10,9 @@
|
||||
Version="1"
|
||||
VersionConverter="ScriptCanvas::UnitTesting::ExpectComparisonVersioner"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Expect Less Than"
|
||||
Description="Expects lhs to be less than rhs">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
@@ -81,7 +81,6 @@ namespace ScriptCanvas
|
||||
return;
|
||||
}
|
||||
|
||||
const auto report = FindDatum(GetSlotId("Report"))->GetAs<Data::StringType>();
|
||||
|
||||
switch (lhs->GetType().GetType())
|
||||
{
|
||||
|
||||
+3
@@ -10,6 +10,9 @@
|
||||
Version="1"
|
||||
VersionConverter="ScriptCanvas::UnitTesting::ExpectComparisonVersioner"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Expect Less Than Equal"
|
||||
Description="Expects lhs to be greater than rhs">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
-1
@@ -81,7 +81,6 @@ namespace ScriptCanvas
|
||||
return;
|
||||
}
|
||||
|
||||
const auto report = FindDatum(GetSlotId("Report"))->GetAs<Data::StringType>();
|
||||
|
||||
switch (lhs->GetType().GetType())
|
||||
{
|
||||
|
||||
+3
@@ -10,6 +10,9 @@
|
||||
Version="1"
|
||||
VersionConverter="ScriptCanvas::UnitTesting::ExpectComparisonVersioner"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{C1E3C9D0-42E3-4D00-AE73-2A881E7E76A8}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Expect Not Equal"
|
||||
Description="Expects lhs not equal to rhs">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
@@ -81,7 +81,6 @@ namespace ScriptCanvas
|
||||
return;
|
||||
}
|
||||
|
||||
const auto report = FindDatum(GetSlotId("Report"))->GetAs<Data::StringType>();
|
||||
|
||||
switch (lhs->GetType().GetType())
|
||||
{
|
||||
|
||||
+3
@@ -10,6 +10,9 @@
|
||||
Version="1"
|
||||
VersionConverter="ScriptCanvas::UnitTesting::ExpectBooleanVersioner"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Expect True"
|
||||
Description="Expects a value to be true">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
+3
@@ -9,6 +9,9 @@
|
||||
Icon="Editor/Icons/ScriptCanvas/MarkComplete.png"
|
||||
Version="0"
|
||||
GeneratePropertyFriend="True"
|
||||
DeprecationUUID="{E42861BD-1956-45AE-8DD7-CCFC1E3E5ACF}"
|
||||
ReplacementClassname="Unit Testing"
|
||||
ReplacementMethodName="Mark Complete"
|
||||
Description="reports that the graph completed to the unit testing framework">
|
||||
<In Name="In" Description="Input signal"/>
|
||||
<Out Name="Out" Description=""/>
|
||||
|
||||
@@ -846,7 +846,6 @@ namespace ScriptCanvas
|
||||
{
|
||||
for (const auto& nameAndEventThread : ebusHandling->m_events)
|
||||
{
|
||||
const AZStd::string& eventName = nameAndEventThread.first;
|
||||
const Grammar::ExecutionTreeConstPtr& eventThread = nameAndEventThread.second;
|
||||
|
||||
const bool hasResults = eventThread->HasReturnValues();
|
||||
|
||||
@@ -248,16 +248,20 @@ namespace ScriptCanvas
|
||||
// The method is not in the behaviorContext Global Methods, so check the Global Properties
|
||||
for (auto [propertyName, behaviorProperty] : behaviorContext->m_properties)
|
||||
{
|
||||
if (behaviorProperty->m_getter && behaviorProperty->m_getter->m_name == methodName)
|
||||
AZStd::string getterName = AZStd::string::format("%s::Getter", methodName.data());
|
||||
AZStd::string setterName = AZStd::string::format("%s::Setter", methodName.data());
|
||||
|
||||
if (behaviorProperty->m_getter && (behaviorProperty->m_getter->m_name == methodName || behaviorProperty->m_getter->m_name == getterName))
|
||||
{
|
||||
method = behaviorProperty->m_getter;
|
||||
break;
|
||||
}
|
||||
if (behaviorProperty->m_setter && behaviorProperty->m_setter->m_name == methodName)
|
||||
if (behaviorProperty->m_setter && (behaviorProperty->m_setter->m_name == methodName || behaviorProperty->m_setter->m_name == setterName))
|
||||
{
|
||||
method = behaviorProperty->m_setter;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!method)
|
||||
|
||||
@@ -80,6 +80,8 @@ protected:
|
||||
AZ::ComponentApplication* GetApplication() override { return nullptr; }
|
||||
void RegisterComponentDescriptor(const AZ::ComponentDescriptor*) override { }
|
||||
void UnregisterComponentDescriptor(const AZ::ComponentDescriptor*) override { }
|
||||
void RegisterEntityAddedEventHandler(AZ::EntityAddedEvent::Handler&) override { }
|
||||
void RegisterEntityRemovedEventHandler(AZ::EntityRemovedEvent::Handler&) override { }
|
||||
bool AddEntity(AZ::Entity*) override { return true; }
|
||||
bool RemoveEntity(AZ::Entity*) override { return true; }
|
||||
bool DeleteEntity(const AZ::EntityId&) override { return true; }
|
||||
@@ -104,6 +106,7 @@ protected:
|
||||
|
||||
m_serializeContext = aznew AZ::SerializeContext(true, true);
|
||||
AZ::ComponentApplicationBus::Handler::BusConnect();
|
||||
AZ::Interface<AZ::ComponentApplicationRequests>::Register(this);
|
||||
|
||||
m_mockAssetDescriptor = MockAssetRefComponent::CreateDescriptor();
|
||||
MockAssetRefComponent::Reflect(m_serializeContext);
|
||||
@@ -121,6 +124,7 @@ protected:
|
||||
|
||||
void TearDown() override
|
||||
{
|
||||
AZ::Interface<AZ::ComponentApplicationRequests>::Unregister(this);
|
||||
AZ::ComponentApplicationBus::Handler::BusDisconnect();
|
||||
|
||||
AZ::Data::AssetManager::Destroy();
|
||||
|
||||
Reference in New Issue
Block a user