public static void LoadDictionary(AsyncUI mainWindow) { String json = "[]"; if (File.Exists(BS(baseDir) + dictFileName)) { json = File.ReadAllText(BS(baseDir) + dictFileName); } Laps = JsonSerializer.Deserialize <List <LapInfo> >(json); int i = Laps.Count; while (i > 0) { i--; if (!File.Exists(BS(baseDir) + BS(Laps[i].CircuitName) + Laps[i].FileName)) { mainWindow.LogLine("Not found:" + Laps[i].FileName); Laps.RemoveAt(i); } } mainProcess = mainWindow; mainWindow.Log($"{Laps.Count} laps loaded"); }
public void Update(PacketHeader context, PacketLapData data, AsyncUI callback) { if (circuit != null) { circuit.Update(data); for (int i = 0; i < participantsData.numActiveCars; i++) { if (data.lapData[i].currentLapNum >= 0) { lock (playerInfo) { var playerData = GetPlayerByIndex(i); currentLapNum[i] = data.lapData[i].currentLapNum; if (playerData != null) { var lapInfo = playerData.AddLapData(context, data.lapData[i]); if (lapInfo != null) { circuit.AddLapInfo(lapInfo); callback.LogLine($"{playerData.CarNumber}:{playerData.Name} - lap {data.lapData[i].currentLapNum} : {lapInfo.lapTime.ToString()}"); LapDatabase.Add( new CompletedLap() { circuitInfo = this.circuit.CircuitData, playerInfo = participantsData.participants[i], lap = lapInfo }); } } } } else { currentLapNum[i] = data.lapData[i].currentLapNum; } } circuit.CheckMyApex(context.frameIdentifier, data.lapData[context.playerCarIndex]); } else { for (int i = 0; i < currentLapNum.Length; i++) { currentLapNum[i] = -1; } } }
public PacketReader(AsyncUI owner) { callBack = owner; }