using System; using System.Collections.Generic; using System.IO; using System.Linq; using UnityEditor; using UnityEditor.UIElements; using UnityEngine; using UnityEngine.UIElements; public class ItemDatabase : EditorWindow { private Sprite defaultItemIcon; private static List databaseItems = new List(); private static List buildableItems = new List(); private static List menuItems = new List(); private VisualElement itemsTab; private static VisualTreeAsset m_ItemRowTemplate; private ListView itemListView; private float itemHeight = 40; private ScrollView detailSection; private VisualElement largeDisplayIcon; private Item activeItem; private VisualTreeAsset BuildableObjectButtonTemplate; private VisualTreeAsset MenuItemTemplate; [MenuItem("WUG/Item Database")] public static void Init() { ItemDatabase wnd = GetWindow(); wnd.titleContent = new GUIContent("Item Database"); Vector2 size = new Vector2(800, 475); wnd.minSize = size; wnd.maxSize = size; } public void CreateGUI() { var visualTree = AssetDatabase.LoadAssetAtPath("Assets/WUG/Editor/ItemDatabase.uxml"); VisualElement rootFromUXML = visualTree.Instantiate(); rootVisualElement.Add(rootFromUXML); var styleSheet = AssetDatabase.LoadAssetAtPath("Assets/WUG/Editor/ItemDatabase.uss"); rootVisualElement.styleSheets.Add(styleSheet); defaultItemIcon = (Sprite)AssetDatabase.LoadAssetAtPath("Assets/WUG/Sprites/UnknownIcon.png", typeof(Sprite)); m_ItemRowTemplate = AssetDatabase.LoadAssetAtPath("Assets/Scripts/UI/ItemDatabase/ItemRowTemplate.uxml"); BuildableObjectButtonTemplate = AssetDatabase.LoadAssetAtPath("Assets/Scripts/UI/ItemDatabase/BuildableObjectTemplate.uxml"); MenuItemTemplate = AssetDatabase.LoadAssetAtPath("Assets/Scripts/UI/ItemDatabase/MenuItemTemplate.uxml"); LoadAllItems(); LoadAllBuildableItems(); GenerateMenuItems(); itemsTab = rootVisualElement.Q("ItemsTab"); GenerateListView(); detailSection = rootVisualElement.Q("ScrollView_Details"); detailSection.style.visibility = Visibility.Hidden; largeDisplayIcon = detailSection.Q("Icon"); rootVisualElement.Q