Integrating github/staging through commit ab87ed9
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user