| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 | using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;namespace Enviro{    [CustomEditor(typeof(EnviroTimeModule))]    public class EnviroTimeModuleEditor : EnviroModuleEditor    {          private EnviroTimeModule myTarget;         //Properties        private SerializedProperty simulate,latitude,longitude,utcOffset,cycleLengthInMinutes,dayLengthModifier,nightLengthModifier;          //On Enable        public override void OnEnable()        {            if(!target)                return;            myTarget = (EnviroTimeModule)target;            serializedObj = new SerializedObject(myTarget);            preset = serializedObj.FindProperty("preset");            simulate = serializedObj.FindProperty("Settings.simulate");             latitude = serializedObj.FindProperty("Settings.latitude");            longitude = serializedObj.FindProperty("Settings.longitude");            utcOffset = serializedObj.FindProperty("Settings.utcOffset");            cycleLengthInMinutes = serializedObj.FindProperty("Settings.cycleLengthInMinutes");            dayLengthModifier = serializedObj.FindProperty("Settings.dayLengthModifier");            nightLengthModifier = serializedObj.FindProperty("Settings.nightLengthModifier");        }         public override void OnInspectorGUI()        {            if(!target)                return;            base.OnInspectorGUI();            GUI.backgroundColor = baseModuleColor;            GUILayout.BeginVertical("",boxStyleModified);            GUI.backgroundColor = Color.white;            EditorGUILayout.BeginHorizontal();            myTarget.showModuleInspector = GUILayout.Toggle(myTarget.showModuleInspector, "Time", headerFoldout);                        GUILayout.FlexibleSpace();            if(GUILayout.Button("x", EditorStyles.miniButtonRight,GUILayout.Width(18), GUILayout.Height(18)))            {                EnviroManager.instance.RemoveModule(EnviroManager.ModuleType.Time);                DestroyImmediate(this);                return;            }                         EditorGUILayout.EndHorizontal();                        if(myTarget.showModuleInspector)            {                //EditorGUILayout.LabelField("This module will control the time of day.");                serializedObj.UpdateIfRequiredOrScript ();                EditorGUI.BeginChangeCheck();                GUI.backgroundColor = categoryModuleColor;                GUILayout.BeginVertical("",boxStyleModified);                GUI.backgroundColor = Color.white;                myTarget.showTimeControls = GUILayout.Toggle(myTarget.showTimeControls, "Time Controls", headerFoldout);                                    if(myTarget.showTimeControls)                {                    GUILayout.Space(10);                    EditorGUILayout.LabelField("Time", headerStyle);                    myTarget.seconds = EditorGUILayout.IntSlider("Second", myTarget.seconds,0,60);                    myTarget.minutes = EditorGUILayout.IntSlider("Minute", myTarget.minutes,0,60);                    myTarget.hours = EditorGUILayout.IntSlider("Hour", myTarget.hours,0,24);                    GUILayout.Space(10);                    EditorGUILayout.LabelField("Date", headerStyle);                    myTarget.days = EditorGUILayout.IntSlider("Day", myTarget.days,1,32);                    myTarget.months = EditorGUILayout.IntSlider("Month", myTarget.months,1,13);                    myTarget.years = EditorGUILayout.IntSlider("Year", myTarget.years,1,3000);                    GUILayout.Space(10);                    EditorGUILayout.LabelField("Progression", headerStyle);                    EditorGUILayout.PropertyField(simulate);                    EditorGUILayout.PropertyField(cycleLengthInMinutes);                    EditorGUILayout.PropertyField(dayLengthModifier);                    EditorGUILayout.PropertyField(nightLengthModifier);                                                      Repaint();                }                  GUILayout.EndVertical();                if(myTarget.showTimeControls)                    GUILayout.Space(10);                GUI.backgroundColor = categoryModuleColor;                GUILayout.BeginVertical("",boxStyleModified);                GUI.backgroundColor = Color.white;                myTarget.showLocationControls = GUILayout.Toggle(myTarget.showLocationControls, "Location Controls", headerFoldout);                            if(myTarget.showLocationControls)                {                    EditorGUILayout.PropertyField(longitude);                    EditorGUILayout.PropertyField(latitude);                    EditorGUILayout.PropertyField(utcOffset);                }                  GUILayout.EndVertical();                                if(myTarget.showLocationControls)                    GUILayout.Space(10);                if(!Application.isPlaying)                     myTarget.UpdateModule();                /// Save Load                GUI.backgroundColor = categoryModuleColor;                GUILayout.BeginVertical("",boxStyleModified);                GUI.backgroundColor = Color.white;                myTarget.showSaveLoad = GUILayout.Toggle(myTarget.showSaveLoad, "Save/Load", headerFoldout);                                if(myTarget.showSaveLoad)                {                    EditorGUILayout.PropertyField(preset);                    GUILayout.BeginHorizontal("",wrapStyle);                    if(myTarget.preset != null)                    {                        if(GUILayout.Button("Load"))                        {                            myTarget.LoadModuleValues();                        }                        if(GUILayout.Button("Save"))                        {                            myTarget.SaveModuleValues(myTarget.preset);                        }                    }                    if(GUILayout.Button("Save As New"))                    {                        myTarget.SaveModuleValues();                    }                    GUILayout.EndHorizontal();                }                GUILayout.EndVertical();                /// Save Load End                if(myTarget.showSaveLoad)                    GUILayout.Space(10);                ApplyChanges ();            }            GUILayout.EndVertical();            if(myTarget.showModuleInspector)             GUILayout.Space(20);        }    }}
 |