Ejemplo n.º 1
0
    public void Craft()
    {
        if (this.m_Result == ItemID.None)
        {
            DebugUtils.Assert("ERROR - Missing result ItemID! Can't craft item!", true, DebugUtils.AssertType.Info);
            return;
        }
        Item item = this.CreateItem(this.m_Result);

        ItemsManager.Get().OnCrafted(this.m_Result);
        this.m_Result = ItemID.None;
        InventoryBackpack.InsertResult insertResult = InventoryBackpack.Get().InsertItem(item, null, null, true, false, true, true, true);
        if (insertResult != InventoryBackpack.InsertResult.Ok)
        {
            this.AddItem(item, true);
        }
        else
        {
            item.OnTake();
        }
        InventoryBackpack.Get().SetupPocket(item.m_Info.m_BackpackPocket);
        Inventory3DManager.Get().SetNewCraftedItem(item);
        this.CheckResult();
        HUDCrafting.Get().Setup();
    }
Ejemplo n.º 2
0
    public override bool Take()
    {
        if (this.m_Hallucination)
        {
            base.Disappear(true);
            return(false);
        }
        Item item = ItemsManager.Get().CreateItem(this.m_ReplaceInfoName, false);

        InventoryBackpack.InsertResult insertResult = InventoryBackpack.Get().InsertItem(item, null, null, true, true, true, true, true);
        if (insertResult != InventoryBackpack.InsertResult.Ok)
        {
            UnityEngine.Object.Destroy(base.gameObject);
            return(false);
        }
        EventsManager.OnEvent(Enums.Event.TakeItem, 1, (int)item.m_Info.m_ID);
        if (this.m_CurrentSlot)
        {
            this.m_CurrentSlot.RemoveItem();
        }
        Player.Get().GetComponent <PlayerAudioModule>().PlayItemSound(item.m_Info.m_GrabSound);
        base.AddItemsCountMessage(item);
        if (item.m_Info != null && item.m_Info.IsHeavyObject())
        {
            PlayerAudioModule.Get().PlayHOPickupSound();
        }
        if (!this.m_IsThisUnlimited)
        {
            UnityEngine.Object.Destroy(base.gameObject);
        }
        return(true);
    }
Ejemplo n.º 3
0
 private void OnLMouseUp()
 {
     if (!this.m_CarriedItem)
     {
         return;
     }
     if (this.CanInsertCarriedItemToBackpack())
     {
         InventoryBackpack.InsertResult insertResult = InventoryBackpack.Get().InsertItem(this.m_CarriedItem, this.m_SelectedSlot, this.m_SelectedGroup, false, false, false, false, true);
         if (insertResult != InventoryBackpack.InsertResult.Ok)
         {
             insertResult = InventoryBackpack.Get().InsertItem(this.m_CarriedItem, this.m_CarriedItem.m_PrevSlot, this.m_CarriedItem.m_Info.m_PrevInventoryCellsGroup, false, true, true, false, true);
         }
         if (insertResult == InventoryBackpack.InsertResult.Ok)
         {
             this.m_CarriedItem.m_ShownInInventory = true;
             this.PlayDropSound();
         }
     }
     else if (CraftingManager.Get().gameObject.activeSelf&& this.m_MouseOverCraftTable)
     {
         CraftingManager.Get().AddItem(this.m_CarriedItem, false);
         this.PlayDropSound();
     }
     else if (this.m_CarriedItem.m_Info.m_CanBeRemovedFromInventory)
     {
         if (BodyInspectionController.Get().IsActive())
         {
             if (this.m_SelectedSlot && this.m_SelectedSlot.IsBIWoundSlot())
             {
                 this.m_SelectedSlot.InsertItem(this.m_CarriedItem);
             }
             else
             {
                 this.DropItem(this.m_CarriedItem);
             }
             this.PlayDropSound();
         }
         else if (this.m_SelectedSlot)
         {
             this.m_SelectedSlot.InsertItem(this.m_CarriedItem);
             this.PlayDropSound();
         }
         else if (this.m_MouseOverBackpack)
         {
             InventoryBackpack.Get().InsertItem(this.m_CarriedItem, null, null, true, true, true, true, true);
             this.PlayDropSound();
         }
         else
         {
             this.DropItem(this.m_CarriedItem);
             this.PlayDropSound();
         }
     }
     this.SetCarriedItem(null);
 }
