예제 #1
0
    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);
                }
            }
        }
    }
예제 #2
0
    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();
    }