using Core.Annotations; using Core.Generators; using Core.Helpers; using Core.Models.Eft.Weather; using Core.Models.Enums; using Core.Models.Spt.Config; using Core.Models.Spt.Weather; using Core.Models.Utils; using Core.Servers; using Core.Services; namespace Core.Controllers; [Injectable] public class WeatherController( ISptLogger _logger, WeatherGenerator _weatherGenerator, SeasonalEventService _seasonalEventService, RaidWeatherService _raidWeatherService, WeatherHelper _weatherHelper, ConfigServer _configServer ) { protected WeatherConfig _weatherConfig = _configServer.GetConfig(); /// /// Handle client/weather /// /// public WeatherData Generate() { var result = new WeatherData { Acceleration = 0, Time = "", Date = "", Weather = null, Season = Season.AUTUMN }; _weatherGenerator.CalculateGameTime(result); result.Weather = _weatherGenerator.GenerateWeather(result.Season.Value); return result; } /// /// Handle client/localGame/weather /// /// /// public GetLocalWeatherResponseData GenerateLocal(string sessionId) { var result = new GetLocalWeatherResponseData() { Season = (int)_seasonalEventService.GetActiveWeatherSeason(), Weather = [] }; result.Weather.AddRange(_raidWeatherService.GetUpcomingWeather()); return result; } }