Пример #1
0
        protected override void DeserializeFromData(DataObject data)
        {
            ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.Convert);

            if (convert.CanPerform(this.editedCmpType))
            {
                var refQuery = convert.Perform(this.editedCmpType);
                if (refQuery != null)
                {
                    Component[] refArray = refQuery.Cast <Component>().ToArray();
                    this.component = (refArray != null && refArray.Length > 0) ? refArray[0] : null;
                    this.PerformSetValue();
                    this.PerformGetValue();
                    this.OnEditingFinished(FinishReason.LeapValue);
                }
            }
            else if (convert.CanPerform(typeof(GameObject)))
            {
                GameObject obj = convert.Perform <GameObject>().FirstOrDefault();
                Component  cmp = obj != null?obj.GetComponent(this.editedCmpType) : null;

                if (cmp != null)
                {
                    this.component = cmp;
                    this.PerformSetValue();
                    this.PerformGetValue();
                    this.OnEditingFinished(FinishReason.LeapValue);
                }
            }
        }
Пример #2
0
        protected override int GetPreviewHash()
        {
            if (this.contentPath == null)
            {
                return(0);
            }

            IContentRef contentRef = new ContentRef <Resource>(null, this.contentPath);

            if (!contentRef.IsAvailable)
            {
                return(0);
            }

            ConvertOperation convOp = new ConvertOperation(new[] { contentRef.Res }, ConvertOperation.Operation.Convert);

            if (convOp.CanPerform <Pixmap>())
            {
                Pixmap       basePx      = convOp.Perform <Pixmap>().FirstOrDefault();
                Pixmap.Layer basePxLayer = basePx != null ? basePx.MainLayer : null;
                return(basePxLayer != null?basePxLayer.GetHashCode() : 0);
            }
            else if (convOp.CanPerform <AudioData>())
            {
                AudioData audioData = convOp.Perform <AudioData>().FirstOrDefault();
                return((audioData != null && audioData.OggVorbisData != null) ? audioData.OggVorbisData.GetHashCode() : 0);
            }

            return(this.contentPath.GetHashCode());
        }
        protected override bool CanDeserializeFromData(DataObject data)
        {
            ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.Convert);
            if (convert.CanPerform(this.editedCmpType)) return true;

            if (convert.CanPerform(typeof(GameObject)))
            {
                GameObject obj = convert.Perform<GameObject>().FirstOrDefault();
                return obj != null && obj.GetComponent(this.editedCmpType) != null;
            }

            return false;
        }
        protected override void OnDragDrop(DragEventArgs e)
        {
            // Check children first. Only accept the drop if they don't
            e.Effect = DragDropEffects.None;
            base.OnDragDrop(e);
            if (e.Effect != DragDropEffects.None)
            {
                return;
            }

            DataObject dragDropData = e.Data as DataObject;

            if (!this.ReadOnly && dragDropData != null)
            {
                ConvertOperation convert = new ConvertOperation(dragDropData, ConvertOperation.Operation.All);
                if (convert.CanPerform <Sound>())
                {
                    // Accept drop
                    e.Effect = e.AllowedEffect;

                    UndoRedoManager.Do(new CreateSoundEmitterSourceAction(
                                           this.GetValue().Cast <SoundEmitter>(),
                                           convert.Perform <Sound>().Select(s => new SoundEmitter.Source(s))));
                }
            }
        }
 protected override void DeserializeFromData(DataObject data)
 {
     ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.Convert);
     if (convert.CanPerform(this.editedCmpType))
     {
         var refQuery = convert.Perform(this.editedCmpType);
         if (refQuery != null)
         {
             Component[] refArray = refQuery.Cast<Component>().ToArray();
             this.component = (refArray != null && refArray.Length > 0) ? refArray[0] : null;
             this.PerformSetValue();
             this.PerformGetValue();
             this.OnEditingFinished(FinishReason.LeapValue);
         }
     }
     else if (convert.CanPerform(typeof(GameObject)))
     {
         GameObject obj = convert.Perform<GameObject>().FirstOrDefault();
         Component cmp = obj != null ? obj.GetComponent(this.editedCmpType) : null;
         if (cmp != null)
         {
             this.component = cmp;
             this.PerformSetValue();
             this.PerformGetValue();
             this.OnEditingFinished(FinishReason.LeapValue);
         }
     }
 }
