Exemplo n.º 1
0
        public void TestCopyPasteEntityAtRoot()
        {
            var sceneAsset = new SceneAsset();
            var entity     = new EntityDesign {
                Entity = new Entity {
                    Id = GuidGenerator.Get(1)
                }
            };

            entity.Entity.Transform.Position = Vector3.UnitZ;
            sceneAsset.Hierarchy.RootParts.Add(entity.Entity);
            sceneAsset.Hierarchy.Parts.Add(entity);

            var assetTest = new CopyPasteTest <SceneAsset>(sceneAsset);
            var service   = TestHelper.CreateCopyPasteService();

            service.PropertyGraphContainer.RegisterGraph(assetTest.AssetGraph);
            var clipboard = Copy(service, assetTest.AssetGraph, new[] { entity });

            Paste(service, clipboard, assetTest.AssetGraph, null, null);
            Assert.Equal(2, assetTest.Asset.Hierarchy.Parts.Count);
            Assert.True(assetTest.Asset.Hierarchy.Parts.Values.Contains(entity));

            var pastedEntity = assetTest.Asset.Hierarchy.Parts.Values.Single(x => x != entity);

            Assert.Equal(2, assetTest.Asset.Hierarchy.RootParts.Count);
            Assert.Contains(pastedEntity.Entity, assetTest.Asset.Hierarchy.RootParts);
            Assert.Equal(string.Empty, pastedEntity.Folder);
            Assert.NotEqual(entity.Entity.Id, pastedEntity.Entity.Id);
            Assert.NotEqual(entity.Entity.Transform.Id, pastedEntity.Entity.Transform.Id);
            Assert.Equal(Vector3.UnitZ, pastedEntity.Entity.Transform.Position);
        }
 public EntityViewModel(EntityDesign entityDesign)
 {
     Name       = entityDesign.Entity.Name;
     IsFolder   = false;
     Source     = entityDesign;
     Components = Source.Entity.Components.Select(comp => new EntityComponentViewModel(comp)).ToList();
 }
 public EntityViewModel(EntityDesign entityDesign, IAssetEditor editor)
 {
     Name       = entityDesign.Entity.Name;
     IsFolder   = false;
     Source     = entityDesign;
     Editor     = editor;
     Components = Source.Entity.Components.Select(comp => new EntityComponentViewModel(comp, editor)).ToList();
 }
Exemplo n.º 4
0
        private static void Paste([NotNull] ICopyPasteService service, string text, [NotNull] EntityHierarchyPropertyGraph assetGraph, EntityDesign target, string folderName)
        {
            var data = service.DeserializeCopiedData(text, assetGraph.Asset, typeof(Entity));

            Assert.NotNull(data);
            Assert.NotNull(data.Items);
            Assert.Equal(1, data.Items.Count);

            var item = data.Items[0];

            Assert.NotNull(item);
            Assert.NotNull(item.Data);
            Assert.NotNull(item.Processor);

            var targetNode = target != null?assetGraph.Container.NodeContainer.GetNode(target.Entity) : assetGraph.RootNode;

            var nodeAccessor      = new NodeAccessor(targetNode, NodeIndex.Empty);
            var propertyContainer = new PropertyContainer {
                { EntityHierarchyPasteProcessor.TargetFolderKey, folderName }
            };

            item.Processor.Paste(item, assetGraph, ref nodeAccessor, ref propertyContainer);
        }