Exemplo n.º 1
0
        public void ShowPage()
        {
            if (saveViewBookmarkType == BookmarkType.NormalSave)
            {
                int maxSaveId = checkpointManager.QueryMaxSaveId((int)BookmarkType.NormalSave);
                if (checkpointManager.SaveSlotsMetadata.ContainsKey(maxSaveId))
                {
                    maxPage = SaveIdToPage(maxSaveId);
                    if (saveViewMode == SaveViewMode.Save)
                    {
                        // New page to save
                        ++maxPage;
                    }
                }
                else
                {
                    maxPage = 1;
                }
            }
            else
            {
                maxPage = 1;
            }

            if (maxPage < page)
            {
                page = maxPage;
            }

            if (saveViewBookmarkType == BookmarkType.AutoSave)
            {
                pageText.text = I18n.__("bookmark.autosave.page");
            }
            else if (saveViewBookmarkType == BookmarkType.QuickSave)
            {
                pageText.text = I18n.__("bookmark.quicksave.page");
            }
            else // saveViewBookmarkType == BookmarkType.NormalSave
            {
                pageText.text = string.Format("{0} / {1}", page, maxPage);
            }

            if (saveViewMode == SaveViewMode.Save)
            {
                saveButton.interactable = false;
                loadButton.interactable = true;
            }
            else // saveViewMode == SaveViewMode.Load
            {
                saveButton.interactable = true;
                loadButton.interactable = false;
            }

            for (int i = 0; i < maxSaveEntry; ++i)
            {
                int    saveId    = (page - 1) * maxSaveEntry + i + (int)saveViewBookmarkType;
                string newIdText = SaveIdToDisplayId(saveId).ToString();

                // Load properties from bookmark
                string      newHeaderText;
                string      newFooterText;
                Sprite      newThumbnailSprite;
                UnityAction onEditButtonClicked;
                UnityAction onDeleteButtonClicked;
                if (checkpointManager.SaveSlotsMetadata.ContainsKey(saveId))
                {
                    Bookmark bookmark = checkpointManager[saveId];
                    newHeaderText         = bookmark.NodeHistory.Last();
                    newFooterText         = bookmark.CreationTime.ToString(dateTimeFormat);
                    newThumbnailSprite    = GetThumbnailSprite(saveId);
                    onEditButtonClicked   = null;
                    onDeleteButtonClicked = () => DeleteBookmark(saveId);
                }
                else
                {
                    newHeaderText         = "";
                    newFooterText         = "";
                    newThumbnailSprite    = null;
                    onEditButtonClicked   = null;
                    onDeleteButtonClicked = null;
                }

                UnityAction onThumbnailButtonClicked = () => OnThumbnailButtonClicked(saveId);
                UnityAction onThumbnailButtonEnter   = () => OnThumbnailButtonEnter(saveId);
                UnityAction onThumbnailButtonExit    = () => OnThumbnailButtonExit(saveId);

                // Update UI of saveEntry
                var saveEntry           = saveEntries[i];
                var saveEntryController = saveEntry.GetComponent <SaveEntryController>();
                saveEntryController.Init(newIdText, newHeaderText, newFooterText, newThumbnailSprite,
                                         onEditButtonClicked, onDeleteButtonClicked,
                                         onThumbnailButtonClicked, onThumbnailButtonEnter, onThumbnailButtonExit);
            }
        }