fix for dependency job key on ScriptEvents from SC builder

Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
chcurran
2021-07-15 09:46:51 -07:00
parent 7aab45cbea
commit e2c1477629
9 changed files with 29 additions and 22 deletions
@@ -82,23 +82,35 @@ namespace ScriptCanvasBuilder
m_processEditorAssetDependencies.clear();
auto assetFilter = [this, &response](const AZ::Data::AssetFilterInfo& filterInfo)
AZStd::unordered_multimap<AZStd::string, AssetBuilderSDK::SourceFileDependency> jobDependenciesByKey;
auto assetFilter = [this, &jobDependenciesByKey](const AZ::Data::AssetFilterInfo& filterInfo)
{
// force load these before processing
if (filterInfo.m_assetType == azrtti_typeid<ScriptCanvas::SubgraphInterfaceAsset>()
|| filterInfo.m_assetType == azrtti_typeid<ScriptEvents::ScriptEventsAsset>())
|| filterInfo.m_assetType == azrtti_typeid<ScriptEvents::ScriptEventsAsset>())
{
this->m_processEditorAssetDependencies.push_back(filterInfo);
}
// these trigger re-processing
if (filterInfo.m_assetType == azrtti_typeid<ScriptCanvasEditor::ScriptCanvasAsset>()
|| filterInfo.m_assetType == azrtti_typeid<ScriptEvents::ScriptEventsAsset>()
|| filterInfo.m_assetType == azrtti_typeid<ScriptCanvas::SubgraphInterfaceAsset>())
if (filterInfo.m_assetType == azrtti_typeid<ScriptCanvasEditor::ScriptCanvasAsset>())
{
AZ_Error("ScriptCanvas", false, "ScriptAsset Reference in a graph detected");
}
if (filterInfo.m_assetType == azrtti_typeid<ScriptEvents::ScriptEventsAsset>())
{
AssetBuilderSDK::SourceFileDependency dependency;
dependency.m_sourceFileDependencyUUID = filterInfo.m_assetId.m_guid;
response.m_sourceFileDependencyList.push_back(dependency);
jobDependenciesByKey.insert({ ScriptEvents::k_builderJobKey, dependency });
}
if (filterInfo.m_assetType == azrtti_typeid<ScriptCanvas::SubgraphInterfaceAsset>())
{
AssetBuilderSDK::SourceFileDependency dependency;
dependency.m_sourceFileDependencyUUID = filterInfo.m_assetId.m_guid;
jobDependenciesByKey.insert({ s_scriptCanvasProcessJobKey, dependency });
}
// Asset filter always returns false to prevent parsing dependencies, but makes note of the script canvas dependencies
@@ -163,9 +175,10 @@ namespace ScriptCanvasBuilder
jobDescriptor.m_additionalFingerprintInfo = AZStd::string(GetFingerprintString()).append("|").append(AZStd::to_string(static_cast<AZ::u64>(fingerprint)));
// Graph process job needs to wait until its dependency asset job finished
for (const auto& processingDependency : response.m_sourceFileDependencyList)
for (const auto& processingDependency : jobDependenciesByKey)
{
jobDescriptor.m_jobDependencyList.emplace_back(s_scriptCanvasProcessJobKey, info.m_identifier.c_str(), AssetBuilderSDK::JobDependencyType::Order, processingDependency);
response.m_sourceFileDependencyList.push_back(processingDependency.second);
jobDescriptor.m_jobDependencyList.emplace_back(processingDependency.first, info.m_identifier.c_str(), AssetBuilderSDK::JobDependencyType::Order, processingDependency.second);
}
response.m_createJobOutputs.push_back(jobDescriptor);
@@ -97,7 +97,7 @@ namespace ScriptCanvasBuilder
bool pathFound = false;
AZStd::string relativePath;
AzToolsFramework::AssetSystemRequestBus::BroadcastResult
(pathFound
( pathFound
, &AzToolsFramework::AssetSystem::AssetSystemRequest::GetRelativeProductPathFromFullSourceOrProductPath
, fullPath.c_str(), relativePath);
@@ -802,12 +802,6 @@ namespace ScriptCanvas
m_namespacePath = namespacePath;
}
void SubgraphInterface::TakeNamespacePath(NamespacePath&& namespacePath)
{
m_namespacePath = AZStd::move(namespacePath);
}
AZStd::string SubgraphInterface::ToExecutionString() const
{
AZStd::string result;
@@ -235,8 +235,6 @@ namespace ScriptCanvas
void SetNamespacePath(const NamespacePath& namespacePath);
void TakeNamespacePath(NamespacePath&& namespacePath);
AZStd::string ToExecutionString() const;
private:
@@ -234,7 +234,7 @@ namespace ScriptCanvas
const VariableData Source::k_emptyVardata{};
Source::Source
(const Graph& graph
( const Graph& graph
, const AZ::Data::AssetId& id
, const GraphData& graphData
, const VariableData& variableData
@@ -276,7 +276,7 @@ namespace ScriptCanvas
AzFramework::StringFunc::Path::StripExtension(namespacePath);
return AZ::Success(Source
(*request.graph
(*request.graph
, request.scriptAssetId
, *graphData
, *sourceVariableData
@@ -289,7 +289,7 @@ namespace ScriptCanvas
Source() = default;
Source
(const Graph& graph
( const Graph& graph
, const AZ::Data::AssetId& id
, const GraphData& graphData
, const VariableData& variableData