Undoing old changes and storing linkId to prefabDom

Signed-off-by: mnaumov <mnaumov@amazon.com>
This commit is contained in:
mnaumov
2021-08-12 14:37:01 -07:00
parent 3fe5901a77
commit 8f21563ba9
5 changed files with 8 additions and 23 deletions
@@ -202,7 +202,7 @@ namespace AzToolsFramework
m_rootInstance->SetTemplateId(templateId);
m_rootInstance->SetTemplateSourcePath(m_loaderInterface->GenerateRelativePath(filename));
m_rootInstance->SetContainerEntityName("Level");
m_prefabSystemComponent->PropagateTemplateChangesDown(templateId);
m_prefabSystemComponent->PropagateTemplateChanges(templateId);
return true;
}
@@ -81,6 +81,13 @@ namespace AzToolsFramework
result.Combine(resultInstances);
}
{
AZ::ScopedContextPath subPathSource(context, "m_linkId");
result = ContinueStoringToJsonObjectField(
outputValue, "LinkId", &(instance->m_linkId), &InvalidLinkId, azrtti_typeid<AZ::u64>(), context);
}
return context.Report(result,
result.GetProcessing() == JSR::Processing::Completed ? "Successfully stored Instance information for Prefab." :
"Failed to store Instance information for Prefab.");
@@ -153,24 +153,6 @@ namespace AzToolsFramework
}
}
void PrefabSystemComponent::PropagateTemplateChangesDown(TemplateId templateId, InstanceOptionalReference instanceToExclude)
{
PropagateTemplateChanges(templateId, instanceToExclude);
auto templateIterator = m_templateIdMap.find(templateId);
if (templateIterator != m_templateIdMap.end())
{
for (LinkId linkId : templateIterator->second.GetLinks())
{
auto linkIterator = m_linkIdMap.find(linkId);
if (linkIterator != m_linkIdMap.end())
{
PropagateTemplateChangesDown(linkIterator->second.GetSourceTemplateId(), instanceToExclude);
}
}
}
}
void PrefabSystemComponent::UpdatePrefabTemplate(TemplateId templateId, const PrefabDom& updatedDom)
{
auto templateToUpdate = FindTemplate(templateId);
@@ -213,8 +213,6 @@ namespace AzToolsFramework
void PropagateTemplateChanges(TemplateId templateId, InstanceOptionalReference instanceToExclude = AZStd::nullopt) override;
void PropagateTemplateChangesDown(TemplateId templateIdd, InstanceOptionalReference instanceToExclude = AZStd::nullopt) override;
/**
* Updates all Instances owned by a Template.
*
@@ -53,8 +53,6 @@ namespace AzToolsFramework
virtual PrefabDom& FindTemplateDom(TemplateId templateId) = 0;
virtual void UpdatePrefabTemplate(TemplateId templateId, const PrefabDom& updatedDom) = 0;
virtual void PropagateTemplateChanges(TemplateId templateId, InstanceOptionalReference instanceToExclude = AZStd::nullopt) = 0;
//! Propagates template changes recursively down to its dependents
virtual void PropagateTemplateChangesDown(TemplateId templateIdd, InstanceOptionalReference instanceToExclude = AZStd::nullopt) = 0;
virtual AZStd::unique_ptr<Instance> InstantiatePrefab(AZ::IO::PathView filePath) = 0;
virtual AZStd::unique_ptr<Instance> InstantiatePrefab(const TemplateId& templateId) = 0;