private IEnumerator Parse() { if (!working) { working = true; PreloadDebug.Clear(); Task.Run(() => { debugInformation.TickAction(() => { try { var memory = GameController.Memory; FilesFromMemory filesFromMemory = new FilesFromMemory(memory); var AllFiles = filesFromMemory.GetAllFilesSync(); int areaChangeCount = GameController.Game.AreaChangeCount; foreach (var file in AllFiles) { if (file.Value.ChangeCount == areaChangeCount) { var text = file.Key; if (text.Contains('@')) { text = text.Split('@')[0]; } lock (_locker) { PreloadDebug.Add(text); } CheckForPreload(text); } } } catch (Exception e) { DebugWindow.LogError($"{nameof(PreloadAlert)} -> {e}"); } lock (_locker) { DrawAlerts = alerts.OrderBy(x => x.Value.Text).Select(x => x.Value).ToList(); } }); working = false; }); } yield return(null); }
public FilesContainer(IMemory memory) { _memory = memory; ItemClasses = new ItemClasses(); FilesFromMemory = new FilesFromMemory(_memory); using (new PerformanceTimer("Load files from memory")) { AllFiles = FilesFromMemory.GetAllFiles(); } Task.Run(() => { using (new PerformanceTimer("Preload stats and mods")) { var test = Stats.records.Count; var test2 = Mods.records.Count; ParseFiles(AllFiles); } }); }