Пример #6
0
        protected override void OnKeyDown(KeyEventArgs e)
        {
            if (e.KeyCode == Keys.C && e.Control)
            {
                DataObject data = new DataObject();
                data.SetBatchInfos(new[] { this.DisplayedValue as BatchInfo });
                Clipboard.SetDataObject(data);
                e.Handled = true;
            }
            else if (e.KeyCode == Keys.V && e.Control)
            {
                DataObject              data     = Clipboard.GetDataObject() as DataObject;
                ConvertOperation        convert  = new ConvertOperation(data, ConvertOperation.Operation.All);
                IEnumerable <BatchInfo> refQuery = null;
                if (convert.CanPerform <BatchInfo>() && (refQuery = convert.Perform <BatchInfo>()) != null)
                {
                    this.SetValue(refQuery.FirstOrDefault());
                    this.PerformGetValue();
                    this.OnEditingFinished(FinishReason.LeapValue);
                }
                else
                {
                    System.Media.SystemSounds.Beep.Play();
                }

                e.Handled = true;
            }
            base.OnKeyDown(e);
        }
Пример #7
0
        protected override bool CanDeserializeFromData(DataObject data)
        {
            ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.Convert);

            if (convert.CanPerform(this.editedCmpType))
            {
                return(true);
            }

            if (convert.CanPerform(typeof(GameObject)))
            {
                GameObject obj = convert.Perform <GameObject>().FirstOrDefault();
                return(obj != null && obj.GetComponent(this.editedCmpType) != null);
            }

            return(false);
        }
Пример #8
0
		protected override void DeserializeFromData(DataObject data)
		{
			ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.All);
			if (convert.CanPerform(this.editedResType))
			{
				var refQuery = convert.Perform(this.editedResType);
				if (refQuery != null)
				{
					Resource[] refArray = refQuery.Cast<Resource>().ToArray();
					UpdateContentPath((refArray != null && refArray.Length > 0) ? refArray[0].Path : null);
				}
			}
		}
Пример #9
0
        public override bool CanConvertFrom(ConvertOperation convert)
        {
            if (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.CreateRes))
            {
                return convert.CanPerform<Pixmap>();
            }

            if (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.Convert))
            {
                List<Pixmap> availData = convert.Perform<Pixmap>(ConvertOperation.Operation.Convert).ToList();
                return availData.Any(t => this.FindMatch(t) != null);
            }

            return false;
        }
Пример #10
0
        public override bool CanConvertFrom(ConvertOperation convert)
        {
            if (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.CreateRes))
            {
                return(convert.CanPerform <Pixmap>());
            }

            if (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.Convert))
            {
                List <Pixmap> availData = convert.Perform <Pixmap>(ConvertOperation.Operation.Convert).ToList();
                return(availData.Any(t => this.FindMatch(t) != null));
            }

            return(false);
        }
Пример #11
0
        protected override void OnDragEnter(DragEventArgs e)
        {
            base.OnDragEnter(e);
            DataObject data = e.Data as DataObject;
            var        op   = new ConvertOperation(data, ConvertOperation.Operation.All);

            if (op.CanPerform <Pixmap>())
            {
                e.Effect = e.AllowedEffect;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }
 protected override void DeserializeFromData(DataObject data)
 {
     ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.Convert);
     if (convert.CanPerform(typeof(GameObject)))
     {
         var refQuery = convert.Perform(typeof(GameObject));
         if (refQuery != null)
         {
             GameObject[] refArray = refQuery.Cast<GameObject>().ToArray();
             this.gameObj = (refArray != null && refArray.Length > 0) ? refArray[0] : null;
             this.PerformSetValue();
             this.PerformGetValue();
             this.OnEditingFinished(FinishReason.LeapValue);
         }
     }
 }
