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(); }
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); }
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); }
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); }