private void SetupContentsView(PaletteStore store, PaletteEditorWindow view)
        {
            _colorContentsViewController?.Dispose();
            _gradientContentsViewController?.Dispose();
            _characterStyleContentsViewController?.Dispose();
            _characterStyleTMPContentsViewController?.Dispose();
            _emptyViewController?.Dispose();

            _editService = new EditPaletteStoreService(store, new GenerateNameEnumsFileService(store));

            _colorContentsViewController =
                new PaletteEditorWindowContentsViewController <Color>(store.ColorPalette, _editService,
                                                                      view.ColorContentsView);
            _gradientContentsViewController =
                new PaletteEditorWindowContentsViewController <Gradient>(store.GradientPalette, _editService,
                                                                         view.GradientContentsView);
            _characterStyleContentsViewController =
                new PaletteEditorWindowContentsViewController <CharacterStyle>(store.CharacterStylePalette, _editService,
                                                                               view.CharacterStyleContentsView);
            _characterStyleTMPContentsViewController =
                new PaletteEditorWindowContentsViewController <CharacterStyleTMP>(store.CharacterStyleTMPPalette,
                                                                                  _editService, view.CharacterStyleTMPContentsView);

            _activeContentsViewController = GetPerTypeController(_guiState.ActivePaletteType.Value);
        }
示例#2
0
        public static void Update1To2()
        {
            if (!EditorUtility.DisplayDialog("Warning",
                                             "Execute version update and reload the active scene. Do you want to run it?", "OK", "Cancel"))
            {
                return;
            }

            if (!File.Exists(AppDataFilePath))
            {
                EditorUtility.DisplayDialog("Error", $"The target file does not exists at {AppDataFilePath}", "OK");
                return;
            }

            var json          = File.ReadAllText(AppDataFilePath);
            var obsoleteStore = JsonUtility.FromJson <UPaletteStore>(json);

            var palette = PaletteStore.LoadAsset();

            if (palette != null)
            {
                if (!EditorUtility.DisplayDialog("Warning",
                                                 $"{nameof(PaletteStore)} already exists. Do you want to overwrite it?", "OK", "Cancel"))
                {
                    return;
                }

                var assetPath = AssetDatabase.GetAssetPath(palette);
                PaletteStore.RemoveAsset();
                palette = PaletteStore.CreateAsset(assetPath);
            }
            else
            {
                // Open save file panel and create PaletteStore asset.
                palette = PaletteStore.CreateAsset();

                // If cancelled, do nothing.
                if (palette == null)
                {
                    return;
                }
            }

            var theme = palette.ColorPalette.ActiveTheme.Value;

            foreach (var obsoleteEntry in obsoleteStore.Entries)
            {
                var entry = palette.ColorPalette.AddEntry(obsoleteEntry.ID);
                entry.Name.Value             = obsoleteEntry.Name.Value;
                entry.Values[theme.Id].Value = obsoleteEntry.Value.Value;
            }

            EditorUtility.SetDirty(palette);
            AssetDatabase.SaveAssets();
            AssetDatabase.DeleteAsset(AppDataFilePath);

            // Restart the current scene.
            EditorSceneManager.OpenScene(SceneManager.GetActiveScene().path, OpenSceneMode.Single);
        }
        public override void OnGUI(string searchContext)
        {
            using (new GUIScope())
            {
                var store = PaletteStore.LoadAsset();

                if (store == null)
                {
                    EditorGUILayout.HelpBox(
                        "To use Project Settings, you need to create a PaletteStore to initialize uPalette.",
                        MessageType.Warning);

                    if (GUILayout.Button("Create Palette Store"))
                    {
                        PaletteStore.CreateAsset();
                    }

                    if (GUILayout.Button("Update Version 1 to 2"))
                    {
                        VersionUpdater.Update1To2();
                    }

                    return;
                }

                var projectSettings = UPaletteProjectSettings.instance;

                using (var ccs = new EditorGUI.ChangeCheckScope())
                {
                    store.MissingEntryErrorLevel =
                        (MissingEntryErrorLevel)EditorGUILayout.EnumPopup("Missing Entry Error",
                                                                          store.MissingEntryErrorLevel);

                    if (ccs.changed)
                    {
                        EditorUtility.SetDirty(store);
                    }
                }

                using (var ccs = new EditorGUI.ChangeCheckScope())
                {
                    projectSettings.NameEnumsFileGenerateMode =
                        (NameEnumsFileGenerateMode)EditorGUILayout.EnumPopup("Name Enums File Generation",
                                                                             projectSettings.NameEnumsFileGenerateMode);

                    projectSettings.NameEnumsFolder =
                        (DefaultAsset)EditorGUILayout.ObjectField("Name Enums File Location",
                                                                  projectSettings.NameEnumsFolder,
                                                                  typeof(DefaultAsset), false);

                    if (ccs.changed && projectSettings.NameEnumsFileGenerateMode ==
                        NameEnumsFileGenerateMode.WhenWindowLosesFocus)
                    {
                        EditorPrefs.SetBool(EditorPrefsKey.IsIdOrNameDirtyPrefsKey, true);
                    }
                }
            }
        }
        private void Update()
        {
            if (_storeInstance != null)
            {
                return;
            }

            var store = PaletteStore.LoadAsset();

            _store.Value   = store;
            _storeInstance = store;
        }
 public ThemeEditorWindowEmptyViewController(ThemeEditorWindowEmptyView view)
 {
     _view = view;
     _view.CreateButtonClickedAsObservable.Subscribe(_ =>
     {
         if (PaletteStore.LoadAsset() == null)
         {
             PaletteStore.CreateAsset();
         }
         else
         {
             throw new InvalidOperationException($"{nameof(PaletteStore)} already exists.");
         }
     }).DisposeWith(_disposables);
 }
        private static NameEnumsTemplateInput CreateTemplateInput(PaletteStore store)
        {
            var input = new NameEnumsTemplateInput();

            var colorPaletteData = CreatePaletteData("Color", store.ColorPalette);

            input.PaletteDataList.Add(colorPaletteData);
            var gradientPaletteData = CreatePaletteData("Gradient", store.GradientPalette);

            input.PaletteDataList.Add(gradientPaletteData);
            var characterStylePaletteData = CreatePaletteData("CharacterStyle", store.CharacterStylePalette);

            input.PaletteDataList.Add(characterStylePaletteData);
            var characterStyleTMPPaletteData = CreatePaletteData("CharacterStyleTMP", store.CharacterStyleTMPPalette);

            input.PaletteDataList.Add(characterStyleTMPPaletteData);

            return(input);
        }
        private void SetupContentsView(PaletteStore store, PaletteEditorWindow view)
        {
            _colorContentsViewPresenter?.Dispose();
            _gradientContentsViewPresenter?.Dispose();
            _characterStyleContentsViewPresenter?.Dispose();
            _characterStyleTMPContentsViewPresenter?.Dispose();
            _emptyViewPresenter?.Dispose();

            _colorContentsViewPresenter =
                new PaletteEditorWindowContentsViewPresenter <Color>(store.ColorPalette, view.ColorContentsView);
            _gradientContentsViewPresenter =
                new PaletteEditorWindowContentsViewPresenter <Gradient>(store.GradientPalette,
                                                                        view.GradientContentsView);
            _characterStyleContentsViewPresenter =
                new PaletteEditorWindowContentsViewPresenter <CharacterStyle>(store.CharacterStylePalette,
                                                                              view.CharacterStyleContentsView);
            _characterStyleTMPContentsViewPresenter =
                new PaletteEditorWindowContentsViewPresenter <CharacterStyleTMP>(store.CharacterStyleTMPPalette,
                                                                                 view.CharacterStyleTMPContentsView);

            view.SetMode(PaletteEditorWindow.Mode.Contents);
        }
