public void SetContainedItem(Custom.Item item) { if (item == null) { ContainedItem = null; ItemSprite.Visible = false; return; } ContainedItem = item; ItemSprite.Texture = item.GetTextureFromStream(); ItemSprite.Visible = true; }
public Custom.Item[] GetAllItems() { Custom.Item[] retour = new Custom.Item[4]; int i = 0; foreach (var child in this.ContainerItems.Children) { if (child.GetType() == typeof(InventoryBoxRuntime)) { retour[i] = ((InventoryBoxRuntime)child).GetContainedItem(); i++; } } return(retour); }
public void SetContainedItem(Custom.Item item, int Index) { (ContainerItems.Children[Index] as InventoryBoxRuntime).SetContainedItem(item); }
/// <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; } } }
private void ResetHeldItem() { ItemHeldByMouse = null; HeldItemSprite.Texture = null; }