using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Weather; [RegisterComponent, NetworkedComponent] public sealed class WeatherComponent : Component { /// /// Currently running weather. /// [ViewVariables, DataField("weather")] public string? Weather; // now public IPlayingAudioStream? Stream; /// /// When the weather started. /// [ViewVariables, DataField("startTime")] public TimeSpan StartTime = TimeSpan.Zero; /// /// When the applied weather will end. /// [ViewVariables(VVAccess.ReadWrite), DataField("endTime")] public TimeSpan EndTime = TimeSpan.Zero; [ViewVariables] public TimeSpan Duration => EndTime - StartTime; [ViewVariables] public WeatherState State = WeatherState.Invalid; } public enum WeatherState : byte { Invalid = 0, Starting, Running, Ending, }