Exemplo n.º 1
0
    public bool TakeItem(ItemClass itemToPut, bool ignoreDistRestrict = false)
    {
        if (!ignoreDistRestrict && Vector3.Distance(itemToPut.transform.position, transform.position) > StandardVariables.InteractableDistance)
        {
            return(false);
        }

        if (CurrentOccupiedCapacity < MaxCapacity && gridManager.StoreItemDirectly(itemToPut.gameObject))
        {
            CurrentOccupiedCapacity += itemToPut.Weight;

            havingItemList.Add(itemToPut);

            // TODO : 아이템 기록 로그
            Debug.Log("아이템을 입수했습니다. Inventory : (" + MaxCapacity + "/" + CurrentOccupiedCapacity + "). 입수 아이템 : " + itemToPut.name);

            return(true); // Item put success
        }
        else
        {
            Debug.Log("가방이 꽉 차서 아이템을 넣을 수 없습니다.");

            return(false); // Item put fail
        }
    }
Exemplo n.º 2
0
 private void SpawnOrAddItem(ItemClass passedItem)
 {
     if (willAddToList)// add to list directly
     {
         sortManager.AddItemToList(passedItem);
         Debug.Log("Item added to list");
     }
     else if (willAddToGrid)// add to grid directly
     {
         GameObject itemObj = itemEquipPool.GetObject();
         itemObj.GetComponent <ItemScript>().SetItemObject(passedItem);
         // 그리드로 직접 저장이 실패한 경우 아이템을 다시 풀로 반환
         if (invenManager.StoreItemDirectly(itemObj) == false)
         {
             itemEquipPool.ReturnObject(itemObj);
         }
     }
     else //spawn item on mouse
     {
         GameObject itemObject = itemEquipPool.GetObject();
         itemObject.GetComponent <ItemScript>().SetItemObject(passedItem);
         ItemScript.SetSelectedItem(itemObject);
     }
 }