void CreateNewBluePrint()
        {
            CraftingBluePrint newBluePrint = CreateBluePrint.Create();

            inventoryItemList.bluePrints.Add(newBluePrint);
            viewIndex = inventoryItemList.bluePrints.Count;
            ClearReorderableList();
            InitializeReorderableList();
        }
        public static CraftingBluePrint Create()
        {
            int num = 1;

            while (System.IO.File.Exists(EditorPrefs.GetString("DatabasePath") + "/BluePrints/New BluePrint" + "(" + num.ToString() + ")" + ".asset"))
            {
                num++;
            }

            CraftingBluePrint asset = ScriptableObject.CreateInstance <CraftingBluePrint>();

            AssetDatabase.CreateAsset(asset, EditorPrefs.GetString("DatabasePath") + "/BluePrints/New BluePrint(" + num.ToString() + ").asset");
            asset.bluePrintName = asset.name;
            AssetDatabase.SaveAssets();
            return(asset);
        }
        void InitializeReorderableList()
        {
            if (inventoryItemList.bluePrints != null)
            {
                if (inventoryItemList.bluePrints.Count > 0)
                {
                    CraftingBluePrint obj = inventoryItemList.bluePrints[viewIndex - 1];
                    m_BluePrintSerializedObject = new SerializedObject(obj);
                    BluePrintCreateReorderableList();
                    BluePrintSetupReoirderableListHeaderDrawer();
                    BluePrintSetupReorderableListElementDrawer();
                    BluePrintSetupReorderableListOnAddDropdownCallback();

                    m_BuySerializedObject = new SerializedObject(obj);
                    BuyCreateReorderableList();
                    BuySetupReoirderableListHeaderDrawer();
                    BuySetupReorderableListElementDrawer();
                    BuySetupReorderableListOnAddDropdownCallback();
                }
            }
        }
 public BluePrintToAdd(CraftingBluePrint bluePrint, bool isMoved)
 {
     this.bluePrint = bluePrint;
     this.isMoved   = isMoved;
 }
Пример #5
0
        public ItemData AddItem(CraftingBluePrint craftingBluePrint)
        {
            Item newItem = Q_GameMaster.Instance.inventoryManager.itemDataBase.getItemByID(craftingBluePrint.targetItem.ID);

            for (int i = 0; i < items.Count; i++)
            {
                if (items[i].ID == -1)
                {
                    items[i] = newItem;
                    GameObject itemObj = Instantiate(m_CraftItem, slots[i].transform);
                    itemObj.name = newItem.itemName;

                    //Text nameText = itemObj.transform.Find("Name").GetComponent<Text>();
                    //Text priceText = itemObj.transform.Find("Price").GetComponent<Text>();
                    ItemData data = itemObj.GetComponent <ItemData>();//更新数据

                    Transform   price     = itemObj.transform.Find("Price");
                    List <Text> priceText = new List <Text>();

                    for (int j = 0; j < price.childCount; j++)
                    {
                        priceText.Add(price.GetChild(j).GetChild(0).GetComponent <Text>());
                    }

                    //更新购买信息
                    data.moveAfterCrafting = craftingBluePrint.moveAfterCrafting;
                    for (int j = 0; j < craftingBluePrint.craftingPrices.Count; j++)
                    {
                        data.realPrice += craftingBluePrint.craftingPrices[j].amount * craftingBluePrint.craftingPrices[j].currency.exchangeRate;
                        if (j < priceText.Count)
                        {
                            priceText[j].text = craftingBluePrint.craftingPrices[j].amount.ToString();
                        }
                    }

                    //更新所在背包状态
                    data.isStorged    = false;
                    data.isOnSell     = false;
                    data.isOnCrafting = true;

                    data.inv        = this;
                    data.m_Crafting = this;

                    //change icon
                    data.icon = itemObj.transform.Find("Icon").GetComponent <Image>();
                    if (!craftingBluePrint.icon)
                    {
                        data.icon.sprite = newItem.icon;
                    }
                    else
                    {
                        data.icon.sprite = craftingBluePrint.icon;
                    }


                    data.cd = itemObj.transform.Find("CD").GetComponent <Image>();
                    data.cd.gameObject.SetActive(true);

                    data.item = newItem;
                    data.slot = i;

                    //加inputfield
                    data.inputField = itemObj.transform.Find("Button").Find("InputField").GetComponent <InputField>();

                    //加名字
                    //nameText.text = data.item.itemName;

                    //更新蓝图信息
                    data.m_CraftingBluePrint = craftingBluePrint;

                    //如果是限定合成移除,则只能造一个,禁用inputfield
                    if (craftingBluePrint.moveAfterCrafting)
                    {
                        data.inputField.gameObject.SetActive(false);
                        itemObj.transform.Find("Button").Find("ButtonMin").gameObject.SetActive(false);
                        itemObj.transform.Find("Button").Find("ButtonPlus").gameObject.SetActive(false);
                    }

                    cds[data.slot] = new CoolDown(data.cd, craftingBluePrint.craftingTime);
                    return(data);
                }
            }
            return(null);
        }