Esempio n. 1
0
    private void UpdateItemUI()
    {
        if (itemsArray.Retrieve(currentSelectedItem) != null)
        {
            ActivateableItems itemOnCurrentSpot = itemsArray.Retrieve(currentSelectedItem);

            if (itemOnCurrentSpot.transform.parent != Camera.main.transform)
            {
                itemOnCurrentSpot.transform.SetParent(Camera.main.transform);
            }

            itemOnCurrentSpot.MoveToActive(position0Items);
        }

        //Set extra items as inactive

        ItemNode currentNode = itemsArray.root;

        while (currentNode != null)
        {
            if (currentNode.Index != currentSelectedItem)
            {
                currentNode.storedItem.Deactivate();
            }
            currentNode = currentNode.nextNode;
        }
    }
Esempio n. 2
0
    public void Add(ActivateableItems newItem)
    {
        ItemNode newNode = new ItemNode(newItem);


        if (root == null)
        {
            root       = newNode;
            root.Index = 0;
        }

        else
        {
            ItemNode currentNode = root;
            while (currentNode.nextNode != null)
            {
                currentNode = currentNode.nextNode;
            }

            currentNode.nextNode = newNode;
            newNode.Index        = currentNode.Index + 1;
        }


        HeldItems++;
    }
Esempio n. 3
0
    public void Remove(int index)
    {
        if (HeldItems >= 1)
        {
            if (index != 0)
            {
                ItemNode currentNode = root;

                /*
                 * while (currentNode.Index < index - 1)
                 * {
                 *  currentNode = currentNode.nextNode;
                 * }
                 *
                 * currentNode.nextNode = currentNode.nextNode.nextNode;
                 *
                 * while (currentNode != null)
                 * {
                 *  currentNode = currentNode.nextNode;
                 *  currentNode.Index -= 1;
                 * }
                 */


                while (currentNode.Index < index)
                {
                    currentNode = currentNode.nextNode;
                }

                PreviousNode(index).nextNode = currentNode.nextNode;
                ActivateableItems itemToDelete = currentNode.storedItem;
                itemToDelete.DestroyItem();
                currentNode = currentNode.nextNode;



                while (currentNode != null)
                {
                    currentNode.Index--;
                    currentNode = currentNode.nextNode;
                }
            }

            else
            {
                root.storedItem.DestroyItem();
                root = root.nextNode;
                ItemNode currentNode = root;

                while (currentNode != null)
                {
                    currentNode.Index -= 1;
                    currentNode        = currentNode.nextNode;
                }
            }


            HeldItems--;
        }
    }
Esempio n. 4
0
    private void OnGetItemHandler(ActivateableItems newItem)
    {
        if (itemsArray.HeldItems > itemsArray.ItemLimit)
        {
            return;
        }

        itemsArray.Add(newItem);
        //if (itemsArray.HeldItems <=1)
        currentSelectedItem++;
        UpdateItemUI();
    }
Esempio n. 5
0
 public ItemNode(ActivateableItems newItem)
 {
     storedItem = newItem;
 }
Esempio n. 6
0
 public void GetItem(ActivateableItems newItem)
  {
      OnGetItem?.Invoke(newItem);
  }