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("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(); } } }