evershade/Assets/Scripts/Editor/GameItemEditor.cs

39 lines
1.2 KiB
C#

using Data.ScriptableObjects;
using Data.ScriptableObjects.Items;
using Types.Items;
using UnityEditor;
namespace Editor
{
[CustomEditor(typeof(GameItem))]
public class GameItemEditor : UnityEditor.Editor
{
public override void OnInspectorGUI()
{
var scriptableGameItem = (GameItemSo)target;
var item = scriptableGameItem.Clone();
if (item.ID == 0)
{
var database =
AssetDatabase.LoadAssetAtPath<ItemDatabase>("Assets/Resources/GameItems/ItemDatabase.asset");
if (database != null)
{
item.ID = database.GetNextId();
database.AddItem(item);
EditorUtility.SetDirty(database);
EditorUtility.SetDirty(scriptableGameItem);
AssetDatabase.SaveAssets();
}
else
{
EditorGUILayout.HelpBox(
"ItemDatabase not found. Please create one at Assets/Resources/GameItems/ItemDatabase.asset",
MessageType.Error);
}
}
base.OnInspectorGUI();
}
}
}