Exemple #1
0
 private void Upgrade()
 {
     if (checkNothing)
     {
         selectedCheckMethod = SelectedCheckMethod.NoneSelected;
         checkNothing        = false;
     }
 }
Exemple #2
0
        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;
                    }
                }
            }
        }