private static AssetItem ImportSkeleton(List <AssetItem> assetReferences, UFile assetSource, UFile localPath, EntityInfo entityInfo) { var asset = new SkeletonAsset { Source = assetSource }; if (entityInfo.Nodes != null) { foreach (var node in entityInfo.Nodes) { var nodeInfo = new NodeInformation(node.Name, node.Depth, node.Preserve); asset.Nodes.Add(nodeInfo); } } if (entityInfo.AnimationNodes != null && entityInfo.AnimationNodes.Count > 0) { asset.PreserveNodes(entityInfo.AnimationNodes); } var skeletonUrl = new UFile(localPath.GetFileName() + " Skeleton"); var assetItem = new AssetItem(skeletonUrl, asset); assetReferences.Add(assetItem); return(assetItem); }
private static AssetItem ImportSkeleton(List <AssetItem> assetReferences, UFile assetSource, UFile localPath, EntityInfo entityInfo) { var asset = new SkeletonAsset { Source = assetSource }; if (entityInfo.Nodes != null) { for (int i = 0; i < entityInfo.Nodes.Count; i++) { var node = entityInfo.Nodes[i]; var nodeInfo = new NodeInformation(node.Name, node.Depth, node.Preserve); // Try to keep identifier id consistent // TODO: We might remove this as we don't expect Skeleton asset to be inherited, but they could int sameNameAndDepthCount = 0; for (int j = 0; j < i; j++) { var againstNode = entityInfo.Nodes[i]; // If we found a node with the same name and depth, we use a increment a counter if (againstNode.Name == node.Name && againstNode.Depth == node.Depth) { sameNameAndDepthCount++; } } var nodeNameKey = nodeInfo.Name + nodeInfo.Depth + ((sameNameAndDepthCount > 0) ? "_" + sameNameAndDepthCount : string.Empty); var nodeId = ObjectId.FromBytes(Encoding.UTF8.GetBytes(nodeNameKey)).ToGuid(); IdentifiableHelper.SetId(nodeInfo, nodeId); asset.Nodes.Add(nodeInfo); } } if (entityInfo.AnimationNodes != null && entityInfo.AnimationNodes.Count > 0) { asset.PreserveNodes(entityInfo.AnimationNodes); } var skeletonUrl = new UFile(localPath.GetFileName() + " Skeleton"); var assetItem = new AssetItem(skeletonUrl, asset); assetReferences.Add(assetItem); return(assetItem); }
private static AssetItem ImportSkeleton(List<AssetItem> assetReferences, UFile assetSource, UFile localPath, EntityInfo entityInfo) { var asset = new SkeletonAsset { Source = assetSource }; if (entityInfo.Nodes != null) { foreach (var node in entityInfo.Nodes) { var nodeInfo = new NodeInformation(node.Name, node.Depth, node.Preserve); asset.Nodes.Add(nodeInfo); } } if (entityInfo.AnimationNodes != null && entityInfo.AnimationNodes.Count > 0) asset.PreserveNodes(entityInfo.AnimationNodes); var skeletonUrl = new UFile(localPath.GetFileName() + " Skeleton"); var assetItem = new AssetItem(skeletonUrl, asset); assetReferences.Add(assetItem); return assetItem; }