/* private void Debug() { * print("Slot Index " + i); * print("Slot Active " + Slot.Active); * print("Slot Child Count " + Slot.transform.childCount); * print("Item Pickable " + itemPickable.Stackable); * print("Limit of Stack " + limitOfStack); * print("IgnoreCommonItems " + ignoreCommonItems); * print("Quantity " + quantity); * }*/ private void Single_AddToSlot(ItemPickable itemPickable, InventorySlotManager Slot) { GameObject item = new GameObject(); ItemSprite itemSprite = item.AddComponent <ItemSprite>(); RawImage image = item.AddComponent <RawImage>(); itemSprite.Reference = itemPickable.gameObject; itemSprite.Quantity = 1; image.texture = itemPickable.ItemIcon; image.SetNativeSize(); image.rectTransform.sizeDelta = new Vector2(80, 80); if (itemPickable.transform.gameObject.GetComponent <ItemBlock>() != null) { item.name = itemPickable.transform.gameObject.GetComponent <ItemBlock>().BlockName; } else { item.name = itemPickable.gameObject.name; } item.transform.SetParent(Slot.transform, false); try { itemPickable.gameObject.GetComponent <Collider>().enabled = false; itemPickable.gameObject.GetComponent <MeshRenderer>().enabled = false; } catch (Exception) { itemPickable.gameObject.SetActive(false); } Refresh(); }
IEnumerator DelayOperation(ItemPickable i, int itemQty) { yield return(new WaitForEndOfFrame()); //print("item being transferred " + i.name); UI.root.playerInventory.RefreshHeld(); UI.root.playerInventory.MoveItemToInventory(i, itemQty, false); }
private void HandleOnItemUse () { foreach (InventorySlot slot in inventorySlots) { if (activeItem == slot.itemInfo) { slot.itemInfo = null; slot.GetComponent<Image>().sprite = null; } } activeItem = null; }
public bool QuantityChange(int change, ItemPickable item) { if ((Quantity + change) > item.MaxStack) { return(false); } else { return(true); } }
public void CheckItemPickUp() { if (PointingAtPickable) { if (Input.GetKeyDown(Keymap.Interact)) { ItemPickable item = PointingAtObject.GetComponent <ItemPickable>(); MoveItemToInventory(item, item.Quantity, false); } } }
public void HandleOnItemPickUp (ItemPickable itemPicked) { InventorySlot emptySlot; int i = 0; do { emptySlot = inventorySlots[i]; i++; } while (emptySlot.itemInfo); emptySlot.itemInfo = itemPicked; Image icon = emptySlot.GetComponent<Image>(); icon.sprite = emptySlot.itemInfo.inUseIcon; }
public void RemoveItem(ItemPickable item) // REMOVE ITEM FROM INVENTORY { for (int i = 0; i < inventory.Length; i++) { if (inventory[i] == item) { inventory[i] = null; Destroy(item.gameObject); break; } } }
public void DropItem(ItemPickable item) // DROPS ITEM FROM INVENTORY PHYSICALLY SHOWING { for (int i = 0; i < inventory.Length; i++) { if (item == inventory[i]) { item.transform.position = gameObject.transform.position; item.gameObject.SetActive(true); break; } } }
public void MoveItemToInventory(ItemPickable itemPickable, int quantity, bool ignoreCommonItems) { //print(" Moving... " + held); if (held < ActiveInventorySlots) { FullInventory = false; for (int i = 0; i < UI.root.InventorySlotGrid.transform.childCount; i++) { InventorySlotManager Slot = UI.root.InventorySlotGrid.transform.GetChild(i).GetComponent <InventorySlotManager>(); //print("here " + i + " child count: " + Slot.transform.childCount); bool limitOfStack = false; try { limitOfStack = Slot.transform.GetChild(0).GetComponent <ItemSprite>().QuantityChange(quantity, itemPickable); // true --> can change + quantity } catch (Exception) { } if (Slot.Active && Slot.transform.childCount == 0 && quantity == 1) { // Checking if Single and not filled Single_AddToSlot(itemPickable, Slot); //print("Here"); break; } if (Slot.Active && (Slot.transform.childCount == 0) && itemPickable.Stackable && !ignoreCommonItems && quantity > 1) { MultipleInit_AddToSlot(itemPickable, Slot, quantity); break; } if (Slot.transform.childCount >= 1) { if (Slot.Active && (Slot.transform.GetChild(0).GetComponent <ItemSprite>().Reference.name == itemPickable.name) && itemPickable.Stackable && limitOfStack && !ignoreCommonItems) { // Checking if same item and stackable Multiple_AddToSlot(itemPickable, Slot, quantity); break; } } if (Slot.Active && (Slot.transform.childCount == 0) && itemPickable.Stackable && limitOfStack && ignoreCommonItems) { // Checking if same item and stackable Multiple_AddToSlot(itemPickable, Slot, quantity); break; } } } else { FullInventory = true; Show_InventoryFullDialogBox(); } }
public void UseItem(ItemPickable item) // USE ITEM FROM INVENTORY { bool exists = false; int index = -1; for (int i = 0; i < inventory.Length; i++) { if (item == inventory[i]) { exists = true; index = i; break; } } if (exists) // CHECKING IF ITEM EXISTS IN INVENTORY { if (item.GetComponent <ItemPickable>().itemType == ItemType.Food) { // NPC WHEN EATING FOOD } else if (item.GetComponent <ItemPickable>().itemType == ItemType.Drink) { // NPC WHEN DRINKING } else if (item.GetComponent <ItemPickable>().itemType == ItemType.Medical) { // NPC WHEN USING MEDICAL ITEM } else if (item.GetComponent <ItemPickable>().itemType == ItemType.Ammunition) { // NPC AMMUNITION AMOUNT (IF YOU WANT TO SYNC THAT IN WITH PROJECTILEWEAPON) } else if (item.GetComponent <ItemPickable>().itemType == ItemType.Apparel) { // NPC'S WEARING CLOTHES - APPAREL WEARING NOT IMPLEMENTED YET } else if (item.GetComponent <ItemPickable>().itemType == ItemType.MeleeWeapon) { // NPC BEING ABLE TO HOLD GUN } else if (item.GetComponent <ItemPickable>().itemType == ItemType.ProjectileWeapon) { // NPC BEING ABLE TO HOLD WEAPON } } }
public void AddItem(ItemPickable item) // ADD ITEM TO INVENTORY { print("called"); if (item.GetComponent <ItemPickable>() == null) { print("The item trying to be added does not contain ItemPickable script."); } else if (item.GetComponent <ItemPickable>() != null) { for (int i = 0; i < inventory.Length; i++) { if (inventory[i] == null) { inventory[i] = item; item.gameObject.SetActive(false); break; print("picked up"); } } } }
public void DropItem(ItemPickable itemPickable) { if (itemPickable.transform.GetComponent <ItemBlock>() != null) { return; } itemPickable.gameObject.GetComponent <Rigidbody>().drag = 3f; itemPickable.transform.position = gameObject.transform.position + gameObject.transform.forward * 1.5f + new Vector3(0, 1.5f, 0); try { itemPickable.gameObject.GetComponent <Collider>().enabled = true; itemPickable.gameObject.GetComponent <MeshRenderer>().enabled = true; itemPickable.gameObject.GetComponent <Rigidbody>().isKinematic = false; PointingAtPickable = false; } catch (Exception) { itemPickable.gameObject.SetActive(true); PointingAtPickable = false; itemPickable.gameObject.GetComponent <Rigidbody>().isKinematic = false; } Refresh(); }
private void Multiple_AddToSlot(ItemPickable item, InventorySlotManager Slot, int quantity) { Slot.transform.GetChild(0).GetComponent <ItemSprite>().QuantityChangeImplicit(quantity); Destroy(item.gameObject); }
public void ExecuteCraft(ItemPickable i, int itemQty) { StartCoroutine(DelayOperation(i, itemQty)); }