private static Types.MyAssetHierarchy BuildHierarchy(int rootCount, int depth, int childPerPart) { var asset = new Types.MyAssetHierarchy(); var guid = 0; for (var i = 0; i < rootCount; ++i) { var rootPart = BuildPart(asset, $"Part{i + 1}", depth - 1, childPerPart, ref guid); asset.Hierarchy.RootParts.Add(rootPart.Part); } return(asset); }
private static Types.MyPartDesign BuildPart(Types.MyAssetHierarchy asset, string name, int depth, int childPerPart, ref int guidCount) { var part = new Types.MyPartDesign { Part = new Types.MyPart { Id = GuidGenerator.Get(++guidCount), Name = name } }; asset.Hierarchy.Parts.Add(part); if (depth <= 0) { return(part); } for (var i = 0; i < childPerPart; ++i) { var child = BuildPart(asset, name + $"-{i + 1}", depth - 1, childPerPart, ref guidCount); part.Part.AddChild(child.Part); } return(part); }