Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
 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;
     }
 }
Exemplo n.º 4
0
        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);
 }
Exemplo n.º 7
0
 public void OneTimeSetUp()
 {
     m_AssemblyNameProvider = new AssemblyNameProvider();
     m_Flag = m_AssemblyNameProvider.ProjectGenerationFlag;
 }