public override void OnGUI(int WindowID) { if (inventoryManager == null && AdvGame.GetReferences().inventoryManager) { inventoryManager = AdvGame.GetReferences().inventoryManager; } if (settingsManager == null && AdvGame.GetReferences().settingsManager) { settingsManager = AdvGame.GetReferences().settingsManager; } if (inventoryManager) { // Create a string List of the field's names (for the PopUp box) List <string> labelList = new List <string>(); int i = 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) { // Wasn't found (item was possibly deleted), so revert to zero ACDebug.LogWarning("Previously chosen item no longer exists!"); invNumber = 0; invID = 0; } parameterID = AC.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; } // if (inventoryManager.items[invNumber].canCarryMultiple) { doCount = EditorGUILayout.Toggle("Query count?", doCount); if (doCount) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Count is:", GUILayout.MaxWidth(70)); intCondition = (IntCondition)EditorGUILayout.EnumPopup(intCondition); intValue = EditorGUILayout.IntField(intValue); if (intValue < 1) { intValue = 1; } EditorGUILayout.EndHorizontal(); } } else { doCount = false; } if (settingsManager != null && settingsManager.playerSwitching == PlayerSwitching.Allow && !settingsManager.shareInventory) { EditorGUILayout.Space(); setPlayer = EditorGUILayout.Toggle("Check specific player?", setPlayer); if (setPlayer) { ChoosePlayerGUI(); } } else { setPlayer = false; } } else { EditorGUILayout.LabelField("No inventory items exist!"); invID = -1; invNumber = -1; } } else { EditorGUILayout.HelpBox("An Inventory Manager must be assigned for this Action to work", MessageType.Warning); } }