Example #1
0
    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);
    }
Example #2
0
    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);
        }
    }
Example #3
0
    // 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);
    }
Example #4
0
    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);
    }