public MoveVariableDeclarationAction(IVariableDeclarationModel variableDeclarationModel, IHasVariableDeclaration destination) { VariableDeclarationModel = variableDeclarationModel; Destination = destination; }
public void MoveVariableDeclaration(IVariableDeclarationModel variableDeclarationModel, IHasVariableDeclaration destination) { var currentOwner = variableDeclarationModel.Owner; var model = (VariableDeclarationModel)variableDeclarationModel; Undo.RegisterCompleteObjectUndo(model.SerializableAsset, "Move Variable Declaration"); currentOwner.VariableDeclarations.Remove(model); destination.VariableDeclarations.Add(model); LastChanges.ChangedElements.Add(model); model.Owner = destination; }
public void MoveVariableDeclaration(IVariableDeclarationModel variableDeclarationModel, IHasVariableDeclaration destination) { var currentOwner = variableDeclarationModel.Owner; var model = (VariableDeclarationModel)variableDeclarationModel; Undo.RegisterCompleteObjectUndo(GetUnityObjectBehindInstance(currentOwner), "Move Variable Declaration"); Undo.RegisterCompleteObjectUndo(GetUnityObjectBehindInstance(destination), "Move Variable Declaration"); Undo.RegisterCompleteObjectUndo(model, "Move Variable Declaration"); currentOwner.VariableDeclarations.Remove(model); destination.VariableDeclarations.Add(model); LastChanges.ChangedElements.Add(model); model.Owner = destination; Object GetUnityObjectBehindInstance(IHasVariableDeclaration container) { if (container is INodeModel nodeModel) { return(nodeModel.NodeAssetReference); } if (container is VSGraphModel vsGraphModel) { return(vsGraphModel); } return(null); } }