Ejemplo n.º 1
0
        public void SetContainedItem(Custom.Item item)
        {
            if (item == null)
            {
                ContainedItem      = null;
                ItemSprite.Visible = false;
                return;
            }

            ContainedItem      = item;
            ItemSprite.Texture = item.GetTextureFromStream();
            ItemSprite.Visible = true;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Event for inventory boxes.
        /// </summary>
        /// <param name="o">The clicked Box</param>
        /// <param name="IsBarBox">If so, event won't be fired</param>
        private void InventoryBoxOnClick(object o)
        {
            Custom.Item ItemOfBox = ((InventoryBoxRuntime)o).GetContainedItem();

            if (ItemHeldByMouse != null)
            {
                //On affecte le paramètre de l'event pour contenir la box sur laquelle on clique, qui est la nouvelle box de l'item.
                OnItemMovedCaseEventArgs.NewBox = (InventoryBoxRuntime)o;

                //Si la souris tient un item
                if (ItemOfBox != null)
                {
                    //Si la box n'est pas vide
                    using (Custom.Item ItemToSwitch = Custom.Item.CloneItem(ItemHeldByMouse))
                    {
                        //On change l'item graphique de l'écran pour switch
                        ItemHeldByMouse        = Custom.Item.CloneItem(ItemOfBox);
                        HeldItemSprite.Texture = ItemHeldByMouse.GetTextureFromStream();

                        //On met l'item sauvegardé dans la box, après avoir mis l'autre dans la souris
                        ((InventoryBoxRuntime)o).SetContainedItem(ItemToSwitch);

                        //Et on affecte l'item qui a été déposé à l'évènement "Lorsqu'un item est bougé"
                        OnItemMovedCaseEventArgs.Item = ItemToSwitch;

                        //On raise l'event avec les informations (PreviousBox, NewBox) du premier item
                        if (OnItemMovedCase != null)
                        {
                            OnItemMovedCase.Invoke(this, OnItemMovedCaseEventArgs);
                        }
                        //Puis on affecte à PreviousBox la Box actuelle, en prévision de l'event du deuxième item
                        OnItemMovedCaseEventArgs.PreviousBox = (InventoryBoxRuntime)o;
                    }
                }
                //Si la box est vide
                else
                {
                    //On met l'item dedans
                    ((InventoryBoxRuntime)o).SetContainedItem(ItemHeldByMouse);

                    //On affecte les valeurs pour l'evenement "Lorsqu'un item est bougé"
                    OnItemMovedCaseEventArgs.Item = ItemHeldByMouse;

                    //On efface l'item graphique de l'interface
                    ItemHeldByMouse        = null;
                    HeldItemSprite.Texture = null;

                    if (OnItemMovedCase != null)
                    {
                        OnItemMovedCase.Invoke(this, OnItemMovedCaseEventArgs);
                    }
                }
            }
            //Si la souris ne tient PAS un item
            else
            {
                //Si la box n'est pas vide
                if (ItemOfBox != null)
                {
                    //On Prend l'item
                    ItemHeldByMouse        = ItemOfBox;
                    HeldItemSprite.Texture = ItemHeldByMouse.GetTextureFromStream();


                    ((InventoryBoxRuntime)o).SetContainedItem(null);

                    OnItemMovedCaseEventArgs.PreviousBox = (InventoryBoxRuntime)o;
                }
            }
        }