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