private static void DrawEditableDependency(ref PackageDependencyId [] dependencies) { for (int i = 0; i < dependencies.Length; i++) { GUILayout.BeginHorizontal(); dependencies[i].m_nameId = GUILayout.TextField(dependencies[i].m_nameId); dependencies[i].m_nameId = UnityPaths.NamespaceTrim(dependencies[i].m_nameId); dependencies[i].m_versionOrGitUrl = GUILayout.TextField(dependencies[i].m_versionOrGitUrl); if (string.IsNullOrEmpty(dependencies[i].m_versionOrGitUrl)) { dependencies[i].m_versionOrGitUrl = "0.0.0"; } GUILayout.EndHorizontal(); } if (GUILayout.Button("Add Dependency")) { List <PackageDependencyId> d = dependencies.ToList(); d.Add(new PackageDependencyId()); dependencies = d.ToArray(); } if (GUILayout.Button("Remove Empty")) { List <PackageDependencyId> d = dependencies.ToList(); dependencies = d.Where(k => k.m_nameId != null && k.m_nameId.Length > 0).ToArray(); } }
public static void GetGitsInParents(string path, out List <GitLinkOnDisk> links) { links = new List <GitLinkOnDisk>(); string[] parentsPath = UnityPaths.GetAllParents(path, true); for (int i = 0; i < parentsPath.Length; i++) { if (IsPathContaintGitRoot(parentsPath[i])) { GitLinkOnDisk gd = new GitLinkOnDisk(parentsPath[i]); links.Add(gd); } } }
public string GetProjectNamespaceId(bool useLower = false) { string id = string.Format("{0}.{1}.{2}", UnityPaths.AlphaNumeric(m_country), UnityPaths.AlphaNumeric(m_company), UnityPaths.AlphaNumeric(m_projectAlphNumId)); if (useLower) { id = id.ToLower(); } return(id); }
public FileStream(string folderPath, string fileName, string defaultIfNonExisting, params string[] extension) { bool foundOne; string filePathFound; defaultIfNonExisting = UnityPaths.StartByPoint(defaultIfNonExisting); UnityPaths.GetPathOf(folderPath, fileName, extension, out foundOne, out filePathFound); if (foundOne) { m_pathToFile = filePathFound; } else { m_pathToFile = (folderPath + "/" + fileName + defaultIfNonExisting); } }
private static string GetSamplesCompress(SampleInfo[] samples) { string[] tokens = new string[samples.Length]; string result = ""; for (int i = 0; i < samples.Length; i++) { result = ""; result += "\n{"; result += string.Format("\n\"displayName\":\"{0}\" ,", samples[i].m_displayName); result += string.Format("\n\"description\":\"{0}\" ,", samples[i].m_description); result += string.Format("\n\"path\":\"{0}\"", UnityPaths.ReplaceByBackslash(samples[i].m_assetRelativePath)); result += "\n}"; tokens[i] = result; } return(string.Join(",\n", tokens)); }
public static string[] GetRelativeFoldersIn(SampleDirectoryStream samplesDir) { if (!samplesDir.Exist()) { return(new string[0]); } string path = samplesDir.GetCurrentPath(); string [] folders = Directory.GetDirectories(path); for (int i = 0; i < folders.Length; i++) { folders[i] = (samplesDir.IsVisible() ? "Samples/" : "Samples~/") + UnityPaths.GetRelativePath(path, folders[i]); Debug.Log(">>" + folders[i]); } return(folders); }
private static void LoadSamplesFromDirectoryToPackage(UnityPathSelectionInfo selection, ref PackageBuildInformation package) { SampleDirectoryStream samplesDir = SampleUtility.GetSampleFolder(selection); string[] folders = SampleUtility.GetRelativeFoldersIn(samplesDir); for (int i = 0; i < folders.Length; i++) { string name = folders[i]; name = UnityPaths.GetLastPartOfPath(name); package.m_samples.m_samples.Add(new SampleInfo() { m_displayName = name, m_assetRelativePath = folders[i], m_description = "" }); } }
public string GetNameSpace() { return(UnityPaths.NamespaceTrim(m_packageNamespaceId)); }
public void SetNameSpace(string namespaceID) { m_packageNamespaceId = UnityPaths.NamespaceTrim(namespaceID); }
void OnGUI() { if (m_info == null) { m_info = new Info(50); } m_info.m_scollrPackagePosition = GUILayout.BeginScrollView(m_info.m_scollrPackagePosition); if (m_info == null) { m_info = new Info(50); } if (GUILayout.Button("Refresh")) { m_gitInProject.Refresh(); } GUILayout.BeginHorizontal(); GitEditorDrawer.ButtonDeleteEmptyFiles(UnityPaths.GetUnityAssetsPath()); GitEditorDrawer.ButtonRefreshGitKeeper(UnityPaths.GetUnityAssetsPath()); GUILayout.EndHorizontal(); if (GUILayout.Button("Save Them All (Add>Commit)")) { m_gitInProject.AutoSaveLocal(); } if (GUILayout.Button("Push Them All (A>C>Pull>Push)")) { m_gitInProject.AutoSaveAndPush(); } m_info.m_inParent = EditorGUILayout.Toggle(" > Git(s) In Parent", m_info.m_inParent, EditorStyles.boldLabel); if (m_info.m_inParent) { List <GitLinkOnDisk> gits = m_gitInProject.GetParents(); if (gits.Count <= 0) { GUILayout.Label("None found"); } for (int i = 0; i < gits.Count; i++) { if (i >= m_info.m_tableCapacity) { break; } GitEditorDrawer.DisplayGitInfoWithCommand(gits[i], ref m_info.m_displayprojectsInfoParent[i], ref m_info.m_displayInfoInGitsParent[i]); EditorGUILayout.Space(); } } GUILayout.Space(space); m_info.m_inProject = EditorGUILayout.Toggle(" > Git(s) In Assets", m_info.m_inProject, EditorStyles.boldLabel); if (m_info.m_inProject) { List <GitLinkOnDisk> gits = m_gitInProject.GetGitInProject(); if (gits.Count <= 0) { GUILayout.Label("None found"); } for (int i = 0; i < gits.Count; i++) { if (i >= m_info.m_tableCapacity) { break; } GitEditorDrawer.DisplayGitInfoWithCommand(gits[i], ref m_info.m_displayprojectsInfoInProject[i], ref m_info.m_displayInfoInGitsInProject[i]); EditorGUILayout.Space(); } } GUILayout.Space(space); GUILayout.EndScrollView(); }
public static void DrawPackageEditor(UnityPathSelectionInfo selection, PackageJsonFileStream packageTarget, PackageBuildInformation package) { string path = packageTarget.GetAbsolutePath(); GitLinkOnDisk gitLinked = packageTarget.GetLinkedGit(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Create package.json")) { LoadSamplesFromDirectoryToPackage(selection, ref package); string json = PackageBuilder.GetPackageAsJson(package); packageTarget.Set(json, true); AssetDatabase.Refresh(); } if (GUILayout.Button("Create Files & Folders")) { PackageBuilder.CreateUnityPackage(packageTarget.GetPackageProjectRoot(), package); AssetDatabase.Refresh(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (string.IsNullOrEmpty(package.m_projectName)) { package.m_projectName = UnityPaths.AlphaNumeric(Application.productName); } package.m_projectName = (GUILayout.TextField("" + package.m_projectName)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (string.IsNullOrEmpty(package.m_projectAlphNumId)) { // package.m_projectAlphNumId = UnityPaths.AlphaNumeric(Application.productName, true); package.m_projectAlphNumId = selection.GetSelectName(true); } if (string.IsNullOrEmpty(package.m_company)) { package.m_company = UnityPaths.AlphaNumeric(Application.companyName); } package.m_country = UnityPaths.AlphaNumeric(GUILayout.TextField("" + package.m_country)); GUILayout.Label(".", GUILayout.Width(5)); package.m_company = UnityPaths.AlphaNumeric(GUILayout.TextField("" + package.m_company)); GUILayout.Label(".", GUILayout.Width(5)); package.m_projectAlphNumId = UnityPaths.AlphaNumeric(GUILayout.TextField("" + package.m_projectAlphNumId)); GUILayout.EndHorizontal(); GUILayout.Label("Namespace ID: " + package.GetProjectNamespaceId()); GUILayout.Label("Description"); package.m_description = GUILayout.TextArea(package.m_description, GUILayout.MinHeight(100)); GUILayout.BeginHorizontal(); GUILayout.Label("Tags:", GUILayout.MaxWidth(60)); package.m_keywords = GUILayout.TextField(string.Join(",", package.m_keywords)).Split(','); GUILayout.EndHorizontal(); GUILayout.Label("Author"); GUILayout.BeginHorizontal(); GUILayout.Label("Name: ", GUILayout.MaxWidth(60)); package.m_author.m_name = GUILayout.TextField(package.m_author.m_name); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Mail: ", GUILayout.MaxWidth(60)); package.m_author.m_mail = GUILayout.TextField(package.m_author.m_mail); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Url: ", GUILayout.MaxWidth(60)); package.m_author.m_url = GUILayout.TextField(package.m_author.m_url); GUILayout.EndHorizontal(); GUILayout.Label("Repository Info"); GUILayout.BeginHorizontal(); GUILayout.Label("Git Url: ", GUILayout.MaxWidth(60)); package.m_repositoryLink.m_url = GUILayout.TextField(gitLinked.GetUrl()); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Revision: ", GUILayout.MaxWidth(60)); package.m_repositoryLink.m_revision = GUILayout.TextField(gitLinked.GetLastRevision()); GUILayout.EndHorizontal(); GUILayout.Space(10); GUILayout.Label("Direct dependence"); DrawEditableDependency(ref package.m_otherPackageDependency); GUILayout.Space(10); GUILayout.Label("Relative dependence"); DrawEditableDependency(ref package.m_otherPackageRelation); SampleDirectoryStream sample = SampleUtility.GetSampleFolder(selection); SampleEditor.DrawInfoAboutInterface(sample); DocumentationDirectoryStream documentation = DocumentationUtility.GetDocumentFolder(selection); DocumentationEditor.DrawInfoAboutInterface(documentation); }