Beispiel #1
0
 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;
        }
Beispiel #3
0
        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);
            }
        }