public void OnDrop(PointerEventData eventData) { if (storage) { InventorySlot_Helper draged_slotHelper = eventData.pointerDrag.GetComponentInChildren <InventorySlot_Helper>();//being dragged if (draged_slotHelper != null) { _droppedItem = draged_slotHelper.item; ammount = draged_slotHelper.amount; Invoke("DropItem", 0.0f); return; } } }
void Create_InventorySlots(int inventorySize) { Clear_InventorySlots(); for (int i = 0; i < inventorySize; i++) { GameObject go = Instantiate(inventorySlot_Prefab, inventoryLayOut.transform.position, Quaternion.identity) as GameObject; go.transform.SetParent(inventoryLayOut, false); InventorySlot_Helper helper = go.GetComponentInChildren <InventorySlot_Helper>(); helper.slotId = i; helper.slotHolder = go; helper.inventory = this; //Debug.Log(helper.slotHolder.name); helper.holderParent = GameObject.Find("GameCanvas");//inventoryLayOut.transform.parent.gameObject; Item blankItem = new Item(); items.Add(blankItem);//fill with null items. helper.item = blankItem; //slots[i].name = itemToAdd.Name; InventorySlot slot = go.GetComponent <InventorySlot>(); slot.slotId = helper.slotId; slot.inventory = this; inventorySlots.Add(go); } if (addTestItems) { Add_Item(data.FindItemBy(data.item_DataBase.items, 1)); Add_Item(data.FindItemBy(data.item_DataBase.items, 1)); Add_Item(data.FindItemBy(data.item_DataBase.items, 1)); Add_Item(data.FindItemBy(data.item_DataBase.items, 1)); Add_Item(data.FindItemBy(data.item_DataBase.items, 2)); Add_Item(data.FindItemBy(data.item_DataBase.items, 2)); Add_Item(data.FindItemBy(data.item_DataBase.items, "Sword")); Add_Item(data.FindItemBy(data.item_DataBase.items, "Bow")); Add_Item(data.FindItemBy(data.item_DataBase.items, "Armour")); Add_Item(data.FindItemBy(data.item_DataBase.items, "Medal")); Add_Item(data.FindItemBy(data.item_DataBase.items, "Helm")); } //Load Saved invetory Data //inventoryPanel.SetActive(true); }
void DragDropFromInventory(InventorySlot_Helper draged_slotHelper) { if (inventory.items[slotId].ID == -1) { InventorySlot_Helper this_slotHelper = this.gameObject.GetComponentInChildren <InventorySlot_Helper>();//being droped on draged_slotHelper.transform.SetParent(this.gameObject.transform); draged_slotHelper.transform.position = this.gameObject.transform.position;//this_slotHelper.slotHolder.transform.position; draged_slotHelper.slotHolder = transform.gameObject; inventory.items[draged_slotHelper.slotId] = new Item();//move items inventory.items[slotId] = draged_slotHelper.item; int temp__SlotId = draged_slotHelper.slotId; draged_slotHelper.slotId = slotId; this_slotHelper.slotId = temp__SlotId; this_slotHelper.gameObject.transform.SetParent(inventory.inventorySlots[this_slotHelper.slotId].transform);//draged_slotHelper.slotHolder.transform); this_slotHelper.gameObject.transform.position = inventory.inventorySlots[this_slotHelper.slotId].transform.position; this_slotHelper.slotHolder = inventory.inventorySlots[this_slotHelper.slotId].transform.gameObject; } else { InventorySlot_Helper this_slotHelper = this.gameObject.GetComponentInChildren <InventorySlot_Helper>();//being droped on draged_slotHelper.transform.SetParent(this.gameObject.transform); draged_slotHelper.transform.position = this.gameObject.transform.position;//this_slotHelper.slotHolder.transform.position; draged_slotHelper.slotHolder = transform.gameObject; if (draged_slotHelper && this_slotHelper) { inventory.items[draged_slotHelper.slotId] = this_slotHelper.item;//move items inventory.items[slotId] = draged_slotHelper.item; int temp__SlotId = draged_slotHelper.slotId; draged_slotHelper.slotId = slotId; this_slotHelper.slotId = temp__SlotId; this_slotHelper.gameObject.transform.SetParent(inventory.inventorySlots[this_slotHelper.slotId].transform);//draged_slotHelper.slotHolder.transform); this_slotHelper.gameObject.transform.position = inventory.inventorySlots[this_slotHelper.slotId].transform.position; this_slotHelper.slotHolder = inventory.inventorySlots[this_slotHelper.slotId].transform.gameObject; } } }
public void OnDrop(PointerEventData eventData) { InventorySlot_Helper draged_slotHelper = eventData.pointerDrag.GetComponentInChildren <InventorySlot_Helper>();//being dragged if (draged_slotHelper != null) { DragDropFromInventory(draged_slotHelper); return; } EquipmentSlot_Helper draged_equipHelper = eventData.pointerDrag.GetComponentInChildren <EquipmentSlot_Helper>(); if (draged_equipHelper != null) { InventorySlot_Helper this_slotHelper = GetComponentInChildren <InventorySlot_Helper>(); draged_equipHelper.DragDropFromEquiped(this_slotHelper); return; } }
public void DragDropFromEquiped(InventorySlot_Helper helper) { //Debug.Log(helper.item.Name); // if (!equipment.inventory.inventoryFull)// && helper.item.ItemType != eSlot.equipedItem.ItemType) { if (helper.item.ItemType == eSlot.equipedItem.ItemType) { eSlot.EquipItem(helper.item); equipment.inventory.toolTip.Deactivate(); equipment.inventory.toolTip.Activate(eSlot.equipedItem); } else { equipment.inventory.toolTip.Deactivate(); eSlot.SetEquiped(false); } } }
public void Add_Item(Item itemToAdd) { if (numOfSlotUsed >= numOfSlots) { Debug.LogWarning("Inventory Full"); inventoryFull = true; return; } if (itemToAdd.Stackable && CheckForItemStacks(itemToAdd)) { for (int i = 0; i < items.Count; i++) { if (items[i].ID == itemToAdd.ID) { InventorySlot_Helper helper = inventorySlots[i].GetComponentInChildren <InventorySlot_Helper>(); helper.amount++; helper.itemAmmountText.text = helper.amount.ToString(); helper.itemAmmountText.gameObject.SetActive(true); //Debug.Log("Stacked " + items[i].Name); break; } } } else { //Debug.Log("NonStacking- " + itemToAdd.Name); for (int i = 0; i < items.Count; i++) { if (items[i].Name == "") { items[i] = itemToAdd; InventorySlot_Helper helper = inventorySlots[i].GetComponentInChildren <InventorySlot_Helper>(); helper.item = items[i]; helper.amount = 1; helper.slotId = i; helper.slotHolder = helper.gameObject; helper.holderParent = GameObject.Find("GameCanvas");//inventoryLayOut.transform.parent.gameObject; helper.inventory = this; helper.itemSpriteImage.sprite = itemToAdd.Icon; helper.itemSpriteImage.enabled = true; helper.itemSpriteImage.gameObject.SetActive(true); //slots[i].name = itemToAdd.Name; InventorySlot slot = inventorySlots[i].GetComponent <InventorySlot>(); slot.slotId = helper.slotId; slot.inventory = this; helper.gameObject.name = itemToAdd.Name; helper.slotHolder = slot.gameObject; //Debug.Log("New " + items[i].Name); numOfSlotUsed++; break; } } } if (numOfSlotUsed >= numOfSlots) { Debug.LogWarning("Inventory Full"); inventoryFull = true; return; } else if (numOfSlotUsed <= numOfSlots) { //Debug.Log("Inventory has " + (numOfSlots - numOfSlotUsed).ToString() + " slots available"); } }
public void RemoveItem(List <Item> itemList, Item itemToRemove) { //Debug.LogWarning("Try RemoveItem " + itemToRemove.Name); if (itemList.Contains(itemToRemove)) { Debug.LogWarning("Inventory contains " + itemToRemove.Name); if (itemToRemove.Stackable && CheckForItemStacks(itemToRemove))//Stackable items { int i = itemList.IndexOf(itemToRemove); InventorySlot_Helper helper = inventorySlots[i].GetComponentInChildren <InventorySlot_Helper>(); if (helper == null) { Debug.LogError("WTF?"); } if (helper.amount >= 2)//reduce Stack of items { //Debug.Log("Removed one " + itemToRemove.Name + " from a Stack"); helper.amount--; helper.itemAmmountText.text = helper.amount.ToString(); if (helper.amount == 1) { helper.itemAmmountText.gameObject.SetActive(false); } } else//last item in Stack (1 item) { //Debug.Log(itemToRemove.Name + " Stack finished"); int s = itemList.IndexOf(itemToRemove); itemList[s] = new Item(); InventorySlot_Helper lastInStack_helper = inventorySlots[s].GetComponentInChildren <InventorySlot_Helper>(); lastInStack_helper.item = itemList[s]; lastInStack_helper.itemSpriteImage.enabled = false; lastInStack_helper.gameObject.name = "InventoryItem"; numOfSlotUsed--; //Debug.LogWarning(items[s].Name); } } else//non Stackable items { //Debug.Log(itemToRemove.Name + " is not Stackable"); int i = itemList.IndexOf(itemToRemove); itemList[i] = new Item(); InventorySlot_Helper helper = inventorySlots[i].GetComponentInChildren <InventorySlot_Helper>(); helper.item = itemList[i]; helper.itemSpriteImage.enabled = false; helper.gameObject.name = "InventoryItem"; numOfSlotUsed--; //Debug.LogWarning(items[i].Name); } } if (numOfSlotUsed < numOfSlots) { //Debug.Log("Inventory has " + (numOfSlots - numOfSlotUsed).ToString() + " slots available"); inventoryFull = false; } }