From 3a3e8e2ad509a1dc5be705f01e3f7327701ad143 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Fri, 5 May 2023 14:18:32 +0200 Subject: [PATCH] Fix actors spawning in prefab editor --- Source/Editor/SceneGraph/Actors/SplineNode.cs | 6 +++--- Source/Editor/SceneGraph/Actors/StaticModelNode.cs | 8 ++++---- Source/Editor/SceneGraph/GUI/ActorTreeNode.cs | 6 +----- Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs | 10 +++++----- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/Source/Editor/SceneGraph/Actors/SplineNode.cs b/Source/Editor/SceneGraph/Actors/SplineNode.cs index 5720ee150..8b8f3cccf 100644 --- a/Source/Editor/SceneGraph/Actors/SplineNode.cs +++ b/Source/Editor/SceneGraph/Actors/SplineNode.cs @@ -336,7 +336,7 @@ namespace FlaxEditor.SceneGraph.Actors StaticFlags = Actor.StaticFlags, Transform = Actor.Transform, }; - Editor.Instance.SceneEditing.Spawn(actor, Actor); + Root.Spawn(actor, Actor); } private void OnAddSplineCollider() @@ -347,7 +347,7 @@ namespace FlaxEditor.SceneGraph.Actors Transform = Actor.Transform, }; // TODO: auto pick the collision data if already using spline model - Editor.Instance.SceneEditing.Spawn(actor, Actor); + Root.Spawn(actor, Actor); } private void OnAddSplineRopeBody() @@ -357,7 +357,7 @@ namespace FlaxEditor.SceneGraph.Actors StaticFlags = StaticFlags.None, Transform = Actor.Transform, }; - Editor.Instance.SceneEditing.Spawn(actor, Actor); + Root.Spawn(actor, Actor); } internal static void OnSplineEdited(Spline spline) diff --git a/Source/Editor/SceneGraph/Actors/StaticModelNode.cs b/Source/Editor/SceneGraph/Actors/StaticModelNode.cs index faded9025..52176ab8b 100644 --- a/Source/Editor/SceneGraph/Actors/StaticModelNode.cs +++ b/Source/Editor/SceneGraph/Actors/StaticModelNode.cs @@ -43,7 +43,7 @@ namespace FlaxEditor.SceneGraph.Actors StaticFlags = Actor.StaticFlags, Transform = Actor.Transform, }; - Editor.Instance.SceneEditing.Spawn(actor, Actor); + Root.Spawn(actor, Actor); return; } if (modelPath.EndsWith("/Primitives/Sphere.flax", StringComparison.Ordinal)) @@ -53,7 +53,7 @@ namespace FlaxEditor.SceneGraph.Actors StaticFlags = Actor.StaticFlags, Transform = Actor.Transform, }; - Editor.Instance.SceneEditing.Spawn(actor, Actor); + Root.Spawn(actor, Actor); return; } if (modelPath.EndsWith("/Primitives/Plane.flax", StringComparison.Ordinal)) @@ -64,7 +64,7 @@ namespace FlaxEditor.SceneGraph.Actors Transform = Actor.Transform, Size = new Float3(100.0f, 100.0f, 1.0f), }; - Editor.Instance.SceneEditing.Spawn(actor, Actor); + Root.Spawn(actor, Actor); return; } if (modelPath.EndsWith("/Primitives/Capsule.flax", StringComparison.Ordinal)) @@ -91,7 +91,7 @@ namespace FlaxEditor.SceneGraph.Actors Transform = Actor.Transform, CollisionData = collisionData, }; - Editor.Instance.SceneEditing.Spawn(actor, Actor); + Root.Spawn(actor, Actor); }; var collisionDataProxy = (CollisionDataProxy)Editor.Instance.ContentDatabase.GetProxy(); collisionDataProxy.CreateCollisionDataFromModel(model, created); diff --git a/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs b/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs index dae32989a..5736a9f26 100644 --- a/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs +++ b/Source/Editor/SceneGraph/GUI/ActorTreeNode.cs @@ -629,7 +629,7 @@ namespace FlaxEditor.SceneGraph.GUI actor.StaticFlags = spawnParent.StaticFlags; actor.Name = item.ShortName; actor.Transform = spawnParent.Transform; - Editor.Instance.SceneEditing.Spawn(actor, spawnParent, false); + ActorNode.Root.Spawn(actor, spawnParent); actor.OrderInParent = newOrder; } result = DragDropEffect.Move; @@ -640,8 +640,6 @@ namespace FlaxEditor.SceneGraph.GUI for (int i = 0; i < _dragActorType.Objects.Count; i++) { var item = _dragActorType.Objects[i]; - - // Create actor var actor = item.CreateInstance() as Actor; if (actor == null) { @@ -651,8 +649,6 @@ namespace FlaxEditor.SceneGraph.GUI actor.StaticFlags = Actor.StaticFlags; actor.Name = item.Name; actor.Transform = Actor.Transform; - - // Spawn ActorNode.Root.Spawn(actor, Actor); } diff --git a/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs b/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs index b517f06c0..1b1cfb4ff 100644 --- a/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs +++ b/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs @@ -298,13 +298,13 @@ namespace FlaxEditor.Windows.Assets } // Custom options - bool showCustomNodeOptions = Editor.SceneEditing.Selection.Count == 1; - if (!showCustomNodeOptions && Editor.SceneEditing.Selection.Count != 0) + bool showCustomNodeOptions = Selection.Count == 1; + if (!showCustomNodeOptions && Selection.Count != 0) { showCustomNodeOptions = true; - for (int i = 1; i < Editor.SceneEditing.Selection.Count; i++) + for (int i = 1; i < Selection.Count; i++) { - if (Editor.SceneEditing.Selection[0].GetType() != Editor.SceneEditing.Selection[i].GetType()) + if (Selection[0].GetType() != Selection[i].GetType()) { showCustomNodeOptions = false; break; @@ -313,7 +313,7 @@ namespace FlaxEditor.Windows.Assets } if (showCustomNodeOptions) { - Editor.SceneEditing.Selection[0].OnContextMenu(contextMenu); + Selection[0].OnContextMenu(contextMenu); } ContextMenuShow?.Invoke(contextMenu);