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
}