Пример #1
0
    public void RefreshSceneOptions()
    {
        SceneDropDown.BeginOptions();

        List <string> presetOptions = new List <string>();

        foreach (SpiralScene preset in DataManager.Instance.PresetScenes)
        {
            presetOptions.Add(preset.name);
        }

        SceneDropDown.AddOption("Presets", presetOptions, (x) =>
        {
            LinkedSavedScene = null;
            DataManager.Instance.UnsavedScene.Copy(DataManager.Instance.PresetScenes[x]);
            LoadScene(DataManager.Instance.UnsavedScene);
        });

        List <string> savedScenes = new List <string>();

        foreach (SpiralScene saved in DataManager.Instance.SavedScenes)
        {
            savedScenes.Add(saved.name);
        }
        savedScenes.Add("[SAVE CURRENT]");

        SceneDropDown.AddOption("Saved Scenes", savedScenes, (x) => {
            if (x < DataManager.Instance.SavedScenes.Count)
            {
                LinkedSavedScene = DataManager.Instance.SavedScenes[x];
                DataManager.Instance.UnsavedScene.Copy(LinkedSavedScene);
                LoadScene(DataManager.Instance.UnsavedScene);
            }
            else
            {
                OnSaveAsNewScene();
            }
            preventSave = true;
        }, (x) => {
            SpiralScene toRemove = DataManager.Instance.SavedScenes[x];
            if (toRemove == LinkedSavedScene)
            {
                LinkedSavedScene = null;
                SceneSaveChanges.gameObject.SetActive(false);
            }
            DataManager.Instance.DeleteScene(x);
            UIManager.TriggerRefresh();
        });

        SceneDropDown.AddOption("[RESET SCENE]", (x) => {
            LinkedSavedScene = null;
            DataManager.Instance.LoadDefaultScene();
        });

        SceneDropDown.EndOptions();
    }
Пример #2
0
    public void AddOption(string name, IList <string> subOptions, System.Action <int> onSelected, System.Action <int> onDeleted = null)
    {
        if (doCache)
        {
            cachedData.Add(() =>
            {
                AddOption(name, subOptions, onSelected, onDeleted);
            });
            return;
        }

        DropDownOption option = addOption(name);

        option.SublistArrow.enabled = true;

        ScrollingDropDown subList = addSublist();

        option.Delete.gameObject.SetActive(false);

        option.OnHover = () =>
        {
            if (subList.IsExpanded)
            {
                //subList.Contract();
            }
            else
            {
                subList.Expand();
            }
        };

        if (refresh)
        {
            subList.BeginOptions();
        }

        for (int i = 0; i < subOptions.Count; i++)
        {
            string subOption = subOptions[i];
            int    index     = i;
            if (onDeleted == null || subOption[0] == '[')
            {
                subList.AddOption(subOption, (x) =>
                {
                    Contract();
                    onSelected(index);
                });
            }
            else
            {
                subList.AddOption(subOption, (x) =>
                {
                    Contract();
                    onSelected(index);
                }, (x) => {
                    onDeleted(index);
                });
            }
        }

        if (refresh)
        {
            subList.EndOptions();
        }
    }