Octave3DConfigLoadWindow.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. using UnityEditor;
  4. using System;
  5. namespace O3DWB
  6. {
  7. [Serializable]
  8. public class Octave3DConfigLoadWindow : Octave3DEditorWindow
  9. {
  10. #region Public Static Functions
  11. public static Octave3DConfigLoadWindow Get()
  12. {
  13. return Octave3DWorldBuilder.ActiveInstance.ConfigLoadWindow;
  14. }
  15. #endregion
  16. #region Public Methods
  17. public override string GetTitle()
  18. {
  19. return "Octave3D Config Load";
  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 load.", UnityEditor.MessageType.None);
  36. Octave3DWorldBuilder.ActiveInstance.ConfigLoadSettings.View.Render();
  37. RenderLoadButton();
  38. }
  39. private void RenderLoadButton()
  40. {
  41. if (GUILayout.Button(GetContentForLoadButton(), GUILayout.Width(100.0f)))
  42. {
  43. string fileName = EditorUtility.OpenFilePanel("Load Octave3D Config", Octave3DWorldBuilder.ActiveInstance.ConfigLoadSettings.LastUsedFolder, "o3dcfg");
  44. if (!string.IsNullOrEmpty(fileName))
  45. {
  46. Octave3DConfigLoad.LoadConfig(fileName, Octave3DWorldBuilder.ActiveInstance.ConfigLoadSettings);
  47. Octave3DWorldBuilder.ActiveInstance.ConfigLoadSettings.LastUsedFolder = FileSystem.GetLastFolderNameInPath(fileName);
  48. Octave3DWorldBuilder.ActiveInstance.Inspector.Repaint();
  49. EditorUtility.DisplayDialog("Octave3D Config Load", "The configuration was loaded successfully!", "OK");
  50. }
  51. }
  52. }
  53. private GUIContent GetContentForLoadButton()
  54. {
  55. var content = new GUIContent();
  56. content.text = "Load settings";
  57. content.tooltip = "Loads the selected settings to a specified file.";
  58. return content;
  59. }
  60. #endregion
  61. }
  62. }
  63. #endif