EnviroEventModuleEditor.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEditor;
  5. namespace Enviro
  6. {
  7. [CustomEditor(typeof(EnviroEventModule))]
  8. public class EnviroEventModuleEditor : EnviroModuleEditor
  9. {
  10. private EnviroEventModule myTarget;
  11. //Properties
  12. private SerializedProperty onHourPassedActions, onDayPassedActions, onYearPassedActions, onWeatherChangedActions, onSeasonChangedActions, onNightActions, onDayActions;
  13. //On Enable
  14. public override void OnEnable()
  15. {
  16. base.OnEnable();
  17. if(!target)
  18. return;
  19. myTarget = (EnviroEventModule)target;
  20. serializedObj = new SerializedObject(myTarget);
  21. preset = serializedObj.FindProperty("preset");
  22. onHourPassedActions = serializedObj.FindProperty("Settings.onHourPassedActions");
  23. onDayPassedActions = serializedObj.FindProperty("Settings.onDayPassedActions");
  24. onYearPassedActions = serializedObj.FindProperty("Settings.onYearPassedActions");
  25. onWeatherChangedActions = serializedObj.FindProperty("Settings.onWeatherChangedActions");
  26. onSeasonChangedActions = serializedObj.FindProperty("Settings.onSeasonChangedActions");
  27. onNightActions = serializedObj.FindProperty("Settings.onNightActions");
  28. onDayActions = serializedObj.FindProperty("Settings.onDayActions");
  29. }
  30. public override void OnInspectorGUI()
  31. {
  32. if(!target)
  33. return;
  34. base.OnInspectorGUI();
  35. GUI.backgroundColor = baseModuleColor;
  36. GUILayout.BeginVertical("",boxStyleModified);
  37. GUI.backgroundColor = Color.white;
  38. EditorGUILayout.BeginHorizontal();
  39. myTarget.showModuleInspector = GUILayout.Toggle(myTarget.showModuleInspector, "Events", headerFoldout);
  40. GUILayout.FlexibleSpace();
  41. if(GUILayout.Button("x", EditorStyles.miniButtonRight,GUILayout.Width(18), GUILayout.Height(18)))
  42. {
  43. EnviroManager.instance.RemoveModule(EnviroManager.ModuleType.Events); //Add Remove
  44. DestroyImmediate(this);
  45. return;
  46. }
  47. EditorGUILayout.EndHorizontal();
  48. if(myTarget.showModuleInspector)
  49. {
  50. //EditorGUILayout.LabelField("This module will control your.");
  51. serializedObj.UpdateIfRequiredOrScript ();
  52. EditorGUI.BeginChangeCheck();
  53. // Set Values
  54. GUI.backgroundColor = categoryModuleColor;
  55. GUILayout.BeginVertical("",boxStyleModified);
  56. GUI.backgroundColor = Color.white;
  57. myTarget.showEventsControls = GUILayout.Toggle(myTarget.showEventsControls, "Event Controls", headerFoldout);
  58. if(myTarget.showEventsControls)
  59. {
  60. GUILayout.Space(10);
  61. EditorGUILayout.PropertyField(onHourPassedActions);
  62. EditorGUILayout.PropertyField(onDayPassedActions);
  63. EditorGUILayout.PropertyField(onYearPassedActions);
  64. GUILayout.Space(5);
  65. EditorGUILayout.PropertyField(onWeatherChangedActions);
  66. EditorGUILayout.PropertyField(onSeasonChangedActions);
  67. GUILayout.Space(5);
  68. EditorGUILayout.PropertyField(onDayActions);
  69. EditorGUILayout.PropertyField(onNightActions);
  70. //EditorGUILayout.LabelField("Random Lighting Storm", headerStyle);
  71. }
  72. GUILayout.EndVertical();
  73. // Save Load
  74. GUI.backgroundColor = categoryModuleColor;
  75. GUILayout.BeginVertical("",boxStyleModified);
  76. GUI.backgroundColor = Color.white;
  77. myTarget.showSaveLoad = GUILayout.Toggle(myTarget.showSaveLoad, "Save/Load", headerFoldout);
  78. if(myTarget.showSaveLoad)
  79. {
  80. EditorGUILayout.PropertyField(preset);
  81. GUILayout.BeginHorizontal("",wrapStyle);
  82. if(myTarget.preset != null)
  83. {
  84. if(GUILayout.Button("Load"))
  85. {
  86. myTarget.LoadModuleValues();
  87. }
  88. if(GUILayout.Button("Save"))
  89. {
  90. myTarget.SaveModuleValues(myTarget.preset);
  91. }
  92. }
  93. if(GUILayout.Button("Save As New"))
  94. {
  95. myTarget.SaveModuleValues();
  96. }
  97. GUILayout.EndHorizontal();
  98. }
  99. GUILayout.EndVertical();
  100. /// Save Load End
  101. ApplyChanges ();
  102. }
  103. GUILayout.EndVertical();
  104. if(myTarget.showModuleInspector)
  105. GUILayout.Space(20);
  106. }
  107. }
  108. }