public void SendItem( int count, PanelType panelType, ItemListController sender, ItemListController receiver, int currentID, ItemNodeUI nodeUI) { if (sender == null || receiver == null || (Object.op_Equality((Object)nodeUI, (Object)null) || nodeUI.Item == null) || (count <= 0 || nodeUI.Item.Count <= 0)) { return; } StuffItem stuffItem1 = new StuffItem(nodeUI.Item); stuffItem1.Count = Mathf.Min(count, nodeUI.Item.Count); int num = receiver.AddItem(stuffItem1); if (num <= 0) { return; } switch (panelType) { case PanelType.Pouch: case PanelType.Chest: if (this.SelectedInventoryUI != null) { List <StuffItem> itemList = this.SelectedInventoryUI.itemList; ItemListUI itemListUi = this.SelectedInventoryUI.itemListUI; StuffItem stuffItem2 = itemList.Find((Predicate <StuffItem>)(x => x == nodeUI.Item)); if (stuffItem2 != null) { stuffItem2.Count -= num; if (stuffItem2.Count <= 0) { itemList.Remove(stuffItem2); itemListUi.RemoveItemNode(currentID); itemListUi.ForceSetNonSelect(); this._infoPanelUI.DetachItem(); } Action refreshEvent = sender.RefreshEvent; if (refreshEvent != null) { refreshEvent(); break; } break; } break; } break; case PanelType.DecidedItem: case PanelType.CreatedItem: if (sender.RemoveItem(currentID, new StuffItem(nodeUI.Item) { Count = num }) <= 0) { this._infoPanelUI.DetachItem(); } if (this.SelectedInventoryUI != null && Object.op_Inequality((Object)this.SelectedInventoryUI.itemListUI, (Object)null)) { Action refreshEvent = this.SelectedInventoryUI.ListController.RefreshEvent; if (refreshEvent != null) { refreshEvent(); break; } break; } break; } this.OnSendItem.OnNext(stuffItem1); }