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; } } } } }