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