private void DrawDatabase(EiDatabase db) { var categories = db.categories; if (categories == null) { categories = new List <EiCategory> (); } if (categories.Count == 0) { EditorGUILayout.LabelField("No Categories"); } for (int i = 0; i < categories.Count; i++) { if (categories [i] == null) { categories.RemoveAt(i); i--; continue; } DrawCategory(categories [i], i); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Add Category", GUILayout.Width(100f))) { var category = EiCategory.CreateAsset("Eitrum/EiDatabaseItems/Categories"); db.categories.Add(category); } if (GUILayout.Button("Clean Empty Entries", GUILayout.Width(150f))) { for (int i = 0; i < categories.Count; i++) { if (categories [i] == null) { categories.RemoveAt(i); i--; continue; } var entries = categories [i].entries; for (int i2 = 0; i2 < entries.Count; i2++) { var entry = entries [i2]; if (entry == null) { entries.RemoveAt(i2); i2--; continue; } if (entry != null && entry.targetObject == null) { entry.DestroyFile(); } } } } if (GUILayout.Button("Save + Format", GUILayout.Width(110f))) { float totalFiles = 0; float filesChecked = 0; for (int i = 0; i < categories.Count; i++) { for (int i2 = 0; i2 < categories [i].entries.Count; i2++) { totalFiles++; } } for (int i = 0; i < categories.Count; i++) { var category = categories [i]; if (category == null) { categories.RemoveAt(i); i--; continue; } if (!category.folded) { continue; } var pathName = AssetDatabase.GetAssetPath(category); var nameAttempt = AssetDatabase.RenameAsset(pathName, category.name); int nameIndex = 0; while (nameAttempt != "") { nameAttempt = AssetDatabase.RenameAsset(pathName, category.name + " " + nameIndex++); } var entries = categories [i].entries; for (int i2 = 0; i2 < entries.Count; i2++) { var entry = entries [i2]; if (entry == null) { entries.RemoveAt(i2); i2--; continue; } if (entry != null && entry.targetObject != null) { entry.category = i; entry.entry = i2; pathName = AssetDatabase.GetAssetPath(entry); nameAttempt = AssetDatabase.RenameAsset(pathName, entry.name); nameIndex = 0; while (nameAttempt != "") { nameAttempt = AssetDatabase.RenameAsset(pathName, entry.name + " " + nameIndex++); } } EditorUtility.DisplayProgressBar("Formatting Files", pathName, filesChecked / totalFiles); filesChecked++; } } EditorUtility.ClearProgressBar(); } EditorGUILayout.EndHorizontal(); }
public override void OnInspectorGUI() { EiDatabase db = (EiDatabase)target; DrawDatabase(db); }