public override void OnInspectorGUI() { DrawDefaultInspector(); chestContainer = (ChestContainer)target; var stagePrefab = chestContainer.gameObject.scene; var EditorScenes = EditorSceneManager.GetActiveScene(); if (stagePrefab == null) { return; } if (EditorScenes.name != stagePrefab.name) { return; } EditorUtility.SetDirty(target); EditorGUILayout.Space(); EditorGUILayout.LabelField("Container Editor", EditorStyles.boldLabel); currentDatabase = (ObjectDatabase)EditorGUILayout.ObjectField(currentDatabase, typeof(ObjectDatabase), false, GUILayout.MaxWidth(200)); tempContainer = chestContainer.itemContainer; EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginVertical("Box"); { List <string> options = new List <string>(); List <Item> items = new List <Item>(); if (currentDatabase != null) { itemType = (ItemData_Type)EditorGUILayout.EnumPopup("Item type", itemType); if (itemType == ItemData_Type.Ammo) { items.AddRange(currentDatabase.Data.allItemAmmo); } else if (itemType == ItemData_Type.Junk) { items.AddRange(currentDatabase.Data.allItemJunk); } else if (itemType == ItemData_Type.Key) { items.AddRange(currentDatabase.Data.allItemKey); } else if (itemType == ItemData_Type.Weapon) { items.AddRange(currentDatabase.Data.allItemWeapon); } else if (itemType == ItemData_Type.Misc) { items.AddRange(currentDatabase.Data.allItemMiscs); } items.OrderBy(z => z); foreach (Item item in items) { options.Add(item.ID); } } selectedItem = EditorGUILayout.Popup("Item", selectedItem, options.ToArray()); if (items.Count > selectedItem) { if (items[selectedItem] != null) { currentItem = items[selectedItem]; } } if (GUILayout.Button("Add Item", GUILayout.Width(100))) { if (currentItem != null) { ItemData newItem = new ItemData(); newItem.ID = currentItem.ID; newItem.DatabaseName = currentDatabase.Data.name; newItem.count = 1; newItem.item_Type = MainUtility.Check_ItemType(currentItem); tempContainer.all_InventoryItem.Add(newItem); } else { Debug.LogError("No item!"); } } } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Box"); { foreach (ItemData itemDat in tempContainer.all_InventoryItem) { EditorGUILayout.BeginHorizontal("Box"); { GenericMenu menu = new GenericMenu(); itemDat.count = EditorGUILayout.IntField(itemDat.count, GUILayout.Width(40)); if (GUILayout.Button(itemDat.DatabaseName + " | " + itemDat.ID, buttonStyle)) { menu.AddItem(new GUIContent("Empty"), false, EmptyFunc); menu.AddItem(new GUIContent("Duplicate"), false, Context_Duplicate, itemDat); menu.AddItem(new GUIContent("Delete"), false, Context_Delete, itemDat); menu.ShowAsContext(); } } EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndVertical(); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Chest Container"); chestContainer.itemContainer = tempContainer; } }
private void CreateNew_Pickables() { WorldObjectScript worldObjectScript = target as WorldObjectScript; PickableScript pickableScript = target as PickableScript; ActorScript actorScript = target as ActorScript; var dir = NewFolder(target.gameObject.name); var path = $"{dir}/{target.gameObject.name}.prefab"; var prefab1 = PrefabUtility.SaveAsPrefabAssetAndConnect(target.gameObject, path, InteractionMode.UserAction); ItemData_Type itemType = MainUtility.Convert_ObjectToItemType(pickableScript.Get_Pickable_Data().formID.ObjectType); if (itemType == ItemData_Type.Ammo) { Item_Ammo item = new Item_Ammo(); item.ID = pickableScript.Get_ObjectRefData().formID.BaseID; item.gameModel = prefab1; objectDatabase.Data.allItemAmmo.Add(item); } else if (itemType == ItemData_Type.Armor) { Item_Armor item = new Item_Armor(); item.ID = pickableScript.Get_ObjectRefData().formID.BaseID; item.gameModel = prefab1; objectDatabase.Data.allItemArmors.Add(item); } else if (itemType == ItemData_Type.Consume) { Item_Consumables item = new Item_Consumables(); item.ID = pickableScript.Get_ObjectRefData().formID.BaseID; item.gameModel = prefab1; objectDatabase.Data.allItemConsumables.Add(item); } else if (itemType == ItemData_Type.Junk) { Item_Junk item = new Item_Junk(); item.ID = pickableScript.Get_ObjectRefData().formID.BaseID; item.gameModel = prefab1; objectDatabase.Data.allItemJunk.Add(item); } else if (itemType == ItemData_Type.Key) { Item_Key item = new Item_Key(); item.ID = pickableScript.Get_ObjectRefData().formID.BaseID; item.gameModel = prefab1; objectDatabase.Data.allItemKey.Add(item); } else if (itemType == ItemData_Type.Misc) { Item_Misc item = new Item_Misc(); item.ID = pickableScript.Get_ObjectRefData().formID.BaseID; item.gameModel = prefab1; objectDatabase.Data.allItemMiscs.Add(item); } else if (itemType == ItemData_Type.Weapon) { Item_Weapon item = new Item_Weapon(); item.ID = pickableScript.Get_ObjectRefData().formID.BaseID; item.gameModel = prefab1; objectDatabase.Data.allItemWeapon.Add(item); } }