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(); } }