예제 #1
0
        private void DrawFilePicker(bool playing)
        {
            using (new EditorGUILayout.HorizontalScope())
            {
                EditorGUILayout.PrefixLabel("Save File");

                if (playing)
                {
                    EditorGUILayout.SelectableLabel(WorldManager.Instance.SaveFilename, GUILayout.Height(EditorGUIUtility.singleLineHeight), GUILayout.MinWidth(5));

                    if (GUILayout.Button(_saveButton.Content, GUILayout.MinWidth(20)))
                    {
                        WorldLoader.Save(WorldManager.Instance);
                    }
                }
                else
                {
                    EditorGUILayout.SelectableLabel(SceneLoader.FilePreference.Value, GUILayout.Height(EditorGUIUtility.singleLineHeight), GUILayout.MinWidth(5));

                    if (GUILayout.Button(_newButton.Content, GUILayout.MinWidth(20)))
                    {
                        var path = EditorUtility.SaveFilePanel("Create Save File", Application.persistentDataPath, "Editor Save", "mmk");

                        if (!string.IsNullOrEmpty(path))
                        {
                            File.WriteAllText(path, "{}");
                            SceneLoader.FilePreference.Value = path;

                            if (SceneLoader.ZoneTypePreference.Value == SceneLoader.LoadSavedZone)
                            {
                                SceneLoader.ZoneTypePreference.Value = SceneLoader.LoadActiveZone;
                            }
                        }
                    }

                    if (GUILayout.Button(_openButton.Content, GUILayout.MinWidth(20)))
                    {
                        var path = EditorUtility.OpenFilePanel("Open Save File", Application.persistentDataPath, "mmk");

                        if (!string.IsNullOrEmpty(path))
                        {
                            SceneLoader.FilePreference.Value = path;
                        }
                    }

                    if (GUILayout.Button(_clearButton.Content, GUILayout.MinWidth(20)))
                    {
                        SceneLoader.FilePreference.Value = "";

                        if (SceneLoader.ZoneTypePreference.Value == SceneLoader.LoadSavedZone)
                        {
                            SceneLoader.ZoneTypePreference.Value = SceneLoader.LoadActiveZone;
                        }
                    }
                }
            }
        }