示例#8
0
        public static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets,
                                                  string[] movedFromAssetPaths)
        {
            var paletteStore = PaletteStore.LoadAsset();

            if (paletteStore == null)
            {
                return;
            }

            var assetPath = AssetDatabase.GetAssetPath(paletteStore);

            foreach (var importedAsset in importedAssets)
            {
                if (assetPath != importedAsset)
                {
                    continue;
                }

                _needReloading = false;
                EditorApplication.delayCall += OnPaletteStoreImported;
                return;
            }
        }
示例#9
0
 protected abstract Palette <T> GetPalette(PaletteStore store);
示例#10
0
 protected override Palette <CharacterStyleTMP> GetPalette(PaletteStore store)
 {
     return(store.CharacterStyleTMPPalette);
 }
示例#11
0
 protected override Palette <Gradient> GetPalette(PaletteStore store)
 {
     return(store.GradientPalette);
 }
示例#12
0
 protected override Palette <Color> GetPalette(PaletteStore store)
 {
     return(store.ColorPalette);
 }
示例#13
0
 internal override Palette <UnityEngine.Color> GetPalette(PaletteStore store)
 {
     return(store.ColorPalette);
 }
 internal override Palette <UnityEngine.Gradient> GetPalette(PaletteStore store)
 {
     return(store.GradientPalette);
 }
示例#15
0
 internal abstract Palette <T> GetPalette(PaletteStore store);
示例#16
0
 internal override Palette <Foundation.CharacterStyles.CharacterStyleTMP> GetPalette(PaletteStore store)
 {
     return(store.CharacterStyleTMPPalette);
 }
 public GenerateNameEnumsFileService(PaletteStore store)
 {
     _store = store;
 }