public void ItemOnGUIDoubleClick(ItemHandleOnGUI obj)
 {
     gameObject.SetActive(true);
     GameCentalPr.Instance.PlayerInputActionManager.ResetClient(this);
     obj.Clean();
     CursorManager.GetInstance().setMouse();
 }
 public void ItemOnGUIDoubleClick(ItemHandleOnGUI guiObj)
 {
     if (GameCentalPr.Instance.PlayerProcessor.AddHealth(addHealth))
     {
         guiObj.Clean();
         LEInventory inventory = GetComponent <LEInventory>();
         Item        item      = GetComponentInChildren <ItemHandleOnObj>().item;
         inventory.RemoveItem(item);
         DestroyImmediate(gameObject);
     }
 }
Exemplo n.º 3
0
 public void statckableSettings()
 {
     for (int i = 0; i < slotsGroup.transform.childCount; i++)
     {
         if (slotsGroup.transform.GetChild(i).childCount > 0)
         {
             ItemHandleOnGUI itemHandle = slotsGroup.transform.GetChild(i).GetChild(0).GetComponent <ItemHandleOnGUI>();
             if (itemHandle.item.maxStack > 1)
             {
             }
         }
     }
 }
Exemplo n.º 4
0
    public void updateSlotAmount()
    {
        slotsGroupRTF.localPosition = Vector3.zero;

        List <GameObject> slotList = new List <GameObject>();

        //get all Slot
        foreach (Transform child in slotsGroup.transform)
        {
            if (child.tag == "Slot")
            {
                slotList.Add(child.gameObject);
            }
        }

        //protect the overflowing items
        List <Item> itemsToMove = new List <Item>();

        while (slotList.Count > column * row)
        {
            GameObject      go         = slotList[slotList.Count - 1];
            ItemHandleOnGUI itemInSlot = go.GetComponentInChildren <ItemHandleOnGUI>();
            if (itemInSlot != null)
            {
                itemsToMove.Add(itemInSlot.item);
                itemsInPanel.Remove(itemInSlot.item);
            }
            slotList.Remove(go);
            DestroyImmediate(go);
        }

        //Add more Slot
        if (slotList.Count < column * row)
        {
            for (int i = slotList.Count; i < (column * row); i++)
            {
                GameObject slot = (GameObject)Instantiate(prefabSlot);
                slot.name = "Slot " + (slotList.Count + 1).ToString();
                slot.transform.SetParent(slotsGroup.transform);
                slotList.Add(slot);
            }
        }

        if (itemsToMove != null && itemsInPanel.Count < column * row)
        {
            foreach (Item i in itemsToMove)
            {
                addItemToPanel(i.itemID);
            }
        }
    }
    void ItemDataBase()
    {
        EditorGUILayout.BeginVertical("Box");

        GUILayout.BeginHorizontal();
        {
            GUILayout.FlexibleSpace();
            toolbarInt = GUILayout.Toolbar(toolbarInt, toolbarStrings, GUILayout.Width(position.width - 18));
        }
        GUILayout.EndHorizontal();

        scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
        {
            GUILayout.Space(10);

            if (toolbarInt == 0) //Create Item
            {
                GUI.color = Color.green;
                ///https://docs.unity3d.com/ScriptReference/GUILayout.Width.html
                if (GUILayout.Button("Add Item", GUILayout.Width(position.width - 23))) //position.width : the width of the rectangle, measured from the X position
                {
                    AddItem();
                    showItem = true;
                }
                if (showItem)
                {
                    GUI.color = Color.white;

                    GUILayout.BeginVertical("Box", GUILayout.Width(position.width - 23));
                    try {
                        itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemName = EditorGUILayout.TextField("Item Name", itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemName, GUILayout.Width(position.width - 30));
                        itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemID   = itemDatabaseList.itemList.Count - 1;

                        GUILayout.BeginHorizontal();
                        {
                            GUILayout.Label("Item Description");
                            GUILayout.Space(47);
                            itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemDesc = EditorGUILayout.TextArea(itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemDesc, GUILayout.Width(position.width - 180), GUILayout.Height(70));
                        }
                        GUILayout.EndHorizontal();

                        itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemIcon   = (Sprite)EditorGUILayout.ObjectField("Item Icon", itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemIcon, typeof(Sprite), false, GUILayout.Width(position.width - 33));
                        itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemPrefab = (GameObject)EditorGUILayout.ObjectField("Item Prefab", itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemPrefab, typeof(GameObject), false, GUILayout.Width(position.width - 33));
                        itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemType   = (ItemType)EditorGUILayout.EnumPopup("Item Type", itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemType, GUILayout.Width(position.width - 33));
                        itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].rarity     = EditorGUILayout.IntSlider("Rarity", itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].rarity, 0, 100);

                        GUILayout.BeginVertical("Box", GUILayout.Width(position.width - 33));
                        {
                            showItemAttributes = EditorGUILayout.Foldout(showItemAttributes, "Item attributes");
                            if (showItemAttributes)
                            {
                                GUILayout.BeginHorizontal();
                                {
                                    addAttributeName = EditorGUILayout.TextField("Name", addAttributeName);
                                    GUI.color        = Color.green;
                                    if (GUILayout.Button("Add"))
                                    {
                                        AddAttribute();
                                    }
                                }
                                GUILayout.EndHorizontal();

                                GUILayout.Space(10);
                                GUI.color = Color.white;

                                {
                                    EditorGUI.BeginChangeCheck();
                                    attributeAmount = EditorGUILayout.IntSlider("Amount", attributeAmount, 0, 50);
                                    if (EditorGUI.EndChangeCheck())
                                    {
                                        attributeName  = new int[attributeAmount];
                                        attributeValue = new int[attributeAmount];
                                    }
                                }

                                string[] attributes = new string[itemAttributeList.itemAttributeList.Count];
                                for (int i = 0; i < attributes.Length; i++)
                                {
                                    attributes[i] = itemAttributeList.itemAttributeList[i].attributeName;
                                }

                                for (int k = 0; k < attributeAmount; k++)
                                {
                                    EditorGUILayout.BeginHorizontal();
                                    attributeName[k]  = EditorGUILayout.Popup("Attribute " + (k + 1), attributeName[k], attributes, EditorStyles.popup);
                                    attributeValue[k] = EditorGUILayout.IntField("Value", attributeValue[k]);
                                    EditorGUILayout.EndHorizontal();
                                }

                                if (GUILayout.Button("Save"))
                                {
                                    List <ItemAttribute> iA = new List <ItemAttribute>();
                                    for (int i = 0; i < attributeAmount; i++)
                                    {
                                        iA.Add(new ItemAttribute(attributes[attributeName[i]], attributeValue[i]));
                                    }
                                    itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].itemAttributes = iA;
                                }
                            }
                        }
                        GUILayout.EndVertical();
                        itemDatabaseList.itemList[itemDatabaseList.itemList.Count - 1].indexItemInList = 999;
                    } catch {}
                    GUILayout.EndVertical();
                }
            }

            if (toolbarInt == 1) //manage Item
            {
                if (itemDatabaseList == null)
                {
                    itemDatabaseList = (ItemDataBaseList)Resources.Load("ItemDatabase");
                }
                if (itemDatabaseList.itemList.Count < 1)
                {
                    GUILayout.Label("There is no Item in the Database!");
                }
                else
                {
                    GUILayout.BeginVertical();
                    {
                        for (int i = 0; i < itemDatabaseList.itemList.Count; i++)
                        {
                            try
                            {
                                manageItem.Add(false);

                                GUILayout.BeginVertical("Box");
                                {
                                    manageItem[i] = EditorGUILayout.Foldout(manageItem[i], "" + itemDatabaseList.itemList[i].itemName);
                                    if (manageItem[i])
                                    {
                                        EditorUtility.SetDirty(itemDatabaseList);

                                        GUI.color = Color.red;
                                        if (GUILayout.Button("Delete Item"))
                                        {
                                            itemDatabaseList.itemList.RemoveAt(i);
                                            EditorUtility.SetDirty(itemDatabaseList);
                                        }

                                        GUI.color = Color.white;
                                        itemDatabaseList.itemList[i].itemName = EditorGUILayout.TextField("Item Name", itemDatabaseList.itemList[i].itemName, GUILayout.Width(position.width - 45));
                                        itemDatabaseList.itemList[i].itemID   = i;

                                        GUILayout.BeginHorizontal();
                                        {
                                            GUILayout.Label("Item ID");
                                            GUILayout.Label(" " + i);
                                        }
                                        GUILayout.EndHorizontal();

                                        GUILayout.BeginHorizontal();
                                        {
                                            GUILayout.Label("Item Description");
                                            GUILayout.Space(47);
                                            itemDatabaseList.itemList[i].itemDesc = EditorGUILayout.TextArea(itemDatabaseList.itemList[i].itemDesc, GUILayout.Width(position.width - 195), GUILayout.Height(70));
                                        }
                                        GUILayout.EndHorizontal();

                                        itemDatabaseList.itemList[i].itemIcon   = (Sprite)EditorGUILayout.ObjectField("Item Icon", itemDatabaseList.itemList[i].itemIcon, typeof(Sprite), false, GUILayout.Width(position.width - 45));
                                        itemDatabaseList.itemList[i].itemPrefab = (GameObject)EditorGUILayout.ObjectField("Item Model", itemDatabaseList.itemList[i].itemPrefab, typeof(GameObject), false, GUILayout.Width(position.width - 45));
                                        itemDatabaseList.itemList[i].itemType   = (ItemType)EditorGUILayout.EnumPopup("Item Type", itemDatabaseList.itemList[i].itemType, GUILayout.Width(position.width - 45));
                                        itemDatabaseList.itemList[i].rarity     = EditorGUILayout.IntSlider("Rarity", itemDatabaseList.itemList[i].rarity, 0, 100);

                                        GUILayout.BeginVertical("Box", GUILayout.Width(position.width - 45));
                                        {
                                            showItemAttributes = EditorGUILayout.Foldout(showItemAttributes, "Item Attributes");
                                            if (showItemAttributes)
                                            {
                                                int      iaCount    = itemDatabaseList.itemList[i].itemAttributes.Count;
                                                string[] attributes = new string[iaCount];

                                                string[] allAtributes = new string[itemAttributeList.itemAttributeList.Count];
                                                for (int ii = 0; ii < itemAttributeList.itemAttributeList.Count; ii++)
                                                {
                                                    allAtributes[ii] = itemAttributeList.itemAttributeList[ii].attributeName;
                                                }

                                                for (int t = 0; t < attributes.Length; t++)
                                                {
                                                    attributes[t]           = itemDatabaseList.itemList[i].itemAttributes[t].attributeName;
                                                    attributeNamesManage[t] = t;
                                                    attributeValueManage[t] = itemDatabaseList.itemList[i].itemAttributes[t].attributeValue;
                                                }

                                                for (int z = 0; z < iaCount; z++)
                                                {
                                                    EditorGUILayout.BeginHorizontal();
                                                    {
                                                        GUI.color = Color.red;
                                                        if (GUILayout.Button("-"))
                                                        {
                                                            itemDatabaseList.itemList[i].itemAttributes.RemoveAt(z);
                                                        }
                                                        GUI.color = Color.white;
                                                        attributeNamesManage[z] = EditorGUILayout.Popup(attributeNamesManage[z], attributes, EditorStyles.popup);
                                                        itemDatabaseList.itemList[i].itemAttributes[z].attributeValue = EditorGUILayout.IntField("Value", itemDatabaseList.itemList[i].itemAttributes[z].attributeValue);
                                                    }
                                                    EditorGUILayout.EndHorizontal();
                                                }

                                                newAttributeIndex = EditorGUILayout.Popup(newAttributeIndex, allAtributes, EditorStyles.popup);
                                                newAttributeValue = EditorGUILayout.IntField("Value:", newAttributeValue);

                                                GUI.color = Color.green;
                                                if (GUILayout.Button("+"))
                                                {
                                                    string newAttributeName = itemAttributeList.itemAttributeList[newAttributeIndex].attributeName;
                                                    itemDatabaseList.itemList[i].itemAttributes.Add(new ItemAttribute(newAttributeName, newAttributeValue));
                                                }

                                                GUI.color = Color.white;
                                                if (GUILayout.Button("Save"))
                                                {
                                                    List <ItemAttribute> iA = new List <ItemAttribute>();
                                                    for (int k = 0; k < itemDatabaseList.itemList[i].itemAttributes.Count; k++)
                                                    {
                                                        iA.Add(new ItemAttribute(attributes[attributeNamesManage[k]], attributeValueManage[k]));
                                                    }
                                                    itemDatabaseList.itemList[i].itemAttributes = iA;
                                                    GameObject[] items = GameObject.FindGameObjectsWithTag("Item");
                                                    for (int z = 0; z < items.Length; z++)
                                                    {
                                                        ItemHandleOnGUI itemhandle = items[z].GetComponent <ItemHandleOnGUI>();
                                                        if (itemhandle.item.itemID == itemDatabaseList.itemList[i].itemID)
                                                        {
                                                            itemhandle.item = itemDatabaseList.itemList[i];
                                                            Debug.Log("Reset");
                                                        }
                                                    }
                                                    manageItem[i] = false;
                                                }
                                            }
                                        }
                                        GUILayout.EndVertical();
                                        EditorUtility.SetDirty(itemDatabaseList);
                                    }
                                }
                                GUILayout.EndVertical();
                            }
                            catch { }
                        }
                    }
                    GUILayout.EndVertical();
                }
            }
        }
        EditorGUILayout.EndScrollView();

        EditorGUILayout.EndVertical();
    }
Exemplo n.º 6
0
 public void ItemOnGUIDoubleClick(ItemHandleOnGUI obj)
 {
 }