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; } }
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++; }
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--; } }
private void OnGetItemHandler(ActivateableItems newItem) { if (itemsArray.HeldItems > itemsArray.ItemLimit) { return; } itemsArray.Add(newItem); //if (itemsArray.HeldItems <=1) currentSelectedItem++; UpdateItemUI(); }
public ItemNode(ActivateableItems newItem) { storedItem = newItem; }
public void GetItem(ActivateableItems newItem) { OnGetItem?.Invoke(newItem); }