public void ClickContainer(MouseState _mouseState, int _slot, Container container)
        {
            if (container == null || KickStarter.runtimeInventory == null) return;

            KickStarter.runtimeInventory.SetFont (font, GetFontSize (), fontColor, textEffects);

            if (_mouseState == MouseState.SingleClick)
            {
                if (KickStarter.runtimeInventory.selectedItem == null)
                {
                    if (container.items.Count > (_slot+offset) && container.items [_slot+offset] != null)
                    {
                        ContainerItem containerItem = container.items [_slot + offset];
                        KickStarter.runtimeInventory.Add (containerItem.linkedID, containerItem.count, selectItemsAfterTaking, -1);
                        container.items.Remove (containerItem);
                    }
                }
                else
                {
                    // Placing an item inside the container
                    container.InsertAt (KickStarter.runtimeInventory.selectedItem, _slot+offset);
                    KickStarter.runtimeInventory.Remove (KickStarter.runtimeInventory.selectedItem);
                }
            }

            else if (_mouseState == MouseState.RightClick)
            {
                if (KickStarter.runtimeInventory.selectedItem != null)
                {
                    KickStarter.runtimeInventory.SetNull ();
                }
            }
        }
        public override void AssignValues(List<ActionParameter> parameters)
        {
            container = AssignFile <Container> (parameters, parameterID, constantID, container);

            if (useActive)
            {
                container = KickStarter.playerInput.activeContainer;
            }
        }
        public void OnEnable()
        {
            _target = (Container) target;

            if (AdvGame.GetReferences () && AdvGame.GetReferences ().inventoryManager)
            {
                inventoryManager = AdvGame.GetReferences ().inventoryManager;
            }
        }
		override public void AssignValues (List<ActionParameter> parameters)
		{
			container = AssignFile <Container> (parameters, parameterID, constantID, container);
			invID = AssignInvItemID (parameters, invParameterID, invID);

			if (useActive)
			{
				container = GameObject.FindWithTag (Tags.gameEngine).GetComponent <PlayerInput>().activeContainer;
			}
		}
        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 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;
                    }

                    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);
                        }

                    }

                    //
                    invParameterID = Action.ChooseParameterGUI ("Item to check:", parameters, invParameterID, ParameterType.InventoryItem);
                    if (invParameterID >= 0)
                    {
                        invNumber = Mathf.Min (invNumber, inventoryManager.items.Count-1);
                        invID = -1;
                    }
                    else
                    {
                        invNumber = EditorGUILayout.Popup ("Item to check:", 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;
                    }
                }

                else
                {
                    EditorGUILayout.LabelField ("No inventory items exist!");
                    invID = -1;
                    invNumber = -1;
                }
            }
        }
        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)
                    {
                        ACDebug.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 (containerAction == ContainerAction.RemoveAll)
                    {
                        transferToPlayer = EditorGUILayout.Toggle ("Transfer to Player?", transferToPlayer);
                    }
                    else
                    {
                        //
                        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.Remove)
                        {
                            transferToPlayer = EditorGUILayout.Toggle ("Transfer to Player?", transferToPlayer);
                        }

                        if (inventoryManager.items[invNumber].canCarryMultiple)
                        {
                            setAmount = EditorGUILayout.Toggle ("Set amount?", setAmount);

                            if (setAmount)
                            {
                                if (containerAction == ContainerAction.Add)
                                {
                                    amount = EditorGUILayout.IntField ("Increase count by:", amount);
                                }
                                else if (containerAction == ContainerAction.Remove)
                                {
                                    amount = EditorGUILayout.IntField ("Reduce count by:", amount);
                                }
                            }
                        }
                    }

                    AfterRunningOption ();
                }

                else
                {
                    EditorGUILayout.LabelField ("No inventory items exist!");
                    invID = -1;
                    invNumber = -1;
                }
            }
        }
        public override void ShowGUI(List<ActionParameter> parameters)
        {
            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);
                }
            }
        }
        public void TransferLocalToContainer(Container _container, InvItem _item, int _index)
        {
            if (_item != null && localItems.Contains (_item))
            {
                localItems [localItems.IndexOf (_item)] = null;
                localItems = ReorderItems (localItems);
                localItems = RemoveEmptySlots (localItems);

                SetNull ();
            }
        }
Exemple #9
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 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;
                    }

                    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);
                        }
                    }

                    //
                    invParameterID = Action.ChooseParameterGUI("Item to check:", parameters, invParameterID, ParameterType.InventoryItem);
                    if (invParameterID >= 0)
                    {
                        invNumber = Mathf.Min(invNumber, inventoryManager.items.Count - 1);
                        invID     = -1;
                    }
                    else
                    {
                        invNumber = EditorGUILayout.Popup("Item to check:", 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;
                    }
                }

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