| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | using System.Collections;using System.Collections.Generic; using UnityEngine;using System;namespace Enviro{    [Serializable]	public class EnviroActionEvent : UnityEngine.Events.UnityEvent	{  	}    [Serializable]    public class EnviroEvents    {        public EnviroActionEvent onHourPassedActions = new EnviroActionEvent();        public EnviroActionEvent onDayPassedActions = new EnviroActionEvent();        public EnviroActionEvent onYearPassedActions = new EnviroActionEvent();        public EnviroActionEvent onWeatherChangedActions = new EnviroActionEvent();        public EnviroActionEvent onSeasonChangedActions = new EnviroActionEvent();        public EnviroActionEvent onNightActions = new EnviroActionEvent();        public EnviroActionEvent onDayActions = new EnviroActionEvent();        public EnviroActionEvent onZoneChangedActions = new EnviroActionEvent();    }     [Serializable]    public class EnviroEventModule : EnviroModule    {           public Enviro.EnviroEvents Settings;        public EnviroEventModule preset;        public bool showEventsControls;        public override void Enable ()         {             if(EnviroManager.instance.Time != null)            {                EnviroManager.instance.OnHourPassed += () => HourPassed ();                EnviroManager.instance.OnDayPassed += () => DayPassed ();                EnviroManager.instance.OnYearPassed += () => YearPassed ();            }             if(EnviroManager.instance.Weather != null)            {               //EnviroSkyMgr.instance.OnWeatherChanged += (EnviroWeatherPreset type) =>  WeatherChanged ();               //EnviroSkyMgr.instance.OnZoneChanged += (EnviroZone zone) =>  ZoneChanged ();            }            if(EnviroManager.instance.Environment != null)            {               //EnviroSkyMgr.instance.OnSeasonChanged += (EnviroSeasons.Seasons season) => SeasonsChanged ();            }            //EnviroSkyMgr.instance.OnNightTime += () => NightTime ();            //EnviroSkyMgr.instance.OnDayTime += () => DayTime ();              }        public override void Disable ()        {           }        public override void UpdateModule ()        {           }        //Event Invoke        private void HourPassed()        {            Settings.onHourPassedActions.Invoke();        }        private void DayPassed()        {            Settings.onDayPassedActions.Invoke();        }                    private void YearPassed()        {            Settings.onYearPassedActions.Invoke();        }        private void WeatherChanged()        {            Settings.onWeatherChangedActions.Invoke();        }        private void SeasonsChanged()        {            Settings.onSeasonChangedActions.Invoke();        }        private void NightTime()        {            Settings.onNightActions.Invoke ();        }        private void DayTime()        {            Settings.onDayActions.Invoke ();        }        private void ZoneChanged()        {            Settings.onZoneChangedActions.Invoke ();        }        //Save and Load        public void LoadModuleValues ()        {            if(preset != null)            {                Settings = JsonUtility.FromJson<Enviro.EnviroEvents>(JsonUtility.ToJson(preset.Settings));            }            else            {                Debug.Log("Please assign a saved module to load from!");            }        }         public void SaveModuleValues ()        {#if UNITY_EDITOR        EnviroEventModule t =  ScriptableObject.CreateInstance<EnviroEventModule>();        t.name = "Event Preset";        t.Settings = JsonUtility.FromJson<Enviro.EnviroEvents>(JsonUtility.ToJson(Settings));         string assetPathAndName = UnityEditor.AssetDatabase.GenerateUniqueAssetPath("Assets/Enviro 3" + "/New " + t.name + ".asset");        UnityEditor.AssetDatabase.CreateAsset(t, assetPathAndName);        UnityEditor.AssetDatabase.SaveAssets();        UnityEditor.AssetDatabase.Refresh();#endif        }        public void SaveModuleValues (EnviroEventModule module)        {            module.Settings = JsonUtility.FromJson<Enviro.EnviroEvents>(JsonUtility.ToJson(Settings));            #if UNITY_EDITOR            UnityEditor.EditorUtility.SetDirty(module);            UnityEditor.AssetDatabase.SaveAssets();            #endif        }    }}
 |