#jira UE-143721

SceneOutliner - Unloaded LandscapeProxy actors are now placed under their associated Landscape

* FWorldPartitionActorDesc now has a GetSceneOutlinerParent() virtual which is used to build the actor hierarchy of the SceneOutliner
* FLandscapeActorDesc overrides GetSceneOutlinerParent() to return the Landscape guid as it's parent

Resaved all LandscapeProxies in the OpenWorld template map

#rb patrick.enfedaque, jeanfrancois.dube
#preflight 62191950f014007cf8b82a5e

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19152459 in //UE5/Release-5.0/... via CL 19157182
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19161144 by marc audy in ue5-main branch]
This commit is contained in:
marc audy
2022-02-25 19:35:57 -05:00
parent 83f830763d
commit c3bbae8682
6 changed files with 230 additions and 160 deletions
@@ -278,6 +278,41 @@ FSceneOutlinerTreeItemPtr FActorHierarchy::FindOrCreateParentItem(const ISceneOu
return bCreate ? Mode->CreateItemFor<FActorFolderTreeItem>(FActorFolderTreeItem(FFolder(FolderPath), RepresentingWorld.Get()), true) : nullptr;
}
}
// Parent Actor (Actor attachement / parenting)
const FGuid& ParentActorGuid = ActorDesc->GetSceneOutlinerParent();
if (ParentActorGuid.IsValid())
{
if (UWorldPartition* WorldPartition = RepresentingWorld->GetWorldPartition())
{
if (const FWorldPartitionActorDesc* ParentActorDesc = WorldPartition->GetActorDesc(ParentActorGuid))
{
// If parent actor is loaded
if (AActor* ParentActor = ParentActorDesc->GetActor())
{
// Find loaded parent actor node (from the object ptr)
if (const FSceneOutlinerTreeItemPtr* ParentItem = Items.Find(ParentActor))
{
return *ParentItem;
}
else
{
return bCreate ? Mode->CreateItemFor<FActorTreeItem>(ParentActor, true) : nullptr;
}
}
// Find unloaded parent actor node (from the guid)
if (const FSceneOutlinerTreeItemPtr* ParentItem = Items.Find(ParentActorGuid))
{
return *ParentItem;
}
else
{
return bCreate ? Mode->CreateItemFor<FActorDescTreeItem>(FActorDescTreeItem(ParentActorGuid, WorldPartition)) : nullptr;
}
}
}
}
}
}