예제 #1
0
        public static string GetProjectConfigPath(ProjectConfigTypes configType)
        {
            var projectRootDir   = Path.Combine(Application.dataPath, "../..");
            var unityProjectsDir = Path.Combine(projectRootDir, "..");

            switch (configType)
            {
            case ProjectConfigTypes.LocalProject:
            {
                return(Path.Combine(projectRootDir, ProjenyEditorUtil.ProjectConfigFileName));
            }

            case ProjectConfigTypes.LocalProjectUser:
            {
                return(Path.Combine(projectRootDir, ProjenyEditorUtil.ProjectConfigUserFileName));
            }

            case ProjectConfigTypes.AllProjects:
            {
                return(Path.Combine(unityProjectsDir, ProjenyEditorUtil.ProjectConfigFileName));
            }

            case ProjectConfigTypes.AllProjectsUser:
            {
                return(Path.Combine(unityProjectsDir, ProjenyEditorUtil.ProjectConfigUserFileName));
            }
            }

            return(null);
        }
예제 #2
0
        public static string GetProjectConfigPath(ProjectConfigTypes configType)
        {
            var projectRootDir = Path.Combine(Application.dataPath, "../..");
            var unityProjectsDir = Path.Combine(projectRootDir, "..");

            switch (configType)
            {
                case ProjectConfigTypes.LocalProject:
                {
                    return Path.Combine(projectRootDir, ProjenyEditorUtil.ProjectConfigFileName);
                }
                case ProjectConfigTypes.LocalProjectUser:
                {
                    return Path.Combine(projectRootDir, ProjenyEditorUtil.ProjectConfigUserFileName);
                }
                case ProjectConfigTypes.AllProjects:
                {
                    return Path.Combine(unityProjectsDir, ProjenyEditorUtil.ProjectConfigFileName);
                }
                case ProjectConfigTypes.AllProjectsUser:
                {
                    return Path.Combine(unityProjectsDir, ProjenyEditorUtil.ProjectConfigUserFileName);
                }
            }

            return null;
        }
예제 #3
0
        IEnumerator TryChangeProjectType(ProjectConfigTypes configType)
        {
            if (_projectHandler.HasProjectConfigChanged())
            {
                var fileName = Path.GetFileName(ProjenyEditorUtil.GetProjectConfigPath(_view.ProjectConfigType));
                var choice   = _view.PromptForUserChoice(
                    "Do you want to save changes to {0}?".Fmt(fileName), new[] { "Save", "Don't Save", "Cancel" }, null, null, 0, 2);

                yield return(choice);

                switch (choice.Current)
                {
                case 0:
                {
                    _projectHandler.OverwriteConfig();
                    break;
                }

                case 1:
                {
                    // Do nothing
                    break;
                }

                case 2:
                {
                    yield break;
                }

                default:
                {
                    Assert.Throw();
                    break;
                }
                }
            }

            _view.ProjectConfigType = configType;
            _projectHandler.RefreshProject();
        }
예제 #4
0
 public void OnClickedProjectType(ProjectConfigTypes desiredConfigType)
 {
     _asyncProcessor.Process(
         TryChangeProjectType(desiredConfigType));
 }
예제 #5
0
        IEnumerator TryChangeProjectType(ProjectConfigTypes configType)
        {
            if (_projectHandler.HasProjectConfigChanged())
            {
                var fileName = Path.GetFileName(ProjenyEditorUtil.GetProjectConfigPath(_view.ProjectConfigType));
                var choice = _view.PromptForUserChoice(
                    "Do you want to save changes to {0}?".Fmt(fileName), new[] { "Save", "Don't Save", "Cancel" }, null, null, 0, 2);

                yield return choice;

                switch (choice.Current)
                {
                    case 0:
                    {
                        _projectHandler.OverwriteConfig();
                        break;
                    }
                    case 1:
                    {
                        // Do nothing
                        break;
                    }
                    case 2:
                    {
                        yield break;
                    }
                    default:
                    {
                        Assert.Throw();
                        break;
                    }
                }
            }

            _view.ProjectConfigType = configType;
            _projectHandler.RefreshProject();
        }
예제 #6
0
 public void OnClickedProjectType(ProjectConfigTypes desiredConfigType)
 {
     _asyncProcessor.Process(
         TryChangeProjectType(desiredConfigType));
 }