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
- }
- }
- }
|