Fixed scoping rules for variables

main
luissemp 5 years ago
parent fbe1b53617
commit 53e84b3820

@ -437,5 +437,7 @@ namespace GraphCanvas
default: default:
return QGraphicsWidget::sizeHint(which, constraint); return QGraphicsWidget::sizeHint(which, constraint);
} }
return QGraphicsWidget::sizeHint(which, constraint);
} }
} }

@ -2347,7 +2347,7 @@ namespace ScriptCanvasEditor
AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> addOutcome; AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> addOutcome;
// #functions2 slot<->variable re-use the activeDatum, send the pointer (actually, all of the source slot information, and make a special conversion) // #functions2 slot<->variable re-use the activeDatum, send the pointer (actually, all of the source slot information, and make a special conversion)
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(addOutcome, GetScriptCanvasId(), &ScriptCanvas::GraphVariableManagerRequests::AddVariable, variableName, variableDatum); ScriptCanvas::GraphVariableManagerRequestBus::EventResult(addOutcome, GetScriptCanvasId(), &ScriptCanvas::GraphVariableManagerRequests::AddVariable, variableName, variableDatum, true);
if (addOutcome.IsSuccess()) if (addOutcome.IsSuccess())
{ {

@ -172,7 +172,7 @@ namespace ScriptCanvasEditor
{ {
ScriptCanvas::Datum datum = ScriptCanvas::Datum(entityId); ScriptCanvas::Datum datum = ScriptCanvas::Datum(entityId);
AZ::Outcome<ScriptCanvas::VariableId, AZStd::string > addVariableOutcome = variableManagerRequests->AddVariable(variableName, datum); AZ::Outcome<ScriptCanvas::VariableId, AZStd::string > addVariableOutcome = variableManagerRequests->AddVariable(variableName, datum, false);
if (addVariableOutcome.IsSuccess()) if (addVariableOutcome.IsSuccess())
{ {

@ -1011,7 +1011,7 @@ namespace ScriptCanvasEditor
ScriptCanvas::Datum datum(variableType, ScriptCanvas::Datum::eOriginality::Original); ScriptCanvas::Datum datum(variableType, ScriptCanvas::Datum::eOriginality::Original);
AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> outcome = AZ::Failure(AZStd::string()); AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> outcome = AZ::Failure(AZStd::string());
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(outcome, m_activeGraphIds.scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::AddVariable, varName, datum); ScriptCanvas::GraphVariableManagerRequestBus::EventResult(outcome, m_activeGraphIds.scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::AddVariable, varName, datum, false);
if (outcome.IsSuccess()) if (outcome.IsSuccess())
{ {

@ -41,6 +41,7 @@
#include <ScriptCanvas/Bus/EditorScriptCanvasBus.h> #include <ScriptCanvas/Bus/EditorScriptCanvasBus.h>
#include <AzToolsFramework/API/ToolsApplicationAPI.h> #include <AzToolsFramework/API/ToolsApplicationAPI.h>
#include <ScriptCanvas/Variable/GraphVariable.h>
namespace ScriptCanvasEditor namespace ScriptCanvasEditor
{ {
@ -538,7 +539,24 @@ namespace ScriptCanvasEditor
} }
else if (index.column() == ColumnIndex::Scope) else if (index.column() == ColumnIndex::Scope)
{ {
// Scope is not changed by users ScriptCanvas::GraphVariable* graphVariable = nullptr;
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(graphVariable, m_scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::FindVariableById, varId.m_identifier);
if (graphVariable)
{
QString comboBoxValue = value.toString();
if (!comboBoxValue.isEmpty())
{
AZStd::string scopeLabel = ScriptCanvas::VariableFlags::GetScopeDisplayLabel(graphVariable->GetScope());
if (scopeLabel.compare(comboBoxValue.toUtf8().data()) != 0)
{
modifiedData = true;
graphVariable->SetScope(ScriptCanvas::VariableFlags::GetScopeFromLabel(comboBoxValue.toUtf8().data()));
AzToolsFramework::PropertyEditorGUIMessages::Bus::Broadcast(&AzToolsFramework::PropertyEditorGUIMessages::RequestRefresh, AzToolsFramework::Refresh_EntireTree);
}
}
}
} }
else if (index.column() == ColumnIndex::InitialValueSource) else if (index.column() == ColumnIndex::InitialValueSource)
{ {
@ -607,8 +625,17 @@ namespace ScriptCanvasEditor
} }
else if (index.column() == ColumnIndex::Scope) else if (index.column() == ColumnIndex::Scope)
{ {
ScriptCanvas::GraphScopedVariableId varId = FindScopedVariableIdForIndex(index);
ScriptCanvas::GraphVariable* graphVariable = nullptr;
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(graphVariable, m_scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::FindVariableById, varId.m_identifier);
if (graphVariable->GetScope() != ScriptCanvas::VariableFlags::Scope::FunctionReadOnly)
{
itemFlags |= Qt::ItemIsEditable; itemFlags |= Qt::ItemIsEditable;
} }
}
else if (index.column() == ColumnIndex::InitialValueSource) else if (index.column() == ColumnIndex::InitialValueSource)
{ {
itemFlags |= Qt::ItemIsEditable; itemFlags |= Qt::ItemIsEditable;

@ -812,7 +812,7 @@ namespace ScriptCanvasEditor
ScriptCanvas::Datum datum(varType, ScriptCanvas::Datum::eOriginality::Original); ScriptCanvas::Datum datum(varType, ScriptCanvas::Datum::eOriginality::Original);
AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> outcome = AZ::Failure(AZStd::string()); AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> outcome = AZ::Failure(AZStd::string());
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(outcome, m_scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::AddVariable, variableName, datum); ScriptCanvas::GraphVariableManagerRequestBus::EventResult(outcome, m_scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::AddVariable, variableName, datum, false);
AZ_Warning("VariablePanel", outcome.IsSuccess(), "Could not create new variable: %s", outcome.GetError().c_str()); AZ_Warning("VariablePanel", outcome.IsSuccess(), "Could not create new variable: %s", outcome.GetError().c_str());
GeneralRequestBus::Broadcast(&GeneralRequests::PostUndoPoint, m_scriptCanvasId); GeneralRequestBus::Broadcast(&GeneralRequests::PostUndoPoint, m_scriptCanvasId);

@ -81,6 +81,8 @@ namespace ScriptCanvas
{ {
return ConstructCustomNodeIdentifier(scriptCanvasNode->RTTI_GetType()); return ConstructCustomNodeIdentifier(scriptCanvasNode->RTTI_GetType());
} }
return NodeTypeIdentifier(0);
} }
NodeTypeIdentifier NodeUtils::ConstructEBusIdentifier(ScriptCanvas::EBusBusId ebusIdentifier) NodeTypeIdentifier NodeUtils::ConstructEBusIdentifier(ScriptCanvas::EBusBusId ebusIdentifier)

@ -43,20 +43,12 @@ namespace ScriptCanvas
{ {
const char* GetScopeDisplayLabel(Scope scopeType) const char* GetScopeDisplayLabel(Scope scopeType)
{ {
switch (scopeType) return GraphVariable::s_ScopeNames[static_cast<int>(scopeType)];
{
case Scope::Graph:
return "Graph";
case Scope::Function:
return "Function";
default:
return "?";
}
} }
Scope GetScopeFromLabel(const char* label) Scope GetScopeFromLabel(const char* label)
{ {
if (strcmp("Function", label) == 0) if (strcmp(GraphVariable::s_ScopeNames[static_cast<int>(VariableFlags::Scope::Function)], label) == 0)
{ {
return Scope::Function; return Scope::Function;
} }
@ -71,6 +63,7 @@ namespace ScriptCanvas
case Scope::Graph: case Scope::Graph:
return "Variable is accessible in the entire graph."; return "Variable is accessible in the entire graph.";
case Scope::Function: case Scope::Function:
case Scope::FunctionReadOnly:
return "Variable is accessible only in the execution path of the function that defined it"; return "Variable is accessible only in the execution path of the function that defined it";
default: default:
return "?"; return "?";
@ -162,6 +155,14 @@ namespace ScriptCanvas
"From Component" "From Component"
}; };
const char* GraphVariable::s_ScopeNames[static_cast<int>(VariableFlags::Scope::COUNT)] =
{
"Graph",
"Function",
"Function",
};
void GraphVariable::Reflect(AZ::ReflectContext* context) void GraphVariable::Reflect(AZ::ReflectContext* context)
{ {
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context)) if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
@ -197,6 +198,13 @@ namespace ScriptCanvas
return choices; return choices;
}; };
auto scopeChoices = [] {
AZStd::vector< AZStd::pair<VariableFlags::Scope, AZStd::string>> choices;
choices.emplace_back(AZStd::make_pair(VariableFlags::Scope::Graph, s_ScopeNames[0]));
choices.emplace_back(AZStd::make_pair(VariableFlags::Scope::Function, s_ScopeNames[1]));
return choices;
};
editContext->Class<GraphVariable>("Variable", "Represents a Variable field within a Script Canvas Graph") editContext->Class<GraphVariable>("Variable", "Represents a Variable field within a Script Canvas Graph")
->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
->Attribute(AZ::Edit::Attributes::Visibility, &GraphVariable::GetVisibility) ->Attribute(AZ::Edit::Attributes::Visibility, &GraphVariable::GetVisibility)
@ -215,8 +223,8 @@ namespace ScriptCanvas
->Attribute(AZ::Edit::Attributes::ChangeNotify, &GraphVariable::OnValueChanged) ->Attribute(AZ::Edit::Attributes::ChangeNotify, &GraphVariable::OnValueChanged)
->DataElement(AZ::Edit::UIHandlers::ComboBox, &GraphVariable::m_scope, "Scope", "Controls the scope of this variable. i.e. If this is exposed as input to this script, or output from this script, or if the variable is just locally scoped.") ->DataElement(AZ::Edit::UIHandlers::ComboBox, &GraphVariable::m_scope, "Scope", "Controls the scope of this variable. i.e. If this is exposed as input to this script, or output from this script, or if the variable is just locally scoped.")
->Attribute(AZ::Edit::Attributes::Visibility, &GraphVariable::GetInputControlVisibility) ->Attribute(AZ::Edit::Attributes::Visibility, &GraphVariable::GetScopeControlVisibility)
->Attribute(AZ::Edit::Attributes::GenericValueList, &GraphVariable::GetScopes) ->Attribute(AZ::Edit::Attributes::GenericValueList, scopeChoices)
->Attribute(AZ::Edit::Attributes::ChangeNotify, &GraphVariable::OnScopeTypedChanged) ->Attribute(AZ::Edit::Attributes::ChangeNotify, &GraphVariable::OnScopeTypedChanged)
->DataElement(AZ::Edit::UIHandlers::Default, &GraphVariable::m_networkProperties, "Network Properties", "Enables whether or not this value should be network synchronized") ->DataElement(AZ::Edit::UIHandlers::Default, &GraphVariable::m_networkProperties, "Network Properties", "Enables whether or not this value should be network synchronized")
@ -382,6 +390,16 @@ namespace ScriptCanvas
m_inputControlVisibility = inputControlVisibility; m_inputControlVisibility = inputControlVisibility;
} }
AZ::Crc32 GraphVariable::GetScopeControlVisibility() const
{
if (m_scope == VariableFlags::Scope::FunctionReadOnly)
{
return AZ::Edit::PropertyVisibility::Hide;
}
return GetInputControlVisibility();
}
AZ::Crc32 GraphVariable::GetInputControlVisibility() const AZ::Crc32 GraphVariable::GetInputControlVisibility() const
{ {
return m_inputControlVisibility; return m_inputControlVisibility;
@ -462,6 +480,8 @@ namespace ScriptCanvas
return m_scope == VariableFlags::Scope::Graph; return m_scope == VariableFlags::Scope::Graph;
// All graph variables are in function local scope // All graph variables are in function local scope
case VariableFlags::Scope::Function: case VariableFlags::Scope::Function:
case VariableFlags::Scope::FunctionReadOnly:
return true; return true;
} }

@ -52,8 +52,10 @@ namespace ScriptCanvas
enum class Scope : AZ::u8 enum class Scope : AZ::u8
{ {
Graph = 0, Graph,
Function = 1, Function,
FunctionReadOnly,
COUNT
}; };
enum InitialValueSource : AZ::u8 enum InitialValueSource : AZ::u8
@ -142,6 +144,7 @@ namespace ScriptCanvas
void SetScriptInputControlVisibility(const AZ::Crc32& inputControlVisibility); void SetScriptInputControlVisibility(const AZ::Crc32& inputControlVisibility);
AZ::Crc32 GetInputControlVisibility() const; AZ::Crc32 GetInputControlVisibility() const;
AZ::Crc32 GetScopeControlVisibility() const;
AZ::Crc32 GetScriptInputControlVisibility() const; AZ::Crc32 GetScriptInputControlVisibility() const;
AZ::Crc32 GetNetworkSettingsVisibility() const; AZ::Crc32 GetNetworkSettingsVisibility() const;
AZ::Crc32 GetFunctionInputControlVisibility() const; AZ::Crc32 GetFunctionInputControlVisibility() const;
@ -181,6 +184,7 @@ namespace ScriptCanvas
int GetSortPriority() const; int GetSortPriority() const;
static const char* s_InitialValueSourceNames[VariableFlags::InitialValueSource::COUNT]; static const char* s_InitialValueSourceNames[VariableFlags::InitialValueSource::COUNT];
static const char* GraphVariable::s_ScopeNames[VariableFlags::Scope::COUNT];
private: private:

@ -225,7 +225,7 @@ namespace ScriptCanvas
} }
// #functions2 slot<->variable add this to the graph, using the old datum // #functions2 slot<->variable add this to the graph, using the old datum
AZ::Outcome<VariableId, AZStd::string> GraphVariableManagerComponent::AddVariable(AZStd::string_view name, const Datum& value) AZ::Outcome<VariableId, AZStd::string> GraphVariableManagerComponent::AddVariable(AZStd::string_view name, const Datum& value, bool functionScope)
{ {
if (FindVariable(name)) if (FindVariable(name))
{ {
@ -245,6 +245,10 @@ namespace ScriptCanvas
GraphVariable* variable = m_variableData.FindVariable(newId); GraphVariable* variable = m_variableData.FindVariable(newId);
variable->SetOwningScriptCanvasId(GetScriptCanvasId()); variable->SetOwningScriptCanvasId(GetScriptCanvasId());
if (functionScope)
{
variable->SetScope(VariableFlags::Scope::FunctionReadOnly);
}
VariableRequestBus::MultiHandler::BusConnect(GraphScopedVariableId(m_scriptCanvasId, newId)); VariableRequestBus::MultiHandler::BusConnect(GraphScopedVariableId(m_scriptCanvasId, newId));
GraphVariableManagerNotificationBus::Event(GetScriptCanvasId(), &GraphVariableManagerNotifications::OnVariableAddedToGraph, newId, name); GraphVariableManagerNotificationBus::Event(GetScriptCanvasId(), &GraphVariableManagerNotifications::OnVariableAddedToGraph, newId, name);
@ -254,7 +258,7 @@ namespace ScriptCanvas
AZ::Outcome<VariableId, AZStd::string> GraphVariableManagerComponent::AddVariablePair(const AZStd::pair<AZStd::string_view, Datum>& keyValuePair) AZ::Outcome<VariableId, AZStd::string> GraphVariableManagerComponent::AddVariablePair(const AZStd::pair<AZStd::string_view, Datum>& keyValuePair)
{ {
return AddVariable(keyValuePair.first, keyValuePair.second); return AddVariable(keyValuePair.first, keyValuePair.second, false);
} }
VariableValidationOutcome GraphVariableManagerComponent::IsNameValid(AZStd::string_view varName) VariableValidationOutcome GraphVariableManagerComponent::IsNameValid(AZStd::string_view varName)

@ -63,7 +63,7 @@ namespace ScriptCanvas
//// GraphVariableManagerRequestBus //// GraphVariableManagerRequestBus
AZ::Outcome<VariableId, AZStd::string> CloneVariable(const GraphVariable& variableConfiguration) override; AZ::Outcome<VariableId, AZStd::string> CloneVariable(const GraphVariable& variableConfiguration) override;
AZ::Outcome<VariableId, AZStd::string> RemapVariable(const GraphVariable& variableConfiguration) override; AZ::Outcome<VariableId, AZStd::string> RemapVariable(const GraphVariable& variableConfiguration) override;
AZ::Outcome<VariableId, AZStd::string> AddVariable(AZStd::string_view name, const Datum& value) override; AZ::Outcome<VariableId, AZStd::string> AddVariable(AZStd::string_view name, const Datum& value, bool functionScope) override;
AZ::Outcome<VariableId, AZStd::string> AddVariablePair(const AZStd::pair<AZStd::string_view, Datum>& nameValuePair) override; AZ::Outcome<VariableId, AZStd::string> AddVariablePair(const AZStd::pair<AZStd::string_view, Datum>& nameValuePair) override;
VariableValidationOutcome IsNameValid(AZStd::string_view key) override; VariableValidationOutcome IsNameValid(AZStd::string_view key) override;

@ -90,7 +90,7 @@ namespace ScriptCanvas
//! returns an AZ::Outcome which on success contains the VariableId and on Failure contains a string with error information //! returns an AZ::Outcome which on success contains the VariableId and on Failure contains a string with error information
virtual AZ::Outcome<VariableId, AZStd::string> CloneVariable(const GraphVariable& baseVariable) = 0; virtual AZ::Outcome<VariableId, AZStd::string> CloneVariable(const GraphVariable& baseVariable) = 0;
virtual AZ::Outcome<VariableId, AZStd::string> RemapVariable(const GraphVariable& variableConfiguration) = 0; virtual AZ::Outcome<VariableId, AZStd::string> RemapVariable(const GraphVariable& variableConfiguration) = 0;
virtual AZ::Outcome<VariableId, AZStd::string> AddVariable(AZStd::string_view key, const Datum& value) = 0; virtual AZ::Outcome<VariableId, AZStd::string> AddVariable(AZStd::string_view key, const Datum& value, bool functionScope) = 0;
virtual AZ::Outcome<VariableId, AZStd::string> AddVariablePair(const AZStd::pair<AZStd::string_view, Datum>& keyValuePair) = 0; virtual AZ::Outcome<VariableId, AZStd::string> AddVariablePair(const AZStd::pair<AZStd::string_view, Datum>& keyValuePair) = 0;
virtual VariableValidationOutcome IsNameValid(AZStd::string_view variableName) = 0; virtual VariableValidationOutcome IsNameValid(AZStd::string_view variableName) = 0;

@ -63,7 +63,7 @@ namespace ScriptCanvasDeveloperEditor
ScriptCanvas::Datum datum(dataType, ScriptCanvas::Datum::eOriginality::Original); ScriptCanvas::Datum datum(dataType, ScriptCanvas::Datum::eOriginality::Original);
AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> outcome = AZ::Failure(AZStd::string()); AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> outcome = AZ::Failure(AZStd::string());
m_variableRequests->AddVariable(variableName, datum); m_variableRequests->AddVariable(variableName, datum, false);
++m_variableCounter; ++m_variableCounter;
} }

@ -144,7 +144,7 @@ namespace ScriptCanvasDeveloper
{ {
ScriptCanvasEditor::SceneCounterRequestBus::EventResult(variableCounter, m_scriptCanvasId, &ScriptCanvasEditor::SceneCounterRequests::GetNewVariableCounter); ScriptCanvasEditor::SceneCounterRequestBus::EventResult(variableCounter, m_scriptCanvasId, &ScriptCanvasEditor::SceneCounterRequests::GetNewVariableCounter);
// Cribbed from VariableDockWidget. Shuld always be in sync with that. // From VariableDockWidget, Should always be in sync with that.
variableName = AZStd::string::format("Variable %u", variableCounter); variableName = AZStd::string::format("Variable %u", variableCounter);
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(nameAvailable, m_scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::IsNameAvailable, variableName); ScriptCanvas::GraphVariableManagerRequestBus::EventResult(nameAvailable, m_scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::IsNameAvailable, variableName);
@ -154,7 +154,7 @@ namespace ScriptCanvasDeveloper
ScriptCanvas::Datum datum(m_dataType, ScriptCanvas::Datum::eOriginality::Original); ScriptCanvas::Datum datum(m_dataType, ScriptCanvas::Datum::eOriginality::Original);
AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> outcome = AZ::Failure(AZStd::string()); AZ::Outcome<ScriptCanvas::VariableId, AZStd::string> outcome = AZ::Failure(AZStd::string());
ScriptCanvas::GraphVariableManagerRequestBus::EventResult(outcome, m_scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::AddVariable, variableName, datum); ScriptCanvas::GraphVariableManagerRequestBus::EventResult(outcome, m_scriptCanvasId, &ScriptCanvas::GraphVariableManagerRequests::AddVariable, variableName, datum, false);
if (outcome) if (outcome)
{ {

@ -96,7 +96,7 @@ namespace ScriptCanvasTests
{ {
using namespace ScriptCanvas; using namespace ScriptCanvas;
AZ::Outcome<VariableId, AZStd::string> addVariableOutcome = AZ::Failure(AZStd::string()); AZ::Outcome<VariableId, AZStd::string> addVariableOutcome = AZ::Failure(AZStd::string());
GraphVariableManagerRequestBus::EventResult(addVariableOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, variableName, Datum(value)); GraphVariableManagerRequestBus::EventResult(addVariableOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, variableName, Datum(value), false);
if (!addVariableOutcome) if (!addVariableOutcome)
{ {
AZ_Warning("Script Canvas Test", false, "%s", addVariableOutcome.GetError().data()); AZ_Warning("Script Canvas Test", false, "%s", addVariableOutcome.GetError().data());

@ -104,27 +104,27 @@ TEST_F(ScriptCanvasTestFixture, CreateVariableTest)
auto stringArrayDatum = Datum(StringArray()); auto stringArrayDatum = Datum(StringArray());
AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized"))); AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized")));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "FirstVector3", vector3Datum1); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "FirstVector3", vector3Datum1, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "SecondVector3", vector3Datum2); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "SecondVector3", vector3Datum2, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "FirstVector4", vector4Datum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "FirstVector4", vector4Datum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "ProjectionMatrix", behaviorMatrix4x4Datum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "ProjectionMatrix", behaviorMatrix4x4Datum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "My String Array", stringArrayDatum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "My String Array", stringArrayDatum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
@ -169,12 +169,12 @@ TEST_F(ScriptCanvasTestFixture, AddVariableFailTest)
const AZStd::string_view propertyName = "SameName"; const AZStd::string_view propertyName = "SameName";
AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized"))); AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized")));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, propertyName, vector3Datum1); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, propertyName, vector3Datum1, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, propertyName, vector3Datum2); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, propertyName, vector3Datum2, false);
EXPECT_FALSE(addPropertyOutcome); EXPECT_FALSE(addPropertyOutcome);
propertyEntity.reset(); propertyEntity.reset();
@ -208,35 +208,35 @@ TEST_F(ScriptCanvasTestFixture, RemoveVariableTest)
size_t numVariablesAdded = 0U; size_t numVariablesAdded = 0U;
AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized"))); AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized")));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "FirstVector3", vector3Datum1); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "FirstVector3", vector3Datum1, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
const VariableId firstVector3Id = addPropertyOutcome.GetValue(); const VariableId firstVector3Id = addPropertyOutcome.GetValue();
++numVariablesAdded; ++numVariablesAdded;
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "SecondVector3", vector3Datum2); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "SecondVector3", vector3Datum2, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
const VariableId secondVector3Id = addPropertyOutcome.GetValue(); const VariableId secondVector3Id = addPropertyOutcome.GetValue();
++numVariablesAdded; ++numVariablesAdded;
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "FirstVector4", vector4Datum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "FirstVector4", vector4Datum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
const VariableId firstVector4Id = addPropertyOutcome.GetValue(); const VariableId firstVector4Id = addPropertyOutcome.GetValue();
++numVariablesAdded; ++numVariablesAdded;
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "ProjectionMatrix", behaviorMatrix4x4Datum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "ProjectionMatrix", behaviorMatrix4x4Datum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
const VariableId projectionMatrixId = addPropertyOutcome.GetValue(); const VariableId projectionMatrixId = addPropertyOutcome.GetValue();
++numVariablesAdded; ++numVariablesAdded;
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "My String Array", stringArrayDatum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "My String Array", stringArrayDatum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
const VariableId stringArrayId = addPropertyOutcome.GetValue(); const VariableId stringArrayId = addPropertyOutcome.GetValue();
@ -294,7 +294,7 @@ TEST_F(ScriptCanvasTestFixture, RemoveVariableTest)
{ {
// Re-add removed Property // Re-add removed Property
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "ProjectionMatrix", behaviorMatrix4x4Datum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "ProjectionMatrix", behaviorMatrix4x4Datum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
@ -332,7 +332,7 @@ TEST_F(ScriptCanvasTestFixture, FindVariableTest)
const AZStd::string_view propertyName = "StringProperty"; const AZStd::string_view propertyName = "StringProperty";
AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized"))); AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized")));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, propertyName, stringVariableDatum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, propertyName, stringVariableDatum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
const VariableId stringVariableId = addPropertyOutcome.GetValue(); const VariableId stringVariableId = addPropertyOutcome.GetValue();
@ -391,7 +391,7 @@ TEST_F(ScriptCanvasTestFixture, ModifyVariableTest)
const AZStd::string_view propertyName = "StringProperty"; const AZStd::string_view propertyName = "StringProperty";
AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized"))); AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized")));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, propertyName, stringVariableDatum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, propertyName, stringVariableDatum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
const VariableId stringVariableId = addPropertyOutcome.GetValue(); const VariableId stringVariableId = addPropertyOutcome.GetValue();
@ -449,7 +449,7 @@ TEST_F(ScriptCanvasTestFixture, SerializationTest)
auto stringArrayDatum = Datum(StringArray()); auto stringArrayDatum = Datum(StringArray());
AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized"))); AZ::Outcome<VariableId, AZStd::string> addPropertyOutcome(AZ::Failure(AZStd::string("Uninitialized")));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "My String Array", stringArrayDatum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "My String Array", stringArrayDatum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());
@ -493,7 +493,7 @@ TEST_F(ScriptCanvasTestFixture, SerializationTest)
auto identityMatrixDatum = Datum(Data::Matrix3x3Type::CreateIdentity()); auto identityMatrixDatum = Datum(Data::Matrix3x3Type::CreateIdentity());
addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized")); addPropertyOutcome = AZ::Failure(AZStd::string("Uninitialized"));
GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "Super Matrix Bros", identityMatrixDatum); GraphVariableManagerRequestBus::EventResult(addPropertyOutcome, scriptCanvasId, &GraphVariableManagerRequests::AddVariable, "Super Matrix Bros", identityMatrixDatum, false);
EXPECT_TRUE(addPropertyOutcome); EXPECT_TRUE(addPropertyOutcome);
EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid()); EXPECT_TRUE(addPropertyOutcome.GetValue().IsValid());

Loading…
Cancel
Save