private static string GetProjectGenerationFlagDescription(ProjectGenerationFlag flag) { switch (flag) { case ProjectGenerationFlag.BuiltIn: return("Built-in packages"); case ProjectGenerationFlag.Embedded: return("Embedded packages"); case ProjectGenerationFlag.Git: return("Git packages"); case ProjectGenerationFlag.Local: return("Local packages"); case ProjectGenerationFlag.LocalTarBall: return("Local tarball"); case ProjectGenerationFlag.PlayerAssemblies: return("Player projects"); case ProjectGenerationFlag.Registry: return("Registry packages"); case ProjectGenerationFlag.Unknown: return("Packages from unknown sources"); default: return(string.Empty); } }
void SettingsButton(ProjectGenerationFlag preference, string guiMessage, string toolTip) { var prevValue = m_ProjectGeneration.AssemblyNameProvider.ProjectGenerationFlag.HasFlag(preference); var newValue = EditorGUILayout.Toggle(new GUIContent(guiMessage, toolTip), prevValue); if (newValue != prevValue) { m_ProjectGeneration.AssemblyNameProvider.ToggleProjectGeneration(preference); } }
public void ToggleProjectGeneration(ProjectGenerationFlag preference) { if (HasFlag(preference)) { ProjectGenerationFlag ^= preference; } else { ProjectGenerationFlag |= preference; } }
private bool IsProjectGeneratedFor(string path, out ProjectGenerationFlag missingFlag) { missingFlag = ProjectGenerationFlag.None; // No need to check when opening the whole solution if (string.IsNullOrEmpty(path)) { return(true); } // We only want to check for cs scripts if (ProjectGeneration.ScriptingLanguageForFile(path) != ScriptingLanguage.CSharp) { return(true); } // Even on windows, the package manager requires relative path + unix style separators for queries var basePath = _generator.ProjectDirectory; var relativePath = FileUtility .NormalizeWindowsToUnix(path) .Replace(basePath, string.Empty) .Trim(FileUtility.UnixSeparator); var packageInfo = UnityEditor.PackageManager.PackageInfo.FindForAssetPath(relativePath); if (packageInfo == null) { return(true); } var source = packageInfo.source; if (!Enum.TryParse <ProjectGenerationFlag>(source.ToString(), out var flag)) { return(true); } if (_generator.AssemblyNameProvider.ProjectGenerationFlag.HasFlag(flag)) { return(true); } // Return false if we found a source not flagged for generation missingFlag = flag; return(false); }
public void ResetProjectGenerationFlag() { ProjectGenerationFlag = ProjectGenerationFlag.None; }
bool HasFlag(ProjectGenerationFlag flag) { return((this.ProjectGenerationFlag & flag) == flag); }
public void OneTimeSetUp() { m_AssemblyNameProvider = new AssemblyNameProvider(); m_Flag = m_AssemblyNameProvider.ProjectGenerationFlag; }