private void GetFilesList() { saveFiles = new Dictionary <string, List <SaveGameFileDetails> >(); List <string> allFiles = SaveLoader.GetAllFiles(); if (allFiles.Count > 0) { for (int i = 0; i < allFiles.Count; i++) { if (IsFileValid(allFiles[i])) { Tuple <SaveGame.Header, SaveGame.GameInfo> fileInfo = GetFileInfo(allFiles[i]); SaveGame.Header first = fileInfo.first; SaveGame.GameInfo second = fileInfo.second; System.DateTime lastWriteTime = File.GetLastWriteTime(allFiles[i]); string path = (!(second.originalSaveName != string.Empty)) ? allFiles[i] : second.originalSaveName; path = Path.GetFileNameWithoutExtension(path); SaveGameFileDetails item = default(SaveGameFileDetails); item.BaseName = second.baseName; item.FileName = allFiles[i]; item.FileDate = lastWriteTime; item.FileHeader = first; item.FileInfo = second; if (!saveFiles.ContainsKey(path)) { saveFiles.Add(path, new List <SaveGameFileDetails>()); } saveFiles[path].Add(item); } } } }
private void AddExistingSaveFile(string savename, List <SaveGameFileDetails> fileDetailsList) { HierarchyReferences savenameRow = savenameRowPool.GetFreeElement(saveButtonRoot, true); KButton headerButton = savenameRow.GetReference <RectTransform>("Button").GetComponent <KButton>(); headerButton.ClearOnClick(); LocText headerTitle = savenameRow.GetReference <RectTransform>("HeaderTitle").GetComponent <LocText>(); LocText component = savenameRow.GetReference <RectTransform>("SaveTitle").GetComponent <LocText>(); LocText component2 = savenameRow.GetReference <RectTransform>("HeaderDate").GetComponent <LocText>(); RectTransform saveDetailsRow = savenameRow.GetReference <RectTransform>("SaveDetailsRow"); LocText component3 = savenameRow.GetReference <RectTransform>("SaveDetailsBaseName").GetComponent <LocText>(); RectTransform savefileRowTemplate = savenameRow.GetReference <RectTransform>("SavefileRowTemplate"); fileDetailsList.Sort((SaveGameFileDetails x, SaveGameFileDetails y) => y.FileDate.CompareTo(x.FileDate)); LocText locText = headerTitle; SaveGameFileDetails saveGameFileDetails = fileDetailsList[0]; locText.text = saveGameFileDetails.BaseName; component.text = savename; LocText locText2 = component2; string format = "{0:H:mm:ss} - " + Localization.GetFileDateFormat(0); SaveGameFileDetails saveGameFileDetails2 = fileDetailsList[0]; locText2.text = string.Format(format, saveGameFileDetails2.FileDate); LocText locText3 = component3; LocString bASE_NAME = UI.FRONTEND.LOADSCREEN.BASE_NAME; SaveGameFileDetails saveGameFileDetails3 = fileDetailsList[0]; locText3.text = $"{bASE_NAME}: {saveGameFileDetails3.BaseName}"; for (int i = 0; i < savenameRow.transform.childCount; i++) { GameObject gameObject = savenameRow.transform.GetChild(i).gameObject; if ((UnityEngine.Object)gameObject != (UnityEngine.Object)null && gameObject.name.Contains("Clone")) { UnityEngine.Object.Destroy(gameObject); } } bool active = true; foreach (SaveGameFileDetails fileDetails2 in fileDetailsList) { SaveGameFileDetails fileDetails = fileDetails2; RectTransform rectTransform = UnityEngine.Object.Instantiate(savefileRowTemplate, savenameRow.transform); HierarchyReferences component4 = rectTransform.GetComponent <HierarchyReferences>(); KButton component5 = rectTransform.GetComponent <KButton>(); RectTransform reference = component4.GetReference <RectTransform>("NewestLabel"); RectTransform reference2 = component4.GetReference <RectTransform>("AutoLabel"); LocText component6 = component4.GetReference <RectTransform>("SaveText").GetComponent <LocText>(); LocText component7 = component4.GetReference <RectTransform>("DateText").GetComponent <LocText>(); reference.gameObject.SetActive(active); active = false; reference2.gameObject.SetActive(fileDetails.FileInfo.isAutoSave); component6.text = Path.GetFileNameWithoutExtension(fileDetails.FileName); component7.text = string.Format("{0:H:mm:ss} - " + Localization.GetFileDateFormat(0), fileDetails.FileDate); component5.onClick += delegate { onClick(fileDetails.FileName, savename); }; component5.onDoubleClick += delegate { onClick(fileDetails.FileName, savename); Load(); }; fileButtonMap.Add(fileDetails.FileName, component5); } headerButton.onClick += delegate { bool activeSelf = saveDetailsRow.gameObject.activeSelf; bool flag = (UnityEngine.Object)headerButton == (UnityEngine.Object)currentExpanded; if (flag) { SetChildrenActive(savenameRow, !activeSelf); } else if (!activeSelf && !flag) { SetChildrenActive(savenameRow, true); } if ((UnityEngine.Object)currentExpanded != (UnityEngine.Object)null && !flag) { SetHeaderButtonActive(currentExpanded, false); } currentExpanded = headerButton; SetHeaderButtonActive(currentExpanded, true); headerTitle.transform.parent.gameObject.SetActive(true); savefileRowTemplate.gameObject.SetActive(false); Action <string, string> action2 = onClick; SaveGameFileDetails saveGameFileDetails5 = fileDetailsList[0]; action2(saveGameFileDetails5.FileName, savename); }; headerButton.onDoubleClick += delegate { Action <string, string> action = onClick; SaveGameFileDetails saveGameFileDetails4 = fileDetailsList[0]; action(saveGameFileDetails4.FileName, savename); LoadingOverlay.Load(DoLoad); }; savenameRow.transform.SetAsLastSibling(); }