public void addSlotToContainer(inventory inventory, int slotID, float x, float y, int slotSize) { // retrieve parent, slot, information on itself; GameObject spawnedSlot = Object.Instantiate(inventoryManager.INSTANCE.slotPrefab); inventorySlot slot = spawnedSlot.GetComponent <inventorySlot>(); RectTransform slotRT = slot.GetComponent <RectTransform>(); slot.setSlot(inventory, slotID, this); // attaches slot to the main container for inventory spawnedSlot.transform.SetParent(spawnedContainerPrefab.transform); spawnedSlot.transform.SetAsFirstSibling(); // sets the anchor position so it can reference the object slotRT.anchoredPosition = new Vector2(x, y); // sets the localpos to 0 z because otherwise it seems to fly around and it's a good backup slotRT.localPosition = new Vector3(slotRT.localPosition.x, slotRT.localPosition.y, 0); // sets the scale of each slot - scale is more like zoom slotRT.localScale = Vector3.one; // sets the size of each slot slotRT.sizeDelta = Vector2.one * slotSize; // add it to the container slots.Add(slot); }
public void addItem(int id) //Script for adding items. { int index = getIndex(id); if (index != 789) { //Add item to exicting inventory slot. inventory[index].amount++; var invtext = inventory [index].slot.transform.Find("invText").GetComponent <Text> (); invtext.text = "Amount: " + (inventory[index].amount + 1).ToString(); } else { //Add item and new inventory slot. inventorySlot invItem = new inventorySlot(id, id.ToString(), 0); invItem.slot = Instantiate(invSlot, invParent.transform); invItem.slot.transform.Find("invText").GetComponent <Text> ().text = "Amount: " + (0 + 1).ToString(); invItem.slot.transform.Find("invImg").GetComponent <Image> ().sprite = items [id].image; invItem.slot.GetComponent <Button>().onClick.AddListener(delegate { buildmanager.startBuilding(id); }); inventory.Add(invItem); } }
// Use this for initialization void Start() { StartCoroutine(pickUpItems()); AnimationCurve heightMultiplier = gameObject.GetComponent <ChunksController>().heightmultiplier; int X = Random.Range(-100, 100); int Z = Random.Range(-100, 100); int Y = Noise.NoiseCaculate(X, Z, heightMultiplier, GameObject.FindGameObjectWithTag("Player").GetComponent <ChunksController>().Seed) + 9; gameObject.transform.position = new Vector3(X, Y, Z); inventory = new inventorySlot[10, 4]; for (int i = 0; i < inventory.GetLength(0); i++) { for (int j = 0; j < inventory.GetLength(1); j++) { inventory[i, j] = new inventorySlot(); } } ItemsGUI = Resources.LoadAll <Sprite>("inventory items"); HandNumber = 1; InventoryPanel = GameObject.Find("inventory Panel"); invectoryItemsUI = new GameObject[inventory.GetLength(1) - 1]; for (int j = inventory.GetLength(1) - 1; j > 0; j--) { invectoryItemsUI[j - 1] = GameObject.Find("Inventory Items " + (j)); } InventoryPanel.SetActive(false); cursorLock = false; CursorUI = GameObject.Find("CursorUI"); CursorUI.SetActive(false); CursorUIBusy = false; CursorID = 0; CursorNumberOfItems = 0; CraftingPanel = GameObject.Find("Crafting Panel"); ShowPanel(0); CraftingPanel.SetActive(false); }
public bool addObject(GameObject objectItem) { item item = objectItem.GetComponent <item>(); for (int i = 0; i < inventorySlots.Length; i++) { if (inventorySlots[i].item != null) { if (item.uniqueName == inventorySlots[i].itemScript.uniqueName && item.maxstack > inventorySlots[i].amount) { inventorySlot slot = inventorySlots[i]; slot.amount++; inventorySlots[i] = slot; inventorySlots[i].panel.GetComponentInChildren <Text>().text = slot.amount.ToString(); Destroy(objectItem); return(true); } } } for (int i = 0; i < inventorySlots.Length; i++) { if (inventorySlots[i].item == null) { inventorySlot slot = inventorySlots[i]; slot.amount = 1; int j; for (j = 0; j < GameData.Instance.items.Length; j++) { if (GameData.Instance.items[j].GetComponent <item>().uniqueName == item.uniqueName) { slot.itemId = j; break; } } if (j == GameData.Instance.items.Length) { Debug.LogWarning("Object not found in GameData"); break; } Destroy(objectItem); GameObject text = inventorySlots[i].panel.transform.GetChild(1).gameObject; text.SetActive(true); text.GetComponent <Text>().text = slot.amount.ToString(); GameObject UIObject = Instantiate(GameData.Instance.items[slot.itemId]); UIObject.transform.SetParent(slot.panel.transform.GetChild(0)); UIObject.transform.localPosition = new Vector3(0, 0, 0); UIObject.transform.localEulerAngles = new Vector3(0, 0, 0); UIObject.transform.localScale = new Vector3(1, 1, 1); slot.item = UIObject; inventorySlots[i] = slot; if (i >= hotBar.transform.childCount) { UIObject.layer = 10; } else { UIObject.layer = 5; } return(true); } } return(false); }