From 55155630ca8cf422d4eedab5bd62be3a85ec6887 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 12 Apr 2021 21:06:34 +0200 Subject: [PATCH] Fix duplicating spline #452 --- Source/Editor/Modules/SceneModule.cs | 13 ++++++++++++- Source/Editor/SceneGraph/Actors/SplineNode.cs | 2 +- Source/Editor/SceneGraph/RootNode.cs | 6 ++++++ Source/Editor/SceneGraph/SceneGraphNode.cs | 4 +++- .../Editor/Windows/Assets/PrefabWindow.Hierarchy.cs | 3 +++ 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/Source/Editor/Modules/SceneModule.cs b/Source/Editor/Modules/SceneModule.cs index 6334225fd..86479b696 100644 --- a/Source/Editor/Modules/SceneModule.cs +++ b/Source/Editor/Modules/SceneModule.cs @@ -22,14 +22,25 @@ namespace FlaxEditor.Modules /// public class ScenesRootNode : RootNode { + private readonly Editor _editor; + + /// + public ScenesRootNode() + { + _editor = Editor.Instance; + } + /// public override void Spawn(Actor actor, Actor parent) { - Editor.Instance.SceneEditing.Spawn(actor, parent); + _editor.SceneEditing.Spawn(actor, parent); } /// public override Undo Undo => Editor.Instance.Undo; + + /// + public override List Selection => _editor.SceneEditing.Selection; } /// diff --git a/Source/Editor/SceneGraph/Actors/SplineNode.cs b/Source/Editor/SceneGraph/Actors/SplineNode.cs index b4914941a..7f9e4ca70 100644 --- a/Source/Editor/SceneGraph/Actors/SplineNode.cs +++ b/Source/Editor/SceneGraph/Actors/SplineNode.cs @@ -29,7 +29,7 @@ namespace FlaxEditor.SceneGraph.Actors public override bool CanBeSelectedDirectly => true; - public override bool CanDuplicate => true; + public override bool CanDuplicate => !Root?.Selection.Contains(ParentNode) ?? true; public override bool CanDelete => true; diff --git a/Source/Editor/SceneGraph/RootNode.cs b/Source/Editor/SceneGraph/RootNode.cs index 10af88489..485c656b1 100644 --- a/Source/Editor/SceneGraph/RootNode.cs +++ b/Source/Editor/SceneGraph/RootNode.cs @@ -1,6 +1,7 @@ // Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. using System; +using System.Collections.Generic; using FlaxEditor.SceneGraph.Actors; using FlaxEngine; @@ -146,5 +147,10 @@ namespace FlaxEditor.SceneGraph /// Gets the undo. /// public abstract Undo Undo { get; } + + /// + /// Gets the list of selected scene graph nodes in the editor context. + /// + public abstract List Selection { get; } } } diff --git a/Source/Editor/SceneGraph/SceneGraphNode.cs b/Source/Editor/SceneGraph/SceneGraphNode.cs index 11c3b7709..76327918d 100644 --- a/Source/Editor/SceneGraph/SceneGraphNode.cs +++ b/Source/Editor/SceneGraph/SceneGraphNode.cs @@ -57,7 +57,9 @@ namespace FlaxEditor.SceneGraph /// public virtual RootNode Root => ParentNode?.Root; - /// + /// + /// Gets or sets the transform of the node. + /// public abstract Transform Transform { get; set; } /// diff --git a/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs b/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs index e671ba1de..afba74fbc 100644 --- a/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs +++ b/Source/Editor/Windows/Assets/PrefabWindow.Hierarchy.cs @@ -36,6 +36,9 @@ namespace FlaxEditor.Windows.Assets /// public override Undo Undo => _window.Undo; + + /// + public override List Selection => _window.Selection; } ///