Пример #13
0
        public override bool CanConvertFrom(ConvertOperation convert)
        {
            if (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.CreateRes))
            {
                return(convert.CanPerform <AudioData>());
            }

            if (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.Convert))
            {
                List <AudioData> availData = convert.Perform <AudioData>(ConvertOperation.Operation.Convert).ToList();
                return(availData.Any(t =>
                                     this.FindMatchingResources <AudioData, Sound>(t, IsMatch)
                                     .Any()));
            }

            return(false);
        }
Пример #14
0
        protected override void DeserializeFromData(DataObject data)
        {
            ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.All);

            if (convert.CanPerform(this.editedResType))
            {
                var refQuery = convert.Perform(this.editedResType);
                if (refQuery != null)
                {
                    Resource[] refArray = refQuery.Cast <Resource>().ToArray();
                    this.contentPath = (refArray != null && refArray.Length > 0) ? refArray[0].Path : null;
                    this.PerformSetValue();
                    this.PerformGetValue();
                    this.OnEditingFinished(FinishReason.LeapValue);
                }
            }
        }
Пример #15
0
        protected override void DeserializeFromData(DataObject data)
        {
            ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.Convert);

            if (convert.CanPerform(typeof(GameObject)))
            {
                var refQuery = convert.Perform(typeof(GameObject));
                if (refQuery != null)
                {
                    GameObject[] refArray = refQuery.Cast <GameObject>().ToArray();
                    this.gameObj = (refArray != null && refArray.Length > 0) ? refArray[0] : null;
                    this.PerformSetValue();
                    this.PerformGetValue();
                    this.OnEditingFinished(FinishReason.LeapValue);
                }
            }
        }
Пример #16
0
        public override bool CanConvertFrom(ConvertOperation convert)
        {
            if (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.CreateRes))
            {
                return convert.CanPerform<Texture>();
            }

            if (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.Convert))
            {
                List<Texture> availData = convert.Perform<Texture>(ConvertOperation.Operation.Convert).ToList();
                return availData.Any(t =>
                    this.FindMatchingResources<Texture,Material>(t, IsMatch)
                    .Any());
            }

            return false;
        }
Пример #17
0
		protected override void OnDragDrop(DragEventArgs e)
		{
			// Check children first. Only accept the drop if they don't
			e.Effect = DragDropEffects.None;
			base.OnDragDrop(e);
			if (e.Effect != DragDropEffects.None) return;

			DataObject dragDropData = e.Data as DataObject;
			if (!this.ReadOnly && dragDropData != null)
			{
				ConvertOperation convert = new ConvertOperation(dragDropData, ConvertOperation.Operation.All);
				if (convert.CanPerform<Sound>())
				{
					// Accept drop
					e.Effect = e.AllowedEffect;

					UndoRedoManager.Do(new CreateSoundEmitterSourceAction(
						this.GetValue().Cast<SoundEmitter>(), 
						convert.Perform<Sound>().Select(s => new SoundEmitter.Source(s))));
				}
			}
		}
Пример #18
0
 public override bool CanConvertFrom(ConvertOperation convert)
 {
     return
         convert.AllowedOperations.HasFlag(ConvertOperation.Operation.CreateRes) &&
         convert.CanPerform<BatchInfo>();
 }
Пример #19
0
        protected override int GetPreviewHash()
        {
            if (this.contentPath == null) return 0;

            IContentRef contentRef = new ContentRef<Resource>(null, this.contentPath);
            if (!contentRef.IsAvailable) return 0;

            ConvertOperation convOp = new ConvertOperation(new[] { contentRef.Res }, ConvertOperation.Operation.Convert);
            if (convOp.CanPerform<Pixmap>())
            {
                Pixmap basePx = convOp.Perform<Pixmap>().FirstOrDefault();
                PixelData basePxLayer = basePx != null ? basePx.MainLayer : null;
                return basePxLayer != null ? basePxLayer.GetHashCode() : 0;
            }
            else if (convOp.CanPerform<AudioData>())
            {
                AudioData audioData = convOp.Perform<AudioData>().FirstOrDefault();
                return (audioData != null && audioData.OggVorbisData != null) ? audioData.OggVorbisData.GetHashCode() : 0;
            }

            return this.contentPath.GetHashCode();
        }
