private void Upgrade() { if (checkNothing) { selectedCheckMethod = SelectedCheckMethod.NoneSelected; checkNothing = false; } }
override public void ShowGUI(List <ActionParameter> parameters) { Upgrade(); if (inventoryManager == null) { inventoryManager = AdvGame.GetReferences().inventoryManager; } selectedCheckMethod = (SelectedCheckMethod)EditorGUILayout.EnumPopup("Check selected item is:", selectedCheckMethod); if (inventoryManager != null) { if (selectedCheckMethod == SelectedCheckMethod.InSpecificCategory) { // Create a string List of the field's names (for the PopUp box) List <string> labelList = new List <string>(); int i = 0; int binNumber = 0; if (parameterID == -1) { binNumber = -1; } if (inventoryManager.bins != null && inventoryManager.bins.Count > 0) { foreach (InvBin _bin in inventoryManager.bins) { labelList.Add(_bin.label); // If a category has been removed, make sure selected is still valid if (_bin.id == binID) { binNumber = i; } i++; } if (binNumber == -1) { ACDebug.LogWarning("Previously chosen category no longer exists!"); binID = 0; } binNumber = EditorGUILayout.Popup("Inventory category:", binNumber, labelList.ToArray()); binID = inventoryManager.items[binNumber].id; includeLast = EditorGUILayout.Toggle("Include last-selected?", includeLast); } else { EditorGUILayout.HelpBox("No inventory categories exist!", MessageType.Info); binID = -1; } } else if (selectedCheckMethod == SelectedCheckMethod.SpecificItem) { // Create a string List of the field's names (for the PopUp box) List <string> labelList = new List <string>(); int i = 0; int invNumber = 0; if (parameterID == -1) { invNumber = -1; } if (inventoryManager.items.Count > 0) { foreach (InvItem _item in inventoryManager.items) { labelList.Add(_item.label); // If an item has been removed, make sure selected variable is still valid if (_item.id == invID) { invNumber = i; } i++; } if (invNumber == -1) { ACDebug.LogWarning("Previously chosen item no longer exists!"); invID = 0; } parameterID = Action.ChooseParameterGUI("Inventory item:", parameters, parameterID, ParameterType.InventoryItem); if (parameterID >= 0) { invNumber = Mathf.Min(invNumber, inventoryManager.items.Count - 1); invID = -1; } else { invNumber = EditorGUILayout.Popup("Inventory item:", invNumber, labelList.ToArray()); invID = inventoryManager.items[invNumber].id; } includeLast = EditorGUILayout.Toggle("Include last-selected?", includeLast); } else { EditorGUILayout.HelpBox("No inventory items exist!", MessageType.Info); invID = -1; } } } }