private void FillPlayerInventoryPanel() { //Get the player's inventory UIControllerScript uic = otherCanvas.GetComponent <UIControllerScript>(); List <Placeable> inventoryData = uic.getInventoryData(); List <int> inventoryCount = uic.getInventoryCount(); //Get the panel to add to RectTransform pip = GameObject.Find("playerInventoryPanel").GetComponent <RectTransform>(); for (int ii = 0; ii < fpc.inventorySize; ii++) { //Add item to player inventory rect //Build the slot regardless of whether or not it will be empty GameObject slotObject = Instantiate(playerInventorySlotPrefab, pip); MenuSlot slot = slotObject.GetComponent <MenuSlot>(); slot.slotIndex = ii; //Add an item to the slot if it shouldn't be empty if (inventoryData[ii] != null && inventoryCount[ii] > 0) { //Add the slot item to the slot GameObject itemObject = Instantiate(slotItemPrefab, slot.GetComponent <RectTransform>()); MenuSlotItem item = itemObject.GetComponent <MenuSlotItem>(); item.setID(inventoryData[ii].id, inventoryData[ii].isFlower); item.setCount(inventoryCount[ii]); slot.GetComponent <MenuSlot>().setItem(item); } } }
private GameObject newSlotItem(uint id, int count, bool isFlower) { HomeBaseUIController hbuic = GetComponentInParent <HomeBaseUIController>(); GameObject resultObject = GameObject.Instantiate(hbuic.slotItemPrefab); MenuSlotItem slotItem = resultObject.GetComponent <MenuSlotItem>(); slotItem.count = count; slotItem.setID(id, isFlower); return(resultObject); }
private void postSetDecorationsTab() { Transform grid = currentPageObject.transform.Find("decorationInventoryHolder"); Canvas myCanvas = transform.GetComponentInParent <Canvas>(); GetComponent <RectTransform>().ForceUpdateRectTransforms(); float rectWidth = grid.GetComponent <RectTransform>().rect.width *myCanvas.scaleFactor * .5f; float rectHeight = grid.GetComponent <RectTransform>().rect.height *myCanvas.scaleFactor * .5f; rectHeight = Mathf.Min(rectWidth * .75f, rectHeight); List <GameObject> slotList = new List <GameObject>(); for (int ii = 0; ii < 4; ii += 1) { uint itemID = (uint)decorationTabIDs[decorationTab, ii]; //GetComponent<RectTransform>().ForceUpdateRectTransforms(); GameObject seller = Instantiate(decorationPurchasePrefab, grid); GameObject slot = Instantiate(homeInventorySlotPrefab, seller.GetComponent <RectTransform>()); slotList.Add(slot); Text priceText = seller.GetComponentInChildren <Text>(); slot.transform.SetAsFirstSibling(); slot.GetComponent <MenuSlot>().slotIndex = 0; slot.GetComponent <MenuSlot>().type = MenuSlot.SlotType.DecorationSlot; GameObject item = Instantiate(slotItemPrefab, slot.GetComponent <RectTransform>()); MenuSlotItem itemObject = item.GetComponent <MenuSlotItem>(); itemObject.setID(itemID, false); itemObject.setCount(getHomeInventoryCount(itemID, false)); slot.GetComponent <MenuSlot>().setItemNoSort(itemObject); slot.GetComponent <MenuSlot>().getItem().updateModelScale(rectWidth * .5f, rectHeight); GameObject buyButtom = seller.transform.GetComponentInChildren <UnityEngine.UI.Button>().gameObject; priceText.text = "PRICE: " + decorationValue[(uint)decorationTabIDs[decorationTab, ii]]; buyButtom.GetComponent <UnityEngine.UI.Button>().onClick.AddListener(delegate { purchaseDecoration(itemID, slot.GetComponent <MenuSlot>()); }); buyButtom.GetComponentInChildren <Text>().text = "BUY"; } GameObject priceBreakdownButton = GameObject.Find("priceBreakdownButton"); priceBreakdownButton.GetComponentInChildren <Text>().text = sellAllPrefix; grid.GetComponent <GridLayoutGroup>().cellSize = new Vector2(rectWidth, rectHeight); //LayoutRebuilder.ForceRebuildLayoutImmediate(GetComponent<RectTransform>()); GetComponent <RectTransform>().ForceUpdateRectTransforms(); updatePriceBreakdownButton(false); //Set up the sell display slot updateFlowerDisplaySlot(null); }
private void postSetFlowersTab() { //Fill in the display inventory if (searchMask != 0) { displayInventory = new Dictionary <uint, int>(); for (int ii = 0; ii < homeFlowerInventory.Keys.Count; ii++) { if (shouldDisplayFlower(homeFlowerInventory.Keys.ElementAt(ii))) { displayInventory.Add(homeFlowerInventory.Keys.ElementAt(ii), homeFlowerInventory.Values.ElementAt(ii)); } } } else { displayInventory = homeFlowerInventory; } //Just add some slots and things GameObject flowerGridObject = GameObject.Find("flowerGrid"); Transform grid = flowerGridObject.transform; //Figure out how many flowers to put on each page Canvas myCanvas = transform.GetComponentInParent <Canvas>(); float rectWidth = grid.GetComponent <RectTransform>().rect.width *myCanvas.scaleFactor; float rectHeight = grid.GetComponent <RectTransform>().rect.height *myCanvas.scaleFactor; Debug.Log(rectWidth + "," + rectHeight + " with a scale factor of " + myCanvas.scaleFactor); int gridWidth = (int)Mathf.Floor(rectWidth / slotSize); int gridHeight = (int)Mathf.Floor(rectHeight / slotSize); flowersPerPage = (gridHeight * gridWidth) - 1; //Add an empty slot //Fill the screen with flowers and slots int startPosition = flowersPerPage * currentFlowerPage; Debug.Log("start position is: " + startPosition); //Loop and fill the page with the right flowers for (int ii = startPosition; ii <= Mathf.Min(startPosition + flowersPerPage - 1, displayInventory.Count - 1); ii += 1) { uint flowerID = displayInventory.Keys.ElementAt(ii); int count = displayInventory.Values.ElementAt(ii); if (shouldDisplayFlower(flowerID)) { GameObject slot = Instantiate(homeInventorySlotPrefab, grid); slot.GetComponent <MenuSlot>().slotIndex = ii; GameObject item = Instantiate(slotItemPrefab, slot.GetComponent <RectTransform>()); MenuSlotItem itemObject = item.GetComponent <MenuSlotItem>(); itemObject.setID(flowerID, true); itemObject.setCount(count); slot.GetComponent <MenuSlot>().setItem(itemObject); homeFlowerSlots.Add(slot); } } //If there are more flowersPerPage than flowers in the home inventory then... //fill in the rest of the screen with blank slots int ss = homeFlowerSlots.Count; //this is just for setting indexes while (homeFlowerSlots.Count <= flowersPerPage) { GameObject slot = Instantiate(homeInventorySlotPrefab, grid); slot.GetComponent <MenuSlot>().slotIndex = ss; homeFlowerSlots.Add(slot); ss += 1; } setPageCountText(); updatePriceBreakdownButton(true); //Set up the sell display slot updateFlowerDisplaySlot(null); }