public override void Update(ConfigurationSection rootNode, API api) { List <Dictionary <string, object> > qualiResults = rootNode.GetMapList("QualifyResultsInfo.Results"); if (qualiResults == null) { return; } foreach (Dictionary <string, object> qualiResult in qualiResults) { string i = qualiResult.GetDictValue("CarIdx"); if (i == null) { continue; } int carIdx = int.Parse(i); GridItem item = GridPositions.Find(g => g.CarIndex == carIdx); if (item == null) { item = new GridItem(); GridPositions.Add(item); } item.Update(qualiResult, api, this); } }
public override void Update(ConfigurationSection rootNode, API api) { List <Dictionary <string, object> > sessions = rootNode.GetMapList("SessionInfo.Sessions"); Dictionary <string, object> session = sessions[sessions.Count - 1]; List <Dictionary <string, object> > resultPositions = session.Get("ResultsPositions") as List <Dictionary <string, object> >; foreach (Dictionary <string, object> resultPosition in resultPositions) { string s = resultPosition.GetDictValue("CarIdx"); if (s == null) { continue; } int carIdx = int.Parse(s); LiveStandingsItem item = Items.Find(i => i.Driver.CarIndex == carIdx); if (item == null) { item = new LiveStandingsItem(((DriverModule)api.FindModule("DriverModule")).FindDriver(carIdx)); this.AddComponent(item); Items.Add(item); } item.Update(resultPosition, api, this); } UpdateLivePositions(); }
public override void Update(ConfigurationSection rootNode, API api) { List <Dictionary <string, object> > driverMapList = rootNode.GetMapList("DriverInfo.Drivers"); foreach (Dictionary <string, object> dict in driverMapList) { object carIndex = null; if (dict.TryGetValue("CarIdx", out carIndex) && carIndex is string) { int carIdx = int.Parse((string)carIndex); if (!driverExists(carIdx)) { Driver driver = parseDriver(dict); if (driver != null) { Drivers.Add(driver); LiveStandingsModule m = API.Instance.FindModule("LiveStandings") as LiveStandingsModule; if (!m.ContainsItem(carIdx)) { m.Items.Add(new LiveStandingsItem(driver)); } } } } } }
public override void Update(ConfigurationSection rootNode, API api) { FollowedDriver = (int)api.GetData("CamCarIdx"); CurrentCamera = (int)api.GetData("CamGroupNumber"); List <Dictionary <string, object> > groups = rootNode.GetMapList("CameraInfo.Groups"); if (groups.Count == Cameras.Count) { return; } foreach (Dictionary <string, object> dict in groups) { int id = int.Parse(dict.GetDictValue("GroupNum")); if (Cameras.FindIndex(c => c.Id == id) >= 0) { continue; } Camera cam = new Camera(); cam.Id = id; cam.Name = dict.GetDictValue("GroupName"); Cameras.Add(cam); } }
public override void Update(ConfigurationSection rootNode, API api) { ConfigurationSection weekendInfo = rootNode.GetConfigurationSection("WeekendInfo"); ConfigurationSection weekendOptions = weekendInfo.GetConfigurationSection("WeekendOptions"); Track.Name = weekendInfo.GetString("TrackName"); Track.Id = int.Parse(weekendInfo.GetString("TrackID")); string length = weekendInfo.GetString("TrackLength"); Track.Length = float.Parse(length.Substring(0, length.Length - 3).Replace('.', ',')) * 1000; Track.DisplayName = weekendInfo.GetString("TrackDisplayName"); Track.DisplayShortName = weekendInfo.GetString("TrackDisplayShortName"); Track.City = weekendInfo.GetString("TrackCity"); Track.Country = weekendInfo.GetString("TrackCountry"); string alt = weekendInfo.GetString("TrackAltitude"); Track.Altitude = float.Parse(alt.Substring(0, alt.Length - 2).Replace('.', ',')); string lat = weekendInfo.GetString("TrackLatitude"); Track.Latitude = float.Parse(lat.Substring(0, lat.Length - 2).Replace('.', ',')); string lon = weekendInfo.GetString("TrackLongitude"); Track.Longitude = float.Parse(lon.Substring(0, lon.Length - 2).Replace('.', ',')); Track.NumberOfTurns = int.Parse(weekendInfo.GetString("TrackNumTurns")); string pl = weekendInfo.GetString("TrackPitSpeedLimit"); Track.PitSpeedLimit = float.Parse(pl.Substring(0, pl.Length - 4).Replace('.', ',')); string trackType = weekendInfo.GetString("TrackType"); if (trackType.StartsWith("road")) { Track.TrackType = TrackType.Road; } else if (trackType.StartsWith("oval")) { Track.TrackType = TrackType.Oval; } else { Track.TrackType = TrackType.None; } Weather.Skies = (Skies)Enum.Parse(typeof(Skies), weekendInfo.GetString("TrackSkies").Replace(" ", "")); string airTemp = weekendInfo.GetString("TrackAirTemp"); Weather.AirTemp = float.Parse(airTemp.Substring(0, airTemp.Length - 2).Replace('.', ',')); string trackTemp = weekendInfo.GetString("TrackSurfaceTemp"); Weather.TrackTemp = float.Parse(trackTemp.Substring(0, trackTemp.Length - 2).Replace('.', ',')); string windSpeed = weekendInfo.GetString("TrackWindVel"); Weather.WindSpeed = float.Parse(windSpeed.Substring(0, windSpeed.Length - 4).Replace('.', ',')); string humidity = weekendOptions.GetString("RelativeHumidity"); Weather.Humidity = int.Parse(humidity.Substring(0, humidity.Length - 2)); Track.Sectors.Clear(); ConfigurationSection splitTime = rootNode.GetConfigurationSection("SplitTimeInfo"); foreach (Dictionary <string, object> dict in splitTime.GetMapList("Sectors")) { Track.Sectors.Add(float.Parse(dict.GetDictValue("SectorStartPct").Replace('.', ','))); } }
public override void Update(ConfigurationSection rootNode, API api) { SessionState = (SessionState)api.GetData("SessionState"); List <Dictionary <string, object> > sessions = rootNode.GetMapList("SessionInfo.Sessions"); Dictionary <string, object> session = sessions[sessions.Count - 1]; object sessionLaps; if (session.TryGetValue("SessionLaps", out sessionLaps) && sessionLaps is string) { string laps = (string)sessionLaps; if (laps.StartsWith("unlimited")) { LapsTotal = int.MaxValue; } else { LapsTotal = int.Parse(laps); } } object sessionType; if (session.TryGetValue("SessionType", out sessionType) && sessionType is string) { string type = (string)sessionType; switch (type) { case "Offline Testing": SessionType = Data.SessionType.OfflineTesting; break; case "Practice": SessionType = Data.SessionType.Practice; break; case "Qualifying": SessionType = Data.SessionType.Qualifying; break; case "Race": if (LapsTotal == int.MaxValue) { SessionType = Data.SessionType.TimeRace; } else { SessionType = Data.SessionType.LapRace; } break; case "Time Trial": SessionType = Data.SessionType.TimeTrial; break; default: SessionType = Data.SessionType.None; break; } } SessionFlag newFlag = (SessionFlag)Enum.Parse(typeof(SessionFlag), ((int)api.GetData("SessionFlags")).ToString(), true); if (newFlag.FlagSet(SessionFlag.White)) { Application.Current.Dispatcher.BeginInvoke(new Action(() => { //Controller.TMTVO.Instance.Window.LapsRemainingFadeIn(1); })); } SessionFlags = newFlag; this.TimeRemaining = (int)(double)api.GetData("SessionTimeRemain"); int lapsRemain = (int)api.GetData("SessionLapsRemain"); if (lapsRemain + 1 <= 5 && lapsRemain + 1 > 0) { Application.Current.Dispatcher.BeginInvoke(new Action(() => { //Controller.TMTVO.Instance.Window.LapsRemainingFadeIn(lapsRemain + 1); })); } this.LapsDriven = LapsTotal - lapsRemain; object sessionTime; if (session.TryGetValue("SessionTime", out sessionTime) && sessionTime is string) { string time = ((string)sessionTime).Substring(0, ((string)sessionTime).Length - 4).Replace('.', ','); if (time.StartsWith("unlim")) { TimeTotal = int.MaxValue; } else { TimeTotal = (int)float.Parse(time); } } }