diff --git a/Source/Editor/Surface/SurfaceNode.cs b/Source/Editor/Surface/SurfaceNode.cs index 4f628b6af..65b481c75 100644 --- a/Source/Editor/Surface/SurfaceNode.cs +++ b/Source/Editor/Surface/SurfaceNode.cs @@ -395,6 +395,14 @@ namespace FlaxEditor.Surface /// public virtual SurfaceNode[] SealedNodes => null; + /// + /// Called after adding the control to the surface after paste. + /// + /// The nodes IDs mapping (original node ID to pasted node ID). Can be sued to update internal node's data after paste operation from the original data. + public virtual void OnPasted(System.Collections.Generic.Dictionary idsMapping) + { + } + /// /// Gets a value indicating whether this node uses dependent boxes. /// diff --git a/Source/Editor/Surface/VisjectSurface.CopyPaste.cs b/Source/Editor/Surface/VisjectSurface.CopyPaste.cs index fd27315e6..62aaccc73 100644 --- a/Source/Editor/Surface/VisjectSurface.CopyPaste.cs +++ b/Source/Editor/Surface/VisjectSurface.CopyPaste.cs @@ -419,6 +419,10 @@ namespace FlaxEditor.Surface { node.Value.OnSpawned(SurfaceNodeActions.Paste); } + foreach (var node in nodes) + { + node.Value.OnPasted(idsMapping); + } // Add undo action if (Undo != null && nodes.Count > 0)