gather-and-defend/Assets/Editor/DatabaseEditor.cs
Felix Boucher 7dba305d30 fixes to berry harvesting
- berry harvester appears on bush tiles
- change berry resource for food instead
- some structural change to reduce bugs
2023-11-12 18:26:36 -05:00

53 lines
1.5 KiB
C#

using System.Linq;
using UnityEditor;
using UnityEngine;
using System.IO;
using System.Collections.Generic;
using UnityEngine.WSA;
[CustomEditor(typeof(Database))]
public class DatabaseEditor : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
if (GUILayout.Button("fetch assets"))
{
var targ = target as Database;
targ.ScriptableObjects.Clear();
targ.Prefabs.Clear();
foreach (var folder in targ.Folders)
{
var path = AssetDatabase.GetAssetPath(folder);
foreach (var file in GetAllPaths(path))
{
var scriptableObject = AssetDatabase.LoadAssetAtPath<ScriptableObject>(file);
if (scriptableObject && !targ.ScriptableObjects.Contains(scriptableObject))
{
targ.ScriptableObjects.Add(scriptableObject);
}
var prefab = AssetDatabase.LoadAssetAtPath<GameObject>(file);
if (prefab && !targ.Prefabs.Contains(prefab))
{
targ.Prefabs.Add(prefab);
}
}
}
}
}
private static string[] GetAllPaths(string target)
{
var files = Directory.GetFiles(target).ToList();
foreach (var dir in Directory.GetDirectories(target))
{
files.AddRange(GetAllPaths(dir));
}
return files.ToArray();
}
}