Inheritance: MonoBehaviour
Beispiel #1
0
        public override void AssignValues(List <ActionParameter> parameters)
        {
            invID  = AssignInvItemID(parameters, invParameterID, invID);
            amount = AssignInteger(parameters, amountParameterID, amount);

            if (useActive)
            {
                runtimeContainer = KickStarter.playerInput.activeContainer;
            }
            else
            {
                runtimeContainer = AssignFile <Container> (parameters, parameterID, constantID, container);
            }

            runtimeTransferContainer = null;
            switch (containerAction)
            {
            case ContainerAction.Remove:
            case ContainerAction.RemoveAll:
                if (transferToPlayer)
                {
                    containerTransfer = ContainerTransfer.TransferToPlayer;
                    transferToPlayer  = false;
                }
                if (containerTransfer == ContainerTransfer.TransferToOtherContainer)
                {
                    runtimeTransferContainer = AssignFile <Container> (parameters, transferContainerParameterID, transferContainerConstantID, transferContainer);
                }
                break;

            default:
                break;
            }
        }
Beispiel #2
0
    private void SetupItems()
    {
        names = GameObject.Find("InvNames").transform;

        if (names != null)
        {
            foreach (object entry in items)
            {
                Text newItem = Instantiate(item);
                newItem.transform.SetParent(names.transform, false);
                newItem.text = " " + ((itemCount[entry] > 1) ? ("" + itemCount[entry] + "x ") : ("")) + entry.ToString();
                newItem.name = entry.ToString() + "2";
                ContainerTransfer cont = newItem.GetComponent <ContainerTransfer>();
                cont.container = this.transform;
                cont.item      = entry;
            }
        }
    }
Beispiel #3
0
        public override void ShowGUI(List <ActionParameter> parameters)
        {
            if (AdvGame.GetReferences().inventoryManager)
            {
                inventoryManager = AdvGame.GetReferences().inventoryManager;
            }

            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 (invParameterID == -1)
                {
                    invNumber = -1;
                }

                if (inventoryManager.items.Count > 0)
                {
                    foreach (InvItem _item in inventoryManager.items)
                    {
                        labelList.Add(_item.label);

                        // If a item has been removed, make sure selected variable is still valid
                        if (_item.id == invID)
                        {
                            invNumber = i;
                        }

                        i++;
                    }

                    if (invNumber == -1)
                    {
                        if (invID > 0)
                        {
                            LogWarning("Previously chosen item no longer exists!");
                        }
                        invNumber = 0;
                        invID     = 0;
                    }

                    useActive = EditorGUILayout.Toggle("Affect active container?", useActive);
                    if (!useActive)
                    {
                        parameterID = Action.ChooseParameterGUI("Container:", parameters, parameterID, ParameterType.GameObject);
                        if (parameterID >= 0)
                        {
                            constantID = 0;
                            container  = null;
                        }
                        else
                        {
                            container = (Container)EditorGUILayout.ObjectField("Container:", container, typeof(Container), true);

                            constantID = FieldToID <Container> (container, constantID);
                            container  = IDToField <Container> (container, constantID, false);
                        }
                    }

                    containerAction = (ContainerAction)EditorGUILayout.EnumPopup("Method:", containerAction);

                    if (transferToPlayer)
                    {
                        transferToPlayer  = false;
                        containerTransfer = ContainerTransfer.TransferToPlayer;
                    }

                    if (containerAction != ContainerAction.RemoveAll)
                    {
                        invParameterID = Action.ChooseParameterGUI("Inventory item:", parameters, invParameterID, ParameterType.InventoryItem);
                        if (invParameterID >= 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 (containerAction != ContainerAction.Add)
                    {
                        containerTransfer = (ContainerTransfer)EditorGUILayout.EnumPopup("Transfer:", containerTransfer);

                        if (containerTransfer == ContainerTransfer.TransferToOtherContainer)
                        {
                            transferContainerParameterID = Action.ChooseParameterGUI("To Container:", parameters, transferContainerParameterID, ParameterType.GameObject);
                            if (transferContainerParameterID >= 0)
                            {
                                transferContainerConstantID = 0;
                                transferContainer           = null;
                            }
                            else
                            {
                                transferContainer = (Container)EditorGUILayout.ObjectField("To Container:", transferContainer, typeof(Container), true);

                                transferContainerConstantID = FieldToID <Container> (transferContainer, transferContainerConstantID);
                                transferContainer           = IDToField <Container> (transferContainer, transferContainerConstantID, false);
                            }
                        }
                    }

                    if (containerAction == ContainerAction.Remove)
                    {
                        removeAllInstances = EditorGUILayout.Toggle("Remove all instances?", removeAllInstances);
                    }

                    if (containerAction != ContainerAction.RemoveAll && inventoryManager.items[invNumber].canCarryMultiple)
                    {
                        if (containerAction == ContainerAction.Remove && removeAllInstances)
                        {
                        }
                        else
                        {
                            setAmount = EditorGUILayout.Toggle("Set amount?", setAmount);
                            if (setAmount)
                            {
                                string _label = (containerAction == ContainerAction.Add) ? "Increase count by:" : "Reduce count by:";

                                amountParameterID = Action.ChooseParameterGUI(_label, parameters, amountParameterID, ParameterType.Integer);
                                if (amountParameterID < 0)
                                {
                                    amount = EditorGUILayout.IntField(_label, amount);
                                }
                            }
                        }
                    }

                    AfterRunningOption();
                }

                else
                {
                    EditorGUILayout.LabelField("No inventory items exist!");
                    invID     = -1;
                    invNumber = -1;
                }
            }
        }