Пример #20
0
 public override bool CanConvertFrom(ConvertOperation convert)
 {
     return
         convert.AllowedOperations.HasFlag(ConvertOperation.Operation.CreateObj) &&
         convert.CanPerform<Material>();
 }
Пример #21
0
 public override bool CanConvertFrom(ConvertOperation convert)
 {
     return
         (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.Convert) &&
          convert.CanPerform <Texture>());
 }
Пример #22
0
 protected override void DeserializeFromData(DataObject data)
 {
     ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.All);
     if (convert.CanPerform(this.editedResType))
     {
         var refQuery = convert.Perform(this.editedResType);
         if (refQuery != null)
         {
             Resource[] refArray = refQuery.Cast<Resource>().ToArray();
             this.contentPath = (refArray != null && refArray.Length > 0) ? refArray[0].Path : null;
             this.PerformSetValue();
             this.PerformGetValue();
             this.OnEditingFinished(FinishReason.LeapValue);
         }
     }
 }
Пример #23
0
 public override bool CanConvertFrom(ConvertOperation convert)
 {
     return
         (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.CreateRes) &&
          convert.CanPerform <BatchInfo>());
 }
Пример #24
0
        private void objectView_DragDrop(object sender, DragEventArgs e)
        {
            this.objectView.BeginUpdate();

            bool effectMove = (e.Effect & DragDropEffects.Move) != DragDropEffects.None;
            bool effectCopy = (e.Effect & DragDropEffects.Copy) != DragDropEffects.None;
            DataObject data = e.Data as DataObject;
            if (data != null)
            {
                ConvertOperation convertOp = new ConvertOperation(data, ConvertOperation.Operation.All);
                this.tempDropTarget = this.DragDropGetTargetNode();
                if (data.ContainsGameObjectRefs())
                {
                    this.tempDropData = data.GetGameObjectRefs();

                    // Display context menu if both moving and copying are availabled
                    if (effectMove && effectCopy)
                        this.contextMenuDragMoveCopy.Show(this, this.PointToClient(new Point(e.X, e.Y)));
                    else if (effectCopy)
                        this.copyHereToolStripMenuItem_Click(this, null);
                    else if (effectMove)
                        this.moveHereToolStripMenuItem_Click(this, null);
                }
                else if (data.ContainsComponentRefs())
                {
                    this.tempDropData = data.GetComponentRefs();

                    // Display context menu if both moving and copying are availabled
                    if (effectMove && effectCopy)
                        this.contextMenuDragMoveCopy.Show(this, this.PointToClient(new Point(e.X, e.Y)));
                    else if (effectCopy)
                        this.copyHereToolStripMenuItem_Click(this, null);
                    else if (effectMove)
                        this.moveHereToolStripMenuItem_Click(this, null);
                }
                else if (this.tempDropTarget != null && convertOp.CanPerform<Component>())
                {
                    GameObject dropObj = null;
                    if (this.tempDropTarget is GameObjectNode)
                        dropObj = (this.tempDropTarget as GameObjectNode).Obj;
                    else
                        dropObj = (this.tempDropTarget as ComponentNode).Component.GameObj;

                    var componentQuery = convertOp.Perform<Component>();
                    if (componentQuery != null)
                    {
                        // Create Components
                        CreateComponentAction createAction = new CreateComponentAction(dropObj, componentQuery.Where(c => c.GameObj == null));
                        UndoRedoManager.BeginMacro();
                        UndoRedoManager.Do(new DeleteComponentAction(componentQuery.Select(c => dropObj.GetComponent(c.GetType())).NotNull()));
                        UndoRedoManager.Do(createAction);
                        UndoRedoManager.EndMacro(UndoRedoManager.MacroDeriveName.FromLast);

                        bool selCleared = false;
                        foreach (Component newComponent in createAction.Result)
                        {
                            NodeBase dataNode = this.FindNode(newComponent);
                            if (dataNode == null) continue;
                            TreeNodeAdv viewNode = this.objectView.FindNode(this.objectModel.GetPath(dataNode));
                            if (viewNode == null) continue;
                            if (!selCleared)
                            {
                                this.objectView.ClearSelection();
                                selCleared = true;
                            }
                            viewNode.IsSelected = true;
                            this.objectView.EnsureVisible(viewNode);
                        }
                    }
                }
                else if (convertOp.CanPerform<GameObject>())
                {
                    GameObject dropObj = (this.tempDropTarget is GameObjectNode) ? (this.tempDropTarget as GameObjectNode).Obj : null;
                    var gameObjQuery = convertOp.Perform<GameObject>();
                    if (gameObjQuery != null)
                    {
                        CreateGameObjectAction action = new CreateGameObjectAction(dropObj, gameObjQuery);
                        UndoRedoManager.Do(action);

                        bool selCleared = false;
                        foreach (GameObject newObj in action.Result)
                        {
                            NodeBase dataNode = this.FindNode(newObj);
                            if (dataNode == null) continue;
                            TreeNodeAdv viewNode = this.objectView.FindNode(this.objectModel.GetPath(dataNode));
                            if (viewNode == null) continue;
                            if (!selCleared)
                            {
                                this.objectView.ClearSelection();
                                selCleared = true;
                            }
                            viewNode.IsSelected = true;
                            this.objectView.EnsureVisible(viewNode);
                        }
                    }
                }
            }

            this.objectView.EndUpdate();
        }
