namespace UnityEngine.AzureSky { /// Class that handles events and global communications in the system. public static class AzureNotificationCenter { public static class Invoke { /// Invokes the OnTimelineChanged event. public static void OnTimelineChangedCallback(AzureTimeSystem timeSystem) { OnTimelineChanged?.Invoke(timeSystem); } /// Invokes the OnMinuteChanged event. public static void OnMinuteChangedCallback(AzureTimeSystem timeSystem) { OnMinuteChanged?.Invoke(timeSystem); } /// Invokes the OnHourChanged event. public static void OnHourChangedCallback(AzureTimeSystem timeSystem) { OnHourChanged?.Invoke(timeSystem); } /// Invokes the OnDayChanged event. public static void OnDayChangedCallback(AzureTimeSystem timeSystem) { OnDayChanged?.Invoke(timeSystem); } /// Invokes the OnMonthChanged event. public static void OnMonthChangedCallback(AzureTimeSystem timeSystem) { OnMonthChanged?.Invoke(timeSystem); } /// Invokes the OnYearChanged event. public static void OnYearChangedCallback(AzureTimeSystem timeSystem) { OnYearChanged?.Invoke(timeSystem); } /// Invokes the OnBeforeOverrideUpdate event. public static void OnBeforeOverrideUpdateCallback(AzureWeatherSystem azureWeatherSystem) { OnBeforeOverrideUpdate?.Invoke(azureWeatherSystem); } /// Invokes the OnAfterOverrideUpdate event. public static void OnAfterOverrideUpdateCallback(AzureWeatherSystem azureWeatherSystem) { OnAfterOverrideUpdate?.Invoke(azureWeatherSystem); } /// Invokes the OnBeforeWeatherSystemUpdate event. public static void OnBeforeWeatherSystemUpdateCallback(AzureWeatherSystem azureWeatherSystem) { OnBeforeWeatherSystemUpdate?.Invoke(azureWeatherSystem); } /// Invokes the OnAfterWeatherSystemUpdate event. public static void OnAfterWeatherSystemUpdateCallback(AzureWeatherSystem azureWeatherSystem) { OnAfterWeatherSystemUpdate?.Invoke(azureWeatherSystem); } /// Invokes the OnWeatherTransitionEnd event. public static void OnWeatherTransitionEndCallback(AzureWeatherSystem azureWeatherSystem) { OnWeatherTransitionEnd?.Invoke(azureWeatherSystem); } /// Invokes the OnVolumetricLightPreRender event. public static void OnVolumetricLightPreRenderCallback(AzureVolumetricLightRenderer renderer) { OnVolumetricLightPreRender?.Invoke(renderer); } } public delegate void TimeSystemDelegate(AzureTimeSystem timeSystem); public static event TimeSystemDelegate OnTimelineChanged, OnMinuteChanged, OnHourChanged, OnDayChanged, OnMonthChanged, OnYearChanged; public delegate void WeatherSystemDelegate(AzureWeatherSystem azureWeatherSystem); public static event WeatherSystemDelegate OnBeforeOverrideUpdate, OnAfterOverrideUpdate, OnBeforeWeatherSystemUpdate, OnAfterWeatherSystemUpdate, OnWeatherTransitionEnd; public delegate void VolumetriLightPreRenderDelegate(AzureVolumetricLightRenderer renderer); public static event VolumetriLightPreRenderDelegate OnVolumetricLightPreRender; } // Editor only #if UNITY_EDITOR public static class AzureNotificationCenterEditor { public static class Invoke { /// Invokes the OnRequestCalendarUpdate event. public static void RequestCalendarUpdateCallback() { OnRequestCalendarUpdate?.Invoke(); } /// Triggers the OnAddWeatherPropertyGroup callback. public static void AddWeatherPropertyGroupCallback(AzureCoreSystem azureCoreSystem) { OnAddWeatherPropertyGroup?.Invoke(azureCoreSystem); } /// Triggers the OnRemoveWeatherPropertyGroup callback. public static void RemoveWeatherPropertyGroupCallback(AzureCoreSystem azureCoreSystem, int index) { OnRemoveWeatherPropertyGroup?.Invoke(azureCoreSystem, index); } /// Triggers the OnReorderWeatherPropertyGroupList callback. public static void ReorderWeatherPropertyGroupCallback(AzureCoreSystem azureCoreSystem, int oldIndex, int newIndex) { OnReorderWeatherPropertyGroupList?.Invoke(azureCoreSystem, oldIndex, newIndex); } /// Triggers the OnAddWeatherProperty callback. public static void AddWeatherPropertyCallback(AzureCoreSystem azureCoreSystem, int groupIndex) { OnAddWeatherProperty?.Invoke(azureCoreSystem, groupIndex); } /// Triggers the OnRemoveWeatherProperty callback. public static void RemoveWeatherPropertyCallback(AzureCoreSystem azureCoreSystem, int groupIndex, int propertyIndex) { OnRemoveWeatherProperty?.Invoke(azureCoreSystem, groupIndex, propertyIndex); } /// Triggers the OnReorderWeatherPropertyList callback. public static void ReorderWeatherPropertyCallback(AzureCoreSystem azureCoreSystem, int groupIndex, int oldIndex, int newIndex) { OnReorderWeatherPropertyList?.Invoke(azureCoreSystem, groupIndex, oldIndex, newIndex); } } public delegate void AzureEditorDelegate(); public static event AzureEditorDelegate OnRequestCalendarUpdate; public delegate void AddWeatherPropertyGroupDelegate(AzureCoreSystem azureCoreSystem); public static event AddWeatherPropertyGroupDelegate OnAddWeatherPropertyGroup; public delegate void RemoveWeatherPropertyGroupDelegate(AzureCoreSystem azureCoreSystem, int index); public static event RemoveWeatherPropertyGroupDelegate OnRemoveWeatherPropertyGroup; public delegate void ReorderWeatherPropertyGroupDelegate(AzureCoreSystem azureCoreSystem, int oldIndex, int newIndex); public static event ReorderWeatherPropertyGroupDelegate OnReorderWeatherPropertyGroupList; public delegate void AddWeatherPropertyDelegate(AzureCoreSystem azureCoreSystem, int groupIndex); public static event AddWeatherPropertyDelegate OnAddWeatherProperty; public delegate void RemoveWeatherPropertyDelegate(AzureCoreSystem azureCoreSystem, int groupIndex, int propertyIndex); public static event RemoveWeatherPropertyDelegate OnRemoveWeatherProperty; public delegate void ReorderWeatherPropertyDelegate(AzureCoreSystem azureCoreSystem, int groupIndex, int oldIndex, int newIndex); public static event ReorderWeatherPropertyDelegate OnReorderWeatherPropertyList; } #endif }