Ejemplo n.º 4
0
    public InventoryBackpack.InsertResult InsertItem(Item item, ItemSlot slot = null, InventoryCellsGroup group = null, bool can_stack = true, bool drop_if_cant = true, bool notify_if_cant = true, bool can_auto_select_group = true, bool set_pocket = true)
    {
        if (!item.m_Info.m_CanBeAddedToInventory)
        {
            Inventory3DManager.Get().DropItem(item);
            return(InventoryBackpack.InsertResult.CantInsert);
        }
        if (this.m_Items.Contains(item))
        {
            return(InventoryBackpack.InsertResult.AllreadyInInventory);
        }
        bool isStatic = item.gameObject.isStatic;

        item.gameObject.isStatic = false;
        item.transform.parent    = null;
        this.SetBackpackTransform(item.m_Info.m_BackpackPocket);
        if (set_pocket && Inventory3DManager.Get().gameObject.activeSelf)
        {
            Inventory3DManager.Get().SetupPocket(item.m_Info.m_BackpackPocket);
        }
        InventoryBackpack.InsertResult insertResult = InventoryBackpack.InsertResult.None;
        if (item.m_Info.m_BackpackPocket == BackpackPocket.Top)
        {
            insertResult = this.InsertItemTop(item, slot);
        }
        else if (item.m_Info.m_BackpackPocket == BackpackPocket.Left)
        {
            insertResult = this.InsertItemLeft(item, slot);
        }
        else if (item.m_Info.m_BackpackPocket == BackpackPocket.Right)
        {
            insertResult = this.InsertItemRight(item, slot);
        }
        else if (item.m_Info.m_BackpackPocket == BackpackPocket.Main)
        {
            insertResult = this.InsertItemMain(item, slot, group, can_stack, can_auto_select_group);
        }
        else if (item.m_Info.m_BackpackPocket == BackpackPocket.Front)
        {
            insertResult = this.InsertItemFront(item, slot, group, can_stack, can_auto_select_group);
        }
        if (insertResult == InventoryBackpack.InsertResult.Ok)
        {
            this.m_Items.Add(item);
            if (!item.m_CurrentSlot)
            {
                item.transform.parent = base.transform;
            }
            else if (item.m_CurrentSlot == this.m_EquippedItemSlot)
            {
                this.m_EquippedItem = item;
            }
            item.OnAddToInventory();
            item.gameObject.SetActive(Inventory3DManager.Get().gameObject.activeSelf&& item.m_Info.m_BackpackPocket == Inventory3DManager.Get().m_ActivePocket);
            this.OnInventoryChanged();
        }
        else
        {
            item.gameObject.isStatic = isStatic;
            if (notify_if_cant)
            {
                HUDMessages hudmessages = (HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages));
                hudmessages.AddMessage(GreenHellGame.Instance.GetLocalization().Get("HUD_NoSpaceInBackpack"), new Color?(Color.red), HUDMessageIcon.None, string.Empty);
                HUDManager.Get().PlaySound("Sounds/HUD/GH_Inventory_Full");
                if (!drop_if_cant)
                {
                    item.ApplyImpulse(new Vector3(0f, 100f, 0f), new Vector3(0f, 0f, UnityEngine.Random.Range(-100f, 100f)));
                }
            }
            if (drop_if_cant)
            {
                Inventory3DManager.Get().DropItem(item);
            }
        }
        this.SetBackpackTransform(Inventory3DManager.Get().m_ActivePocket);
        return(insertResult);
    }