Пример #25
0
 public override bool CanConvertFrom(ConvertOperation convert)
 {
     return
         (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.CreateObj) &&
          convert.CanPerform <AtlasViewer.TabItemInfo>());
 }
 protected override void DeserializeFromData(DataObject data)
 {
     ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.All);
     if (convert.CanPerform(this.editedResType))
     {
         var refQuery = convert.Perform(this.editedResType);
         if (refQuery != null)
         {
             Resource[] refArray = refQuery.Cast<Resource>().ToArray();
             UpdateContentPath((refArray != null && refArray.Length > 0) ? refArray[0].Path : null);
         }
     }
 }
Пример #27
0
 public override bool CanConvertFrom(ConvertOperation convert)
 {
     return
         convert.AllowedOperations.HasFlag(ConvertOperation.Operation.Convert) &&
         convert.CanPerform<Texture>();
 }
Пример #28
0
 public override bool CanConvertFrom(ConvertOperation convert)
 {
     return
         (convert.AllowedOperations.HasFlag(ConvertOperation.Operation.CreateObj) &&
          convert.CanPerform <Material>());
 }
Пример #29
0
        protected override void OnKeyDown(KeyEventArgs e)
        {
            if (e.KeyCode == Keys.C && e.Control)
            {
                DataObject data = new DataObject();
                data.SetBatchInfos(new[] { this.DisplayedValue as BatchInfo });
                Clipboard.SetDataObject(data);
                e.Handled = true;
            }
            else if (e.KeyCode == Keys.V && e.Control)
            {
                DataObject data = Clipboard.GetDataObject() as DataObject;
                ConvertOperation convert = new ConvertOperation(data, ConvertOperation.Operation.All);
                IEnumerable<BatchInfo> refQuery = null;
                if (convert.CanPerform<BatchInfo>() && (refQuery = convert.Perform<BatchInfo>()) != null)
                {
                    this.SetValue(refQuery.FirstOrDefault());
                    this.PerformGetValue();
                    this.OnEditingFinished(FinishReason.LeapValue);
                }
                else
                    System.Media.SystemSounds.Beep.Play();

                e.Handled = true;
            }
            base.OnKeyDown(e);
        }