Octave3DConfigSaveWindow.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. using UnityEditor;
  4. using System;
  5. namespace O3DWB
  6. {
  7. [Serializable]
  8. public class Octave3DConfigSaveWindow : Octave3DEditorWindow
  9. {
  10. #region Public Static Functions
  11. public static Octave3DConfigSaveWindow Get()
  12. {
  13. return Octave3DWorldBuilder.ActiveInstance.ConfigSaveWindow;
  14. }
  15. #endregion
  16. #region Public Methods
  17. public override string GetTitle()
  18. {
  19. return "Octave3D Config Save";
  20. }
  21. public override void ShowOctave3DWindow()
  22. {
  23. ShowDockable(true);
  24. }
  25. #endregion
  26. #region Protected Methods
  27. protected override void RenderContent()
  28. {
  29. RenderContentInScrollView();
  30. }
  31. #endregion
  32. #region Private Methods
  33. private void RenderContentInScrollView()
  34. {
  35. EditorGUILayout.HelpBox("Please choose the settings you wish to save.", UnityEditor.MessageType.None);
  36. Octave3DWorldBuilder.ActiveInstance.ConfigSaveSettings.View.Render();
  37. RenderSaveButton();
  38. }
  39. private void RenderSaveButton()
  40. {
  41. if(GUILayout.Button(GetContentForSaveButton(), GUILayout.Width(100.0f)))
  42. {
  43. string fileName = EditorUtility.SaveFilePanel("Save Octave3D Config", Octave3DWorldBuilder.ActiveInstance.ConfigSaveSettings.LastUsedFolder, "", "o3dcfg");
  44. if (!string.IsNullOrEmpty(fileName))
  45. {
  46. Octave3DConfigSave.SaveConfig(fileName, Octave3DWorldBuilder.ActiveInstance.ConfigSaveSettings);
  47. Octave3DWorldBuilder.ActiveInstance.ConfigSaveSettings.LastUsedFolder = FileSystem.GetLastFolderNameInPath(fileName);
  48. EditorUtility.DisplayDialog("Octave3D Config Save", "The configuration was saved successfully!", "OK");
  49. }
  50. }
  51. }
  52. private GUIContent GetContentForSaveButton()
  53. {
  54. var content = new GUIContent();
  55. content.text = "Save settings";
  56. content.tooltip = "Saves the selected settings to a specified file.";
  57. return content;
  58. }
  59. #endregion
  60. }
  61. }
  62. #endif