public void SelectItem(EditorModeItem item) { //Debug.Log ("EMDC is selecting items"); if (item.isSelected) //The logic here a bit confusing since displayController will select the item first { Debug.Log("Removing equippedItem in EditorModeData: " + item.englishName); Debug.Log("No of equippedItemsData before removing: " + equippedItemsData.Count); EditorModeItemData itemToBeRemoved = ParseItems(item.englishName, "remove"); //Removing all just solves the issue while (equippedItemsData.Contains(itemToBeRemoved)) { equippedItemsData.Remove(itemToBeRemoved); } Debug.Log("No of equippedItemsData after removing: " + equippedItemsData.Count); } else { Debug.Log("Adding equippedItem in EditorModeData: " + item.englishName); equippedItemsData.Add(ParseItems(item.englishName, "add")); } }
private EditorModeItemData ParseItems(string itemsString, string mode) { EditorModeItemData tempItemsData = new EditorModeItemData(); switch (mode) { case "remove": foreach (EditorModeItemData itemData in itemsData) { if (itemData.englishName.Equals(itemsString)) { itemData.equipped = false; tempItemsData = itemData; Debug.Log("ItemRemovedSuccessfully: " + itemData.englishName); } } break; case "add": foreach (EditorModeItemData itemData in itemsData) { if (itemData.englishName.Equals(itemsString)) { itemData.equipped = true; tempItemsData = itemData; Debug.Log("ItemAddedSuccessfully: " + itemData.englishName); } } break; default: Debug.Log("ParseItems(single string version) got error"); break; } return(tempItemsData); }