Esempio n. 1
0
        public void UnExecute()
        {
            StageView   stage   = MainForm.CurrentStage;
            Library     lib     = MainForm.CurrentLibrary;
            LibraryView libView = MainForm.CurrentLibraryView;

            for (int i = removedTreeNodes.Length - 1; i >= 0; i--)
            {
                LibraryTreeNode liv = removedTreeNodes[i];
                lib.AddLibraryItem(liv.item);
                libView.InsertNode(liv, removedPaths[i], removedIndexes[i]);
            }

            // todo: need to readd bonds and snaps.
            for (int i = removedInstances.Length - 1; i >= 0; i--)
            {
                stage.AddInstance(removedInstances[i]);
            }

            libView.SelectNode(selectedNode);


            removedInstances = null;
            removedTreeNodes = null;
            removedPaths     = null;
            removedIndexes   = null;
            selectedNode     = null;

            stage.InvalidateAll();
            libView.RefreshCurrentNode();
        }
Esempio n. 2
0
        private void dragDrop(object sender, DragEventArgs args)
        {
            LibraryTreeNode node = (LibraryTreeNode)args.Data.GetData(typeof(LibraryTreeNode));


            FileDescriptor fDesc = FileManager.Instance.lookUp(node.FilePath);
            TypeDescriptor tDesc = null;

            if (fDesc is TypeDescriptor)
            {
                tDesc = (TypeDescriptor)fDesc;
            }
            else if (fDesc is ArtDescriptor)
            {
                tDesc = CoreTypes.getType <SimpleObject>();
            }



            if (tDesc != null)
            {
                InstanceDescriptor inst = new InstanceDescriptor(Descriptor.Level);
                inst.Sprite        = new Sprite(WhiskeyControl.Renderer, WhiskeyControl.Resources, inst.Sprite);
                inst.Light.Visible = false;

                inst.initialize(tDesc);

                Point p = PointToClient(new Point(args.X, args.Y - ToolStrip.Height));

                inst.Position = new Vector(p.X, p.Y);// -inst.Bounds.Size / 2;
                inst.Position = WhiskeyControl.ActiveCamera.getGameCoordinate(inst.Position);

                inst.X = inst.Position.X;
                inst.Y = inst.Position.Y;

                SelectionManager.Instance.SelectedInstance = inst;

                Dirty = true;

                if (fDesc is ArtDescriptor)
                {
                    ArtDescriptor aDesc = (ArtDescriptor)fDesc;
                    inst.Sprite.ImagePath = aDesc.Name;
                    inst.Sprite.Scale     = Vector.One;
                }

                Descriptor.Level.updateAll();
            }
        }
Esempio n. 3
0
 private void dragEnter(object sender, DragEventArgs args)
 {
     if (args.Data.GetData(typeof(LibraryTreeNode)) is LibraryTreeNode)
     {
         LibraryTreeNode node  = (LibraryTreeNode)args.Data.GetData(typeof(LibraryTreeNode));
         FileDescriptor  fDesc = FileManager.Instance.lookUp(node.FilePath);
         if (fDesc != null && (fDesc is TypeDescriptor || fDesc.GetType().IsSubclassOf(typeof(TypeDescriptor))))
         {
             args.Effect = DragDropEffects.All;
         }
         if (fDesc != null && (fDesc is ArtDescriptor))
         {
             args.Effect = DragDropEffects.All;
         }
     }
 }
Esempio n. 4
0
        public void Execute()
        {
            StageView   stage   = MainForm.CurrentStage;
            Library     lib     = MainForm.CurrentLibrary;
            LibraryView libView = MainForm.CurrentLibraryView;

            List <LibraryTreeNode> remNodes   = new List <LibraryTreeNode>();
            List <string>          remPaths   = new List <string>();
            List <int>             remIndexes = new List <int>();

            selectedNode = libView.GetSelectedNode();

            for (int i = 0; i < libraryIds.Length; i++)
            {
                uint id = libraryIds[i];

                uint[] uis = lib.FindAllUsagesOfDefinition(id);
                removedInstances = stage.RemoveInstancesByIdGlobal(uis);

                LibraryItem li = lib[id];
                if (li != null)
                {
                    TreeNode tn = libView.FindNode(id);

                    if (tn != null && tn is LibraryTreeNode)
                    {
                        LibraryTreeNode liv = (LibraryTreeNode)tn;
                        remNodes.Add(liv);
                        remPaths.Add(liv.FullPath);
                        remIndexes.Add(liv.Index);

                        lib.RemoveLibraryItem(liv.item);
                        tn.Remove();
                    }
                }
            }

            removedTreeNodes = remNodes.ToArray();
            removedPaths     = remPaths.ToArray();
            removedIndexes   = remIndexes.ToArray();
            stage.InvalidateAll();
            libView.RefreshCurrentNode();
        }
        private void dragDrop(object sender, DragEventArgs args)
        {
            LibraryTreeNode node  = (LibraryTreeNode)args.Data.GetData(typeof(LibraryTreeNode));
            FileDescriptor  fDesc = FileManager.Instance.lookUp(node.FilePath);

            if (fDesc is ScriptDescriptor)
            {
                ScriptDescriptor sDesc = (ScriptDescriptor)fDesc;
                if (sDesc.TargetTypeName.Equals(Descriptor.TypeDescriptorInFileManager.Name))
                {
                    Descriptor.addScript(sDesc.Name);

                    Refresh();
                }
            }

            //LibraryTreeNode node = (LibraryTreeNode)args.Data.GetData(typeof(LibraryTreeNode));


            //FileDescriptor fDesc = FileManager.Instance.lookUp(node.FilePath);
            //if (fDesc is TypeDescriptor)
            //{
            //    TypeDescriptor tDesc = (TypeDescriptor)fDesc;

            //    InstanceDescriptor inst = new InstanceDescriptor(tDesc, Descriptor.Level);
            //    inst.Sprite = new Sprite(WhiskeyControl.Renderer, inst.Sprite);


            //    //inst.Sprite.Scale *= 50;
            //    Point p = PointToClient(new Point(args.X, args.Y - ToolStrip.Height));

            //    inst.Position = new Vector(p.X, p.Y) - inst.Bounds.Size / 2;

            //    inst.X = inst.Position.X;
            //    inst.Y = inst.Position.Y;

            //    //Descriptor.Level.Descriptors.Add(inst);
            //    Dirty = true;
            //}


            // save(new DefaultProgressNotifier());
        }
        private void dragEnter(object sender, DragEventArgs args)
        {
            if (args.Data.GetData(typeof(LibraryTreeNode)) is LibraryTreeNode)
            {
                LibraryTreeNode node = (LibraryTreeNode)args.Data.GetData(typeof(LibraryTreeNode));



                FileDescriptor fDesc = FileManager.Instance.lookUp(node.FilePath);
                if (fDesc != null && fDesc is ScriptDescriptor)
                {
                    ScriptDescriptor sDesc = (ScriptDescriptor)fDesc;
                    if (sDesc.TargetTypeName.Equals(Descriptor.TypeDescriptorInFileManager.Name))
                    {
                        args.Effect = DragDropEffects.All;
                    }
                }